chicken-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-hackers] [PATCH 2/3] Move errno values to new chicken.errno mod


From: Evan Hanson
Subject: [Chicken-hackers] [PATCH 2/3] Move errno values to new chicken.errno module
Date: Sat, 4 Jun 2016 00:03:24 +1200

---
 README                |   1 +
 chicken-install.scm   |   1 +
 defaults.make         |   4 +-
 distribution/manifest |   2 +
 manual/Unit posix     |   1 +
 posixunix.scm         | 102 +++++++++++++++++++++++--------------------------
 posixwin.scm          | 103 +++++++++++++++++++++++---------------------------
 rules.make            |   9 ++++-
 types.db              |  80 ++++++++++++++++++++-------------------
 9 files changed, 150 insertions(+), 153 deletions(-)

diff --git a/README b/README
index 2a92808..eaf9f93 100644
--- a/README
+++ b/README
@@ -288,6 +288,7 @@
        |   |       |-- chicken.continuation.import.so
        |   |       |-- chicken.csi.import.so
        |   |       |-- chicken.data-structures.import.so
+       |   |       |-- chicken.errno.import.so
        |   |       |-- chicken.eval.import.so
        |   |       |-- chicken.expand.import.so
        |   |       |-- chicken.files.import.so
diff --git a/chicken-install.scm b/chicken-install.scm
index 68d08c6..72e6eb2 100644
--- a/chicken-install.scm
+++ b/chicken-install.scm
@@ -48,6 +48,7 @@
       "chicken.continuation.import.so"
       "chicken.csi.import.so"
       "chicken.data-structures.import.so"
+      "chicken.errno.import.so"
       "chicken.eval.import.so"
       "chicken.expand.import.so"
       "chicken.files.import.so"
diff --git a/defaults.make b/defaults.make
index c9cf458..011a55c 100644
--- a/defaults.make
+++ b/defaults.make
@@ -264,8 +264,8 @@ CHICKEN_PROGRAM_OPTIONS += $(if $(PROFILE_OBJECTS),-profile)
 
 PRIMITIVE_IMPORT_LIBRARIES = chicken chicken.csi chicken.foreign
 DYNAMIC_IMPORT_LIBRARIES = setup-api setup-download srfi-4
-DYNAMIC_CHICKEN_IMPORT_LIBRARIES = bitwise fixnum flonum format gc io \
-       keyword locative memory posix pretty-print random time
+DYNAMIC_CHICKEN_IMPORT_LIBRARIES = bitwise errno fixnum flonum format \
+       gc io keyword locative memory posix pretty-print random time
 DYNAMIC_CHICKEN_COMPILER_IMPORT_LIBRARIES = user-pass
 DYNAMIC_CHICKEN_UNIT_IMPORT_LIBRARIES = continuation data-structures \
        eval expand files internal irregex lolevel pathname ports \
diff --git a/distribution/manifest b/distribution/manifest
index 15dad8b..711d55c 100644
--- a/distribution/manifest
+++ b/distribution/manifest
@@ -263,6 +263,8 @@ chicken.csi.import.scm
 chicken.csi.import.c
 chicken.data-structures.import.scm
 chicken.data-structures.import.c
+chicken.errno.import.scm
+chicken.errno.import.c
 chicken.eval.import.scm
 chicken.eval.import.c
 chicken.expand.import.scm
diff --git a/manual/Unit posix b/manual/Unit posix
index 6d1d6fb..0456fb8 100644
--- a/manual/Unit posix 
+++ b/manual/Unit posix 
@@ -1157,6 +1157,7 @@ defaults to {{0}}.
 
 These variables contain error codes as returned by {{errno}}.
 
+They are provided by the {{(chicken errno)}} module.
 
 === Finding files
 
diff --git a/posixunix.scm b/posixunix.scm
index 73e52a2..d358d84 100644
--- a/posixunix.scm
+++ b/posixunix.scm
@@ -44,16 +44,9 @@
    current-effective-group-id current-effective-user-id
    current-effective-user-name get-environment-variables
    current-group-id current-process-id current-user-id current-user-name
-   delete-directory directory directory? duplicate-fileno errno/2big
-   errno/acces errno/again errno/badf errno/busy errno/child
-   errno/deadlk errno/dom errno/exist errno/fault errno/fbig errno/ilseq
-   errno/intr errno/inval errno/io errno/isdir errno/mfile errno/mlink
-   errno/nametoolong errno/nfile errno/nodev errno/noent errno/noexec
-   errno/nolck errno/nomem errno/nospc errno/nosys errno/notdir
-   errno/notempty errno/notty errno/nxio errno/perm errno/pipe
-   errno/range errno/rofs errno/spipe errno/srch errno/wouldblock
-   errno/xdev fcntl/dupfd fcntl/getfd fcntl/getfl fcntl/setfd
-   fcntl/setfl fifo? file-access-time file-change-time
+   delete-directory directory directory? duplicate-fileno
+   fcntl/dupfd fcntl/getfd fcntl/getfl fcntl/setfd fcntl/setfl
+   fifo? file-access-time file-change-time
    file-creation-mode file-close file-control file-execute-access?
    file-link file-lock file-lock/blocking file-mkstemp
    file-modification-time file-open file-owner file-permissions
@@ -1053,49 +1046,6 @@ EOF
       (##sys#error 'initialize-groups "cannot initialize supplementary group 
ids" user id) ) ) ) )
 
 
-;;; More errno codes:
-
-(define errno/perm _eperm)
-(define errno/noent _enoent)
-(define errno/srch _esrch)
-(define errno/intr _eintr)
-(define errno/io _eio)
-(define errno/noexec _enoexec)
-(define errno/badf _ebadf)
-(define errno/child _echild)
-(define errno/nomem _enomem)
-(define errno/acces _eacces)
-(define errno/fault _efault)
-(define errno/busy _ebusy)
-(define errno/notdir _enotdir)
-(define errno/isdir _eisdir)
-(define errno/inval _einval)
-(define errno/mfile _emfile)
-(define errno/nospc _enospc)
-(define errno/spipe _espipe)
-(define errno/pipe _epipe)
-(define errno/again _eagain)
-(define errno/rofs _erofs)
-(define errno/exist _eexist)
-(define errno/wouldblock _ewouldblock)
-
-(define errno/2big 0)
-(define errno/deadlk 0)
-(define errno/dom 0)
-(define errno/fbig 0)
-(define errno/ilseq 0)
-(define errno/mlink 0)
-(define errno/nametoolong 0)
-(define errno/nfile 0)
-(define errno/nodev 0)
-(define errno/nolck 0)
-(define errno/nosys 0)
-(define errno/notempty 0)
-(define errno/notty 0)
-(define errno/nxio 0)
-(define errno/range 0)
-(define errno/xdev 0)
-
 ;;; Permissions and owners:
 
 (define change-file-mode
@@ -1819,4 +1769,48 @@ EOF
       (when (fx< (chroot dir) 0)
         (posix-error #:file-error 'set-root-directory! "unable to change root 
directory" dir) ) ) ) )
 
-)
+) ; chicken.posix
+
+(module chicken.errno *
+(import scheme chicken)
+(export errno)
+;; XXX TODO why aren't these set?
+(define errno/2big 0)
+(define errno/deadlk 0)
+(define errno/dom 0)
+(define errno/fbig 0)
+(define errno/ilseq 0)
+(define errno/mlink 0)
+(define errno/nametoolong 0)
+(define errno/nfile 0)
+(define errno/nodev 0)
+(define errno/nolck 0)
+(define errno/nosys 0)
+(define errno/notempty 0)
+(define errno/notty 0)
+(define errno/nxio 0)
+(define errno/range 0)
+(define errno/xdev 0)
+(define errno/acces _eacces)
+(define errno/again _eagain)
+(define errno/badf _ebadf)
+(define errno/busy _ebusy)
+(define errno/child _echild)
+(define errno/exist _eexist)
+(define errno/fault _efault)
+(define errno/intr _eintr)
+(define errno/inval _einval)
+(define errno/io _eio)
+(define errno/isdir _eisdir)
+(define errno/mfile _emfile)
+(define errno/noent _enoent)
+(define errno/noexec _enoexec)
+(define errno/nomem _enomem)
+(define errno/nospc _enospc)
+(define errno/notdir _enotdir)
+(define errno/perm _eperm)
+(define errno/pipe _epipe)
+(define errno/rofs _erofs)
+(define errno/spipe _espipe)
+(define errno/srch _esrch)
+(define errno/wouldblock _ewouldblock))
diff --git a/posixwin.scm b/posixwin.scm
index 3d60568..b1ce436 100644
--- a/posixwin.scm
+++ b/posixwin.scm
@@ -33,7 +33,6 @@
 ; symbolic-link?
 ; set-signal-mask!  signal-mask         signal-masked?  signal-mask!  
signal-unmask!
 ; user-information group-information  get-groups  set-groups!  
initialize-groups
-; errno/wouldblock
 ; change-directory*
 ; change-file-owner
 ; current-user-id  current-group-id  current-effective-user-id 
current-effective-group-id
@@ -669,16 +668,9 @@ EOF
    current-effective-group-id current-effective-user-id
    current-effective-user-name get-environment-variables
    current-group-id current-process-id current-user-id current-user-name
-   delete-directory directory directory? duplicate-fileno errno/2big
-   errno/acces errno/again errno/badf errno/busy errno/child
-   errno/deadlk errno/dom errno/exist errno/fault errno/fbig errno/ilseq
-   errno/intr errno/inval errno/io errno/isdir errno/mfile errno/mlink
-   errno/nametoolong errno/nfile errno/nodev errno/noent errno/noexec
-   errno/nolck errno/nomem errno/nospc errno/nosys errno/notdir
-   errno/notempty errno/notty errno/nxio errno/perm errno/pipe
-   errno/range errno/rofs errno/spipe errno/srch errno/wouldblock
-   errno/xdev #;fcntl/dupfd #;fcntl/getfd #;fcntl/getfl #;fcntl/setfd
-   #;fcntl/setfl fifo? file-access-time file-change-time
+   delete-directory directory directory? duplicate-fileno
+   #;fcntl/dupfd #;fcntl/getfd #;fcntl/getfl #;fcntl/setfd #;fcntl/setfl
+   fifo? file-access-time file-change-time
    file-creation-mode file-close #;file-control file-execute-access?
    file-link file-lock file-lock/blocking file-mkstemp
    file-modification-time file-open file-owner file-permissions
@@ -1027,48 +1019,6 @@ EOF
     signal/segv signal/abrt signal/break))
 
 
-;;; More errno codes:
-
-
-(define errno/perm _eperm)
-(define errno/noent _enoent)
-(define errno/srch _esrch)
-(define errno/intr _eintr)
-(define errno/io _eio)
-(define errno/noexec _enoexec)
-(define errno/badf _ebadf)
-(define errno/child _echild)
-(define errno/nomem _enomem)
-(define errno/acces _eacces)
-(define errno/fault _efault)
-(define errno/busy _ebusy)
-(define errno/exist _eexist)
-(define errno/notdir _enotdir)
-(define errno/isdir _eisdir)
-(define errno/inval _einval)
-(define errno/mfile _emfile)
-(define errno/nospc _enospc)
-(define errno/spipe _espipe)
-(define errno/pipe _epipe)
-(define errno/again _eagain)
-(define errno/rofs _erofs)
-(define errno/nxio _enxio)
-(define errno/2big _e2big)
-(define errno/xdev _exdev)
-(define errno/nodev _enodev)
-(define errno/nfile _enfile)
-(define errno/notty _enotty)
-(define errno/fbig _efbig)
-(define errno/mlink _emlink)
-(define errno/dom _edom)
-(define errno/range _erange)
-(define errno/deadlk _edeadlk)
-(define errno/nametoolong _enametoolong)
-(define errno/nolck _enolck)
-(define errno/nosys _enosys)
-(define errno/notempty _enotempty)
-(define errno/ilseq _eilseq)
-
 ;;; Permissions and owners:
 
 (define change-file-mode
@@ -1473,8 +1423,6 @@ EOF
 (define-unimplemented utc-time->seconds)
 (define-unimplemented string->time)
 
-(define errno/wouldblock 0)
-
 (define (fifo? _) #f)
 
 (define open/fsync 0)
@@ -1485,4 +1433,47 @@ EOF
 (define perm/isuid 0)
 (define perm/isvtx 0)
 
-)
+) ; chicken.posix
+
+(module chicken.errno *
+(import scheme chicken)
+(export errno)
+(define errno/wouldblock 0) ; undefined on mingw
+(define errno/2big _e2big)
+(define errno/acces _eacces)
+(define errno/again _eagain)
+(define errno/badf _ebadf)
+(define errno/busy _ebusy)
+(define errno/child _echild)
+(define errno/deadlk _edeadlk)
+(define errno/dom _edom)
+(define errno/exist _eexist)
+(define errno/fault _efault)
+(define errno/fbig _efbig)
+(define errno/ilseq _eilseq)
+(define errno/intr _eintr)
+(define errno/inval _einval)
+(define errno/io _eio)
+(define errno/isdir _eisdir)
+(define errno/mfile _emfile)
+(define errno/mlink _emlink)
+(define errno/nametoolong _enametoolong)
+(define errno/nfile _enfile)
+(define errno/nodev _enodev)
+(define errno/noent _enoent)
+(define errno/noexec _enoexec)
+(define errno/nolck _enolck)
+(define errno/nomem _enomem)
+(define errno/nospc _enospc)
+(define errno/nosys _enosys)
+(define errno/notdir _enotdir)
+(define errno/notempty _enotempty)
+(define errno/notty _enotty)
+(define errno/nxio _enxio)
+(define errno/perm _eperm)
+(define errno/pipe _epipe)
+(define errno/range _erange)
+(define errno/rofs _erofs)
+(define errno/spipe _espipe)
+(define errno/srch _esrch)
+(define errno/xdev _exdev))
diff --git a/rules.make b/rules.make
index a4a3293..abe5b3f 100644
--- a/rules.make
+++ b/rules.make
@@ -519,6 +519,7 @@ $(foreach lib, $(filter-out chicken,$(COMPILER_OBJECTS_1)),\
 
 # special cases for modules not corresponding directly to units
 $(eval $(call 
declare-emitted-import-lib-dependency,chicken.posix,$(POSIXFILE)))
+$(eval $(call 
declare-emitted-import-lib-dependency,chicken.errno,$(POSIXFILE)))
 $(eval $(call declare-emitted-import-lib-dependency,chicken.bitwise,library))
 $(eval $(call declare-emitted-import-lib-dependency,chicken.fixnum,library))
 $(eval $(call declare-emitted-import-lib-dependency,chicken.flonum,library))
@@ -799,9 +800,13 @@ extras.c: $(SRCDIR)extras.scm 
$(SRCDIR)common-declarations.scm
        -emit-import-library chicken.pretty-print \
        -emit-import-library chicken.random
 posixunix.c: $(SRCDIR)posixunix.scm $(SRCDIR)posix-common.scm 
$(SRCDIR)common-declarations.scm
-       $(bootstrap-lib) -emit-import-library chicken.posix
+       $(bootstrap-lib) \
+       -emit-import-library chicken.errno \
+       -emit-import-library chicken.posix
 posixwin.c: $(SRCDIR)posixwin.scm $(SRCDIR)posix-common.scm 
$(SRCDIR)common-declarations.scm
-       $(bootstrap-lib) -emit-import-library chicken.posix
+       $(bootstrap-lib) \
+       -emit-import-library chicken.errno \
+       -emit-import-library chicken.posix
 irregex.c: $(SRCDIR)irregex.scm $(SRCDIR)irregex-core.scm 
$(SRCDIR)irregex-utils.scm $(SRCDIR)common-declarations.scm
        $(bootstrap-lib) -emit-import-library chicken.irregex
 chicken-syntax.c: $(SRCDIR)chicken-syntax.scm $(SRCDIR)common-declarations.scm 
$(SRCDIR)mini-srfi-1.scm
diff --git a/types.db b/types.db
index 3c0ee1e..a05bb1d 100644
--- a/types.db
+++ b/types.db
@@ -1850,6 +1850,47 @@
 (chicken.ports#with-output-to-port (#(procedure #:enforce) 
chicken.ports#with-output-to-port (output-port (procedure () . *)) . *))
 (chicken.ports#with-output-to-string (#(procedure #:enforce) 
chicken.ports#with-output-to-string ((procedure () . *)) . *))
 
+;; errno
+
+(chicken.errno#errno/2big fixnum)
+(chicken.errno#errno/acces fixnum)
+(chicken.errno#errno/again fixnum)
+(chicken.errno#errno/badf fixnum)
+(chicken.errno#errno/busy fixnum)
+(chicken.errno#errno/child fixnum)
+(chicken.errno#errno/deadlk fixnum)
+(chicken.errno#errno/dom fixnum)
+(chicken.errno#errno/exist fixnum)
+(chicken.errno#errno/fault fixnum)
+(chicken.errno#errno/fbig fixnum)
+(chicken.errno#errno/ilseq fixnum)
+(chicken.errno#errno/intr fixnum)
+(chicken.errno#errno/inval fixnum)
+(chicken.errno#errno/io fixnum)
+(chicken.errno#errno/isdir fixnum)
+(chicken.errno#errno/mfile fixnum)
+(chicken.errno#errno/mlink fixnum)
+(chicken.errno#errno/nametoolong fixnum)
+(chicken.errno#errno/nfile fixnum)
+(chicken.errno#errno/nodev fixnum)
+(chicken.errno#errno/noent fixnum)
+(chicken.errno#errno/noexec fixnum)
+(chicken.errno#errno/nolck fixnum)
+(chicken.errno#errno/nomem fixnum)
+(chicken.errno#errno/nospc fixnum)
+(chicken.errno#errno/nosys fixnum)
+(chicken.errno#errno/notdir fixnum)
+(chicken.errno#errno/notempty fixnum)
+(chicken.errno#errno/notty fixnum)
+(chicken.errno#errno/nxio fixnum)
+(chicken.errno#errno/perm fixnum)
+(chicken.errno#errno/pipe fixnum)
+(chicken.errno#errno/range fixnum)
+(chicken.errno#errno/rofs fixnum)
+(chicken.errno#errno/spipe fixnum)
+(chicken.errno#errno/srch fixnum)
+(chicken.errno#errno/wouldblock fixnum)
+(chicken.errno#errno/xdev fixnum)
 
 ;; posix
 
@@ -1883,45 +1924,6 @@
 (chicken.posix#directory (#(procedure #:clean #:enforce) 
chicken.posix#directory (#!optional string *) (list-of string)))
 (chicken.posix#directory? (#(procedure #:clean #:enforce) 
chicken.posix#directory? ((or string fixnum)) boolean))
 (chicken.posix#duplicate-fileno (#(procedure #:clean #:enforce) 
chicken.posix#duplicate-fileno (fixnum #!optional fixnum) fixnum))
-(chicken.posix#errno/2big fixnum)
-(chicken.posix#errno/acces fixnum)
-(chicken.posix#errno/again fixnum)
-(chicken.posix#errno/badf fixnum)
-(chicken.posix#errno/busy fixnum)
-(chicken.posix#errno/child fixnum)
-(chicken.posix#errno/deadlk fixnum)
-(chicken.posix#errno/dom fixnum)
-(chicken.posix#errno/exist fixnum)
-(chicken.posix#errno/fault fixnum)
-(chicken.posix#errno/fbig fixnum)
-(chicken.posix#errno/ilseq fixnum)
-(chicken.posix#errno/intr fixnum)
-(chicken.posix#errno/inval fixnum)
-(chicken.posix#errno/io fixnum)
-(chicken.posix#errno/isdir fixnum)
-(chicken.posix#errno/mfile fixnum)
-(chicken.posix#errno/mlink fixnum)
-(chicken.posix#errno/nametoolong fixnum)
-(chicken.posix#errno/nfile fixnum)
-(chicken.posix#errno/nodev fixnum)
-(chicken.posix#errno/noent fixnum)
-(chicken.posix#errno/noexec fixnum)
-(chicken.posix#errno/nolck fixnum)
-(chicken.posix#errno/nomem fixnum)
-(chicken.posix#errno/nospc fixnum)
-(chicken.posix#errno/nosys fixnum)
-(chicken.posix#errno/notdir fixnum)
-(chicken.posix#errno/notempty fixnum)
-(chicken.posix#errno/notty fixnum)
-(chicken.posix#errno/nxio fixnum)
-(chicken.posix#errno/perm fixnum)
-(chicken.posix#errno/pipe fixnum)
-(chicken.posix#errno/range fixnum)
-(chicken.posix#errno/rofs fixnum)
-(chicken.posix#errno/spipe fixnum)
-(chicken.posix#errno/srch fixnum)
-(chicken.posix#errno/wouldblock fixnum)
-(chicken.posix#errno/xdev fixnum)
 (chicken.posix#fcntl/dupfd fixnum)
 (chicken.posix#fcntl/getfd fixnum)
 (chicken.posix#fcntl/getfl fixnum)
-- 
2.8.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]