[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