~ chicken-core (chicken-5) 44934ff9a5d4c9bfcd2cc3d841d42fc150e4b39c


commit 44934ff9a5d4c9bfcd2cc3d841d42fc150e4b39c
Author:     Peter Bex <peter@more-magic.net>
AuthorDate: Sun Apr 29 01:22:55 2018 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Sun Apr 29 10:36:05 2018 +0200

    Do not emit or install chicken.posix.import.{so,scm}
    
    This module is not supposed to be user-visible, and the chance that
    people will accidentally use it is extra large given that CHICKEN 4
    had a "posix" module as well.
    
    Fixes #1456
    
    Signed-off-by: felix <felix@call-with-current-continuation.org>

diff --git a/README b/README
index 2d5fca31..94ff4869 100644
--- a/README
+++ b/README
@@ -305,7 +305,6 @@ _/        _/    _/    _/    _/        _/  _/    _/        _/    _/_/
 	|   |       |-- chicken.platform.import.so
 	|   |       |-- chicken.plist.import.so
 	|   |       |-- chicken.port.import.so
-	|   |       |-- chicken.posix.import.so
 	|   |       |-- chicken.pretty-print.import.so
 	|   |       |-- chicken.process.import.so
 	|   |       |-- chicken.process.signal.import.so
diff --git a/defaults.make b/defaults.make
index f9f460d9..2913baf2 100644
--- a/defaults.make
+++ b/defaults.make
@@ -267,7 +267,7 @@ PRIMITIVE_IMPORT_LIBRARIES = chicken.base chicken.condition \
 DYNAMIC_IMPORT_LIBRARIES = srfi-4
 DYNAMIC_CHICKEN_IMPORT_LIBRARIES = bitwise blob errno file.posix	\
 	fixnum flonum format gc io keyword load locative memory		\
-	memory.representation platform plist posix pretty-print		\
+	memory.representation platform plist pretty-print		\
 	process process.signal process-context process-context.posix	\
 	random sort string time.posix
 DYNAMIC_CHICKEN_COMPILER_IMPORT_LIBRARIES = user-pass
diff --git a/distribution/manifest b/distribution/manifest
index 2db385d4..b3ec51a0 100644
--- a/distribution/manifest
+++ b/distribution/manifest
@@ -321,8 +321,6 @@ chicken.plist.import.scm
 chicken.plist.import.c
 chicken.port.import.scm
 chicken.port.import.c
-chicken.posix.import.scm
-chicken.posix.import.c
 chicken.pretty-print.import.scm
 chicken.pretty-print.import.c
 chicken.process.import.scm
diff --git a/eval-modules.scm b/eval-modules.scm
index 5724c294..a48db082 100644
--- a/eval-modules.scm
+++ b/eval-modules.scm
@@ -70,7 +70,6 @@
 (defmod chicken.port)
 (defmod chicken.time)
 (defmod chicken.memory)
-(defmod chicken.posix)
 (defmod chicken.file.posix)
 (defmod chicken.flonum)
 (defmod chicken.format)
diff --git a/posix.scm b/posix.scm
index df9ef13b..24c7e76c 100644
--- a/posix.scm
+++ b/posix.scm
@@ -39,6 +39,9 @@
   (disable-interrupts)
   (not inline ##sys#interrupt-hook ##sys#user-interrupt-hook))
 
+;; This module really does not belong, but it is used to keep all the
+;; posix stuff in one place.  The modules defined later are actually
+;; the user-visible ones.
 (module chicken.posix
   (block-device? call-with-input-pipe call-with-output-pipe
    change-directory* character-device? close-input-pipe
@@ -99,7 +102,9 @@
   (platform-unix
    (include "posixunix.scm"))
   (platform-windows
-   (include "posixwin.scm"))))
+   (include "posixwin.scm")))
+
+) ; chicken.posix [internal, no implib generated]
 
 (module chicken.errno *
 (import scheme)
@@ -142,7 +147,8 @@
 (define errno/spipe _espipe)
 (define errno/srch _esrch)
 (define errno/wouldblock _ewouldblock)
-(define errno/xdev _exdev))
+(define errno/xdev _exdev)
+) ; chicken.errno
 
 (module chicken.file.posix
   (create-fifo create-symbolic-link read-symbolic-link
@@ -164,13 +170,122 @@
    perm/ixgrp perm/ixoth perm/ixusr
    port->fileno seek/cur seek/end seek/set set-file-group! set-file-owner!
    set-file-permissions! set-file-position! set-file-times!)
-(import chicken.posix))
+
+(import scheme)
+
+(define create-fifo chicken.posix#create-fifo)
+(define create-symbolic-link chicken.posix#create-symbolic-link)
+(define read-symbolic-link chicken.posix#read-symbolic-link)
+(define duplicate-fileno chicken.posix#duplicate-fileno)
+
+(define fcntl/dupfd chicken.posix#fcntl/dupfd)
+(define fcntl/getfd chicken.posix#fcntl/getfd)
+(define fcntl/getfl chicken.posix#fcntl/getfl)
+(define fcntl/setfd chicken.posix#fcntl/setfd)
+(define fcntl/setfl chicken.posix#fcntl/setfl)
+
+(define file-access-time chicken.posix#file-access-time)
+(define file-change-time chicken.posix#file-change-time)
+(define file-modification-time chicken.posix#file-modification-time)
+(define file-close chicken.posix#file-close)
+(define file-control chicken.posix#file-control)
+(define file-creation-mode chicken.posix#file-creation-mode)
+(define file-group chicken.posix#file-group)
+(define file-link chicken.posix#file-link)
+(define file-lock chicken.posix#file-lock)
+(define file-lock/blocking chicken.posix#file-lock/blocking)
+(define file-mkstemp chicken.posix#file-mkstemp)
+(define file-open chicken.posix#file-open)
+(define file-owner chicken.posix#file-owner)
+(define file-permissions chicken.posix#file-permissions)
+(define file-position chicken.posix#file-position)
+(define file-read chicken.posix#file-read)
+(define file-select chicken.posix#file-select)
+(define file-size chicken.posix#file-size)
+(define file-stat chicken.posix#file-stat)
+(define file-test-lock chicken.posix#file-test-lock)
+(define file-truncate chicken.posix#file-truncate)
+(define file-unlock chicken.posix#file-unlock)
+(define file-write chicken.posix#file-write)
+(define file-type chicken.posix#file-type)
+
+(define block-device? chicken.posix#block-device?)
+(define character-device? chicken.posix#character-device?)
+(define directory? chicken.posix#directory?)
+(define fifo? chicken.posix#fifo?)
+(define regular-file? chicken.posix#regular-file?)
+(define socket? chicken.posix#socket?)
+(define symbolic-link? chicken.posix#symbolic-link?)
+  
+(define fileno/stderr chicken.posix#fileno/stderr)
+(define fileno/stdin chicken.posix#fileno/stdin)
+(define fileno/stdout chicken.posix#fileno/stdout)
+  
+(define open-input-file* chicken.posix#open-input-file*)
+(define open-output-file* chicken.posix#open-output-file*)
+  
+(define open/append chicken.posix#open/append)
+(define open/binary chicken.posix#open/binary)
+(define open/creat chicken.posix#open/creat)
+(define open/excl chicken.posix#open/excl)
+(define open/fsync chicken.posix#open/fsync)
+(define open/noctty chicken.posix#open/noctty)
+(define open/noinherit chicken.posix#open/noinherit)
+(define open/nonblock chicken.posix#open/nonblock)
+(define open/rdonly chicken.posix#open/rdonly)
+(define open/rdwr chicken.posix#open/rdwr)
+(define open/read chicken.posix#open/read)
+(define open/sync chicken.posix#open/sync)
+(define open/text chicken.posix#open/text)
+(define open/trunc chicken.posix#open/trunc)
+(define open/write chicken.posix#open/write)
+(define open/wronly chicken.posix#open/wronly)
+  
+(define perm/irgrp chicken.posix#perm/irgrp)
+(define perm/iroth chicken.posix#perm/iroth)
+(define perm/irusr chicken.posix#perm/irusr)
+(define perm/irwxg chicken.posix#perm/irwxg)
+(define perm/irwxo chicken.posix#perm/irwxo)
+(define perm/irwxu chicken.posix#perm/irwxu)
+(define perm/isgid chicken.posix#perm/isgid)
+(define perm/isuid chicken.posix#perm/isuid)
+(define perm/isvtx chicken.posix#perm/isvtx)
+(define perm/iwgrp chicken.posix#perm/iwgrp)
+(define perm/iwoth chicken.posix#perm/iwoth)
+(define perm/iwusr chicken.posix#perm/iwusr)
+(define perm/ixgrp chicken.posix#perm/ixgrp)
+(define perm/ixoth chicken.posix#perm/ixoth)
+(define perm/ixusr chicken.posix#perm/ixusr)
+  
+(define port->fileno chicken.posix#port->fileno)
+
+(define seek/cur chicken.posix#seek/cur)
+(define seek/end chicken.posix#seek/end)
+(define seek/set chicken.posix#seek/set)
+
+(define set-file-group! chicken.posix#set-file-group!)
+(define set-file-owner! chicken.posix#set-file-owner!)
+(define set-file-permissions! chicken.posix#set-file-permissions!)
+(define set-file-position! chicken.posix#set-file-position!)
+(define set-file-times! chicken.posix#set-file-times!)
+) ; chicken.file.posix
 
 (module chicken.time.posix
   (seconds->utc-time utc-time->seconds seconds->local-time
    seconds->string local-time->seconds string->time time->string
    local-timezone-abbreviation)
-(import chicken.posix))
+
+(import scheme)
+
+(define seconds->utc-time chicken.posix#seconds->utc-time)
+(define utc-time->seconds chicken.posix#utc-time->seconds)
+(define seconds->local-time chicken.posix#seconds->local-time)
+(define seconds->string chicken.posix#seconds->string)
+(define local-time->seconds chicken.posix#local-time->seconds)
+(define string->time chicken.posix#string->time)
+(define time->string chicken.posix#time->string)
+(define local-timezone-abbreviation chicken.posix#local-timezone-abbreviation)
+) ; chicken.time.posix
 
 (module chicken.process
   (qs system system* process-execute process-fork process-run
@@ -180,7 +295,7 @@
    with-output-to-pipe process process* process-sleep pipe/buf
    spawn/overlay spawn/wait spawn/nowait spawn/nowaito spawn/detach)
 
-(import scheme chicken.base chicken.fixnum chicken.posix chicken.platform)
+(import scheme chicken.base chicken.fixnum chicken.platform)
 
 
 ;;; Execute a shell command:
@@ -217,7 +332,37 @@
     (string-append
      (string delim)
      (apply string-append escaped-parts)
-     (string delim)))))
+     (string delim))))
+
+(define process-execute chicken.posix#process-execute)
+(define process-fork chicken.posix#process-fork)
+(define process-run chicken.posix#process-run)
+(define process-signal chicken.posix#process-signal)
+(define process-spawn chicken.posix#process-spawn)
+(define process-wait chicken.posix#process-wait)
+
+(define call-with-input-pipe chicken.posix#call-with-input-pipe)
+(define call-with-output-pipe chicken.posix#call-with-output-pipe)
+(define close-input-pipe chicken.posix#close-input-pipe)
+(define close-output-pipe chicken.posix#close-output-pipe)
+(define create-pipe chicken.posix#create-pipe)
+(define open-input-pipe chicken.posix#open-input-pipe)
+(define open-output-pipe chicken.posix#open-output-pipe)
+(define with-input-from-pipe chicken.posix#with-input-from-pipe)
+(define with-output-to-pipe chicken.posix#with-output-to-pipe)
+
+(define process chicken.posix#process)
+(define process* chicken.posix#process*)
+(define process-sleep chicken.posix#process-sleep)
+
+(define pipe/buf chicken.posix#pipe/buf)
+
+(define spawn/overlay chicken.posix#spawn/overlay)
+(define spawn/wait chicken.posix#spawn/wait)
+(define spawn/nowait chicken.posix#spawn/nowait)
+(define spawn/nowaito chicken.posix#spawn/nowaito)
+(define spawn/detach chicken.posix#spawn/detach)
+) ; chicken.process
 
 (module chicken.process.signal
   (set-signal-handler! set-signal-mask! signal-handler signal-mask
@@ -227,7 +372,47 @@
    signal/quit signal/segv signal/stop signal/term signal/trap
    signal/tstp signal/urg signal/usr1 signal/usr2 signal/vtalrm
    signal/winch signal/xcpu signal/xfsz set-alarm!)
-(import chicken.posix))
+
+(import scheme)
+
+(define set-signal-handler! chicken.posix#set-signal-handler!)
+(define set-signal-mask! chicken.posix#set-signal-mask!)
+(define signal-handler chicken.posix#signal-handler)
+
+(define signal-mask chicken.posix#signal-mask)
+(define signal-mask! chicken.posix#signal-mask!)
+(define signal-masked? chicken.posix#signal-masked?)
+(define signal-unmask! chicken.posix#signal-unmask!)
+
+(define signal/abrt chicken.posix#signal/abrt)
+(define signal/alrm chicken.posix#signal/alrm)
+(define signal/break chicken.posix#signal/break)
+(define signal/bus chicken.posix#signal/bus)
+(define signal/chld chicken.posix#signal/chld)
+(define signal/cont chicken.posix#signal/cont)
+(define signal/fpe chicken.posix#signal/fpe)
+(define signal/hup chicken.posix#signal/hup)
+(define signal/ill chicken.posix#signal/ill)
+(define signal/int chicken.posix#signal/int)
+(define signal/io chicken.posix#signal/io)
+(define signal/kill chicken.posix#signal/kill)
+(define signal/pipe chicken.posix#signal/pipe)
+(define signal/prof chicken.posix#signal/prof)
+(define signal/quit chicken.posix#signal/quit)
+(define signal/segv chicken.posix#signal/segv)
+(define signal/stop chicken.posix#signal/stop)
+(define signal/term chicken.posix#signal/term)
+(define signal/trap chicken.posix#signal/trap)
+(define signal/tstp chicken.posix#signal/tstp)
+(define signal/urg chicken.posix#signal/urg)
+(define signal/usr1 chicken.posix#signal/usr1)
+(define signal/usr2 chicken.posix#signal/usr2)
+(define signal/vtalrm chicken.posix#signal/vtalrm)
+(define signal/winch chicken.posix#signal/winch)
+(define signal/xcpu chicken.posix#signal/xcpu)
+(define signal/xfsz chicken.posix#signal/xfsz)
+(define set-alarm! chicken.posix#set-alarm!)
+) ; chicken.process.signal
 
 (module chicken.process-context.posix
   (change-directory* set-root-directory!
@@ -236,4 +421,20 @@
    parent-process-id current-user-name
    current-effective-user-name create-session
    process-group-id user-information)
-(import chicken.posix))
+
+(import scheme)
+
+(define change-directory* chicken.posix#change-directory*)
+(define set-root-directory! chicken.posix#set-root-directory!)
+(define current-effective-group-id chicken.posix#current-effective-group-id)
+(define current-effective-user-id chicken.posix#current-effective-user-id)
+(define current-group-id chicken.posix#current-group-id)
+(define current-process-id chicken.posix#current-process-id)
+(define current-user-id chicken.posix#current-user-id)
+(define parent-process-id chicken.posix#parent-process-id)
+(define current-user-name chicken.posix#current-user-name)
+(define current-effective-user-name chicken.posix#current-effective-user-name)
+(define create-session chicken.posix#create-session)
+(define process-group-id chicken.posix#process-group-id)
+(define user-information chicken.posix#user-information)
+) ; chicken.process-context.posix
diff --git a/rules.make b/rules.make
index 31d81dbe..c8538937 100644
--- a/rules.make
+++ b/rules.make
@@ -483,7 +483,6 @@ $(foreach lib, $(COMPILER_OBJECTS_1),\
           $(eval $(call declare-emitted-compiler-import-lib-dependency,$(lib))))
 
 # 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.file.posix,$(POSIXFILE)))
 $(eval $(call declare-emitted-import-lib-dependency,chicken.time.posix,$(POSIXFILE)))
@@ -811,8 +810,7 @@ posixunix.c: $(SRCDIR)posix.scm $(SRCDIR)posixunix.scm $(SRCDIR)posix-common.scm
 	-emit-import-library chicken.time.posix \
 	-emit-import-library chicken.process \
 	-emit-import-library chicken.process.signal \
-	-emit-import-library chicken.process-context.posix \
-	-emit-import-library chicken.posix
+	-emit-import-library chicken.process-context.posix
 posixwin.c: $(SRCDIR)posix.scm $(SRCDIR)posixwin.scm $(SRCDIR)posix-common.scm $(SRCDIR)common-declarations.scm
 	$(bootstrap-lib) -feature platform-windows \
 	-emit-import-library chicken.errno \
@@ -820,8 +818,7 @@ posixwin.c: $(SRCDIR)posix.scm $(SRCDIR)posixwin.scm $(SRCDIR)posix-common.scm $
 	-emit-import-library chicken.time.posix \
 	-emit-import-library chicken.process \
 	-emit-import-library chicken.process.signal \
-	-emit-import-library chicken.process-context.posix \
-	-emit-import-library chicken.posix
+	-emit-import-library chicken.process-context.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
Trap