~ chicken-core (chicken-5) 8ebea4a70de449b883f9f973e8d41772eb7bc340
commit 8ebea4a70de449b883f9f973e8d41772eb7bc340 Author: Evan Hanson <evhan@foldling.org> AuthorDate: Wed Feb 11 09:06:06 2015 +1300 Commit: Evan Hanson <evhan@foldling.org> CommitDate: Sun Jul 19 21:12:54 2015 +1200 Convert the posix unit into a module diff --git a/README b/README index f58d5366..84d4e9fc 100644 --- a/README +++ b/README @@ -288,6 +288,7 @@ | | |-- chicken.files.import.so | | |-- chicken.lolevel.import.so | | |-- chicken.ports.import.so + | | |-- chicken.posix.import.so | | |-- chicken.tcp.import.so | | |-- chicken.utils.import.so | | |-- csi.import.so @@ -295,7 +296,6 @@ | | |-- foreign.import.so | | |-- irregex.import.so | | |-- modules.db - | | |-- posix.import.so | | |-- setup-api.import.so | | |-- setup-api.so | | |-- setup-download.import.so diff --git a/chicken-bug.scm b/chicken-bug.scm index 926932c0..c0be407c 100644 --- a/chicken-bug.scm +++ b/chicken-bug.scm @@ -26,8 +26,9 @@ (require-library posix tcp data-structures utils extras) -(import posix extras +(import extras chicken.data-structures + chicken.posix chicken.tcp chicken.utils) diff --git a/chicken-install.scm b/chicken-install.scm index 5e8e2188..3c3170fd 100644 --- a/chicken-install.scm +++ b/chicken-install.scm @@ -29,13 +29,14 @@ (module main () - (import scheme chicken posix irregex extras) + (import scheme chicken irregex extras) (import setup-download setup-api) (import foreign) (import chicken.data-structures chicken.files chicken.ports + chicken.posix chicken.utils) (include "mini-srfi-1.scm") @@ -49,11 +50,11 @@ "chicken.files.import.so" "chicken.lolevel.import.so" "chicken.ports.import.so" + "chicken.posix.import.so" "chicken.tcp.import.so" "chicken.utils.import.so" "srfi-1.import.so" "srfi-4.import.so" - "posix.import.so" "extras.import.so" "foreign.import.so" "csi.import.so" diff --git a/chicken-profile.scm b/chicken-profile.scm index 5e340de7..61ec0050 100644 --- a/chicken-profile.scm +++ b/chicken-profile.scm @@ -30,7 +30,8 @@ (uses data-structures posix)) -(import chicken.data-structures) +(import chicken.data-structures + chicken.posix) (include "mini-srfi-1.scm") diff --git a/chicken-status.scm b/chicken-status.scm index 7d7a8255..a780841a 100644 --- a/chicken-status.scm +++ b/chicken-status.scm @@ -30,10 +30,11 @@ (module main () (import scheme chicken foreign) - (import posix irregex setup-api extras) + (import irregex setup-api extras) (import chicken.data-structures chicken.files - chicken.ports) + chicken.ports + chicken.posix) (include "mini-srfi-1.scm") diff --git a/chicken-uninstall.scm b/chicken-uninstall.scm index 39c8ea71..e4e90212 100644 --- a/chicken-uninstall.scm +++ b/chicken-uninstall.scm @@ -33,10 +33,11 @@ (import scheme chicken foreign) (import setup-api) - (import posix irregex) + (import irregex) (import chicken.data-structures chicken.files chicken.ports + chicken.posix chicken.utils) (include "mini-srfi-1.scm") diff --git a/defaults.make b/defaults.make index 5655bf10..07eca241 100644 --- a/defaults.make +++ b/defaults.make @@ -268,8 +268,9 @@ CHICKEN_PROGRAM_OPTIONS += $(if $(PROFILE_OBJECTS),-profile) # import libraries PRIMITIVE_IMPORT_LIBRARIES = chicken srfi-4 -PRIMITIVE_IMPORT_LIBRARIES += posix extras foreign csi irregex +PRIMITIVE_IMPORT_LIBRARIES += extras foreign csi irregex PRIMITIVE_IMPORT_LIBRARIES += setup-api setup-download +POSIX_IMPORT_LIBRARY = posix DYNAMIC_IMPORT_LIBRARIES = data-structures files lolevel ports tcp utils # targets @@ -282,7 +283,7 @@ CHICKEN_INSTALL_PROGRAM = $(PROGRAM_PREFIX)chicken-install$(PROGRAM_SUFFIX) CHICKEN_UNINSTALL_PROGRAM = $(PROGRAM_PREFIX)chicken-uninstall$(PROGRAM_SUFFIX) CHICKEN_STATUS_PROGRAM = $(PROGRAM_PREFIX)chicken-status$(PROGRAM_SUFFIX) CHICKEN_BUG_PROGRAM = $(PROGRAM_PREFIX)chicken-bug$(PROGRAM_SUFFIX) -IMPORT_LIBRARIES = $(PRIMITIVE_IMPORT_LIBRARIES) \ +IMPORT_LIBRARIES = $(PRIMITIVE_IMPORT_LIBRARIES) chicken.$(POSIX_IMPORT_LIBRARY) \ $(foreach lib,$(DYNAMIC_IMPORT_LIBRARIES),chicken.$(lib)) ifdef STATICBUILD diff --git a/distribution/manifest b/distribution/manifest index 7525f68c..8edaf0bd 100644 --- a/distribution/manifest +++ b/distribution/manifest @@ -246,6 +246,8 @@ chicken.lolevel.import.scm chicken.lolevel.import.c chicken.ports.import.scm chicken.ports.import.c +chicken.posix.import.scm +chicken.posix.import.c chicken.tcp.import.scm chicken.tcp.import.c chicken.utils.import.scm @@ -253,11 +255,9 @@ chicken.utils.import.c foreign.import.scm foreign.import.c srfi-4.import.scm -posix.import.scm extras.import.scm irregex.import.scm srfi-4.import.c -posix.import.c extras.import.c irregex.import.c csi.import.scm diff --git a/modules.scm b/modules.scm index f0159c22..d6649322 100644 --- a/modules.scm +++ b/modules.scm @@ -917,6 +917,7 @@ (##sys#register-module-alias 'files 'chicken.files) (##sys#register-module-alias 'lolevel 'chicken.lolevel) (##sys#register-module-alias 'ports 'chicken.ports) +(##sys#register-module-alias 'posix 'chicken.posix) (##sys#register-module-alias 'tcp 'chicken.tcp) (##sys#register-module-alias 'utils 'chicken.utils) diff --git a/posix-common.scm b/posix-common.scm index b0280ba0..70772baa 100644 --- a/posix-common.scm +++ b/posix-common.scm @@ -25,7 +25,6 @@ (declare - (hide ##sys#stat posix-error check-time-vector ##sys#find-files) (foreign-declare #<<EOF #include <signal.h> @@ -352,6 +351,9 @@ EOF (define fileno/stdout _stdout_fileno) (define fileno/stderr _stderr_fileno) +(define open-input-file*) +(define open-output-file*) + (let () (define (mode inp m loc) (##sys#make-c-string diff --git a/posix.import.scm b/posix.import.scm deleted file mode 100644 index 8e06dfe7..00000000 --- a/posix.import.scm +++ /dev/null @@ -1,248 +0,0 @@ -;;;; posix.import.scm - import library for "posix" module -; -; Copyright (c) 2008-2015, The CHICKEN Team -; All rights reserved. -; -; Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following -; conditions are met: -; -; Redistributions of source code must retain the above copyright notice, this list of conditions and the following -; disclaimer. -; Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -; disclaimer in the documentation and/or other materials provided with the distribution. -; Neither the name of the author nor the names of its contributors may be used to endorse or promote -; products derived from this software without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS -; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY -; AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR -; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -; THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -; POSSIBILITY OF SUCH DAMAGE. - - -(##sys#register-primitive-module - 'posix - '(_exit - call-with-input-pipe - call-with-output-pipe - change-directory - change-directory* - change-file-mode - change-file-owner - close-input-pipe - close-output-pipe - create-directory - create-fifo - create-pipe - create-session - create-symbolic-link - current-directory - 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 - 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 - file-position - set-file-position! - file-read - file-read-access? - file-select - file-size - file-stat - file-test-lock - file-truncate - file-type - file-unlock - file-write - file-write-access? - fileno/stderr - fileno/stdin - fileno/stdout - find-files - get-groups - get-host-name - glob - group-information - initialize-groups - local-time->seconds - local-timezone-abbreviation - open-input-file* - open-input-pipe - open-output-file* - open-output-pipe - open/append - open/binary - open/creat - open/excl - open/fsync - open/noctty - open/nonblock - open/rdonly - open/rdwr - open/read - open/sync - open/text - open/trunc - open/write - open/wronly - parent-process-id - perm/irgrp - perm/iroth - perm/irusr - perm/irwxg - perm/irwxo - perm/irwxu - perm/isgid - perm/isuid - perm/isvtx - perm/iwgrp - perm/iwoth - perm/iwusr - perm/ixgrp - perm/ixoth - perm/ixusr - pipe/buf - port->fileno - process - process* - process-execute - process-fork - process-group-id - process-run - process-signal - process-wait - read-symbolic-link - regular-file? - seconds->local-time - seconds->string - seconds->utc-time - seek/cur - seek/end - seek/set - set-alarm! - set-buffering-mode! - set-groups! - set-root-directory! - set-signal-handler! - set-signal-mask! - setenv - signal-handler - signal-mask - signal-mask! - signal-masked? - signal-unmask! - signal/abrt - signal/alrm - signal/break - signal/chld - signal/cont - signal/fpe - signal/bus - signal/hup - signal/ill - signal/int - signal/io - signal/kill - signal/pipe - signal/prof - 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 - signals-list - sleep - block-device? - character-device? - fifo? - socket? - string->time - symbolic-link? - system-information - terminal-name - terminal-port? - terminal-size - time->string - unsetenv - user-information - utc-time->seconds - with-input-from-pipe - with-output-to-pipe)) diff --git a/posixunix.scm b/posixunix.scm index 1220a01d..faec6fad 100644 --- a/posixunix.scm +++ b/posixunix.scm @@ -29,18 +29,64 @@ (unit posix) (uses scheduler irregex extras files ports) (disable-interrupts) - (hide group-member _get-groups _ensure-groups posix-error ##sys#terminal-check) (not inline ##sys#interrupt-hook ##sys#user-interrupt-hook)) - ;; these are not available on Windows (define-foreign-variable _stat_st_blksize unsigned-int "C_statbuf.st_blksize") (define-foreign-variable _stat_st_blocks unsigned-int "C_statbuf.st_blocks") - -;;; common code - +(module chicken.posix + (_exit call-with-input-pipe call-with-output-pipe change-directory + change-directory* change-file-mode change-file-owner close-input-pipe + close-output-pipe create-directory create-fifo create-pipe + create-session create-symbolic-link current-directory + 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 + 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 + file-position set-file-position! file-read file-read-access? + file-select file-size file-stat file-test-lock file-truncate + file-type file-unlock file-write file-write-access? fileno/stderr + fileno/stdin fileno/stdout find-files get-groups get-host-name glob + group-information initialize-groups local-time->seconds + local-timezone-abbreviation open-input-file* open-input-pipe + open-output-file* open-output-pipe open/append open/binary open/creat + open/excl open/fsync open/noctty open/nonblock open/rdonly open/rdwr + open/read open/sync open/text open/trunc open/write open/wronly + parent-process-id perm/irgrp perm/iroth perm/irusr perm/irwxg + perm/irwxo perm/irwxu perm/isgid perm/isuid perm/isvtx perm/iwgrp + perm/iwoth perm/iwusr perm/ixgrp perm/ixoth perm/ixusr pipe/buf + port->fileno process process* process-execute process-fork + process-group-id process-run process-signal process-wait + read-symbolic-link regular-file? seconds->local-time seconds->string + seconds->utc-time seek/cur seek/end seek/set set-alarm! + set-buffering-mode! set-groups! set-root-directory! + set-signal-handler! set-signal-mask! setenv signal-handler + signal-mask signal-mask! signal-masked? signal-unmask! signal/abrt + signal/alrm signal/break signal/chld signal/cont signal/fpe + signal/bus signal/hup signal/ill signal/int signal/io signal/kill + signal/pipe signal/prof 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 + signals-list sleep block-device? character-device? fifo? socket? + string->time symbolic-link? system-information terminal-name + terminal-port? terminal-size time->string unsetenv user-information + utc-time->seconds with-input-from-pipe with-output-to-pipe) + +(import scheme chicken foreign irregex) (import chicken.files chicken.ports) @@ -630,6 +676,11 @@ EOF ;;; Pipes: +(define open-input-pipe) +(define open-output-pipe) +(define close-input-pipe) +(define close-output-pipe) + (let () (define (mode arg) (if (pair? arg) (##sys#slot arg 0) '###text)) (define (badmode m) (##sys#error "illegal input/output mode specifier" m)) @@ -1057,6 +1108,10 @@ EOF (define-foreign-variable _w_ok int "W_OK") (define-foreign-variable _x_ok int "X_OK") +(define file-read-access?) +(define file-write-access?) +(define file-execute-access?) + (let () (define (check filename acc loc) (##sys#check-string filename loc) @@ -1349,6 +1404,10 @@ EOF (define-foreign-variable _f_rdlck int "F_RDLCK") (define-foreign-variable _f_unlck int "F_UNLCK") +(define file-lock) +(define file-lock/blocking) +(define file-test-lock) + (let () (define (setup port args loc) (let-optionals* args ([start 0] @@ -1753,3 +1812,5 @@ EOF (##sys#check-string dir 'set-root-directory!) (when (fx< (chroot dir) 0) (posix-error #:file-error 'set-root-directory! "unable to change root directory" dir) ) ) ) ) + +) diff --git a/posixwin.scm b/posixwin.scm index 215a095b..27abd49b 100644 --- a/posixwin.scm +++ b/posixwin.scm @@ -63,7 +63,7 @@ (declare (unit posix) - (uses scheduler irregex extras files ports) + (uses data-structures scheduler irregex extras files ports) (disable-interrupts) (hide $quote-args-list $exec-setup $exec-teardown) (not inline ##sys#interrupt-hook ##sys#user-interrupt-hook) @@ -658,10 +658,63 @@ static int set_file_mtime(char *filename, C_word tm) EOF ) ) - -;;; common code - -(import chicken.files +(define-foreign-variable _stat_st_blksize scheme-object "C_SCHEME_UNDEFINED") +(define-foreign-variable _stat_st_blocks scheme-object "C_SCHEME_UNDEFINED") + +(module chicken.posix + (_exit call-with-input-pipe call-with-output-pipe change-directory + change-directory* change-file-mode change-file-owner close-input-pipe + close-output-pipe create-directory create-fifo create-pipe + create-session create-symbolic-link current-directory + 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 + 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 + file-position set-file-position! file-read file-read-access? + file-select file-size file-stat file-test-lock file-truncate + file-type file-unlock file-write file-write-access? fileno/stderr + fileno/stdin fileno/stdout find-files get-groups get-host-name glob + group-information initialize-groups local-time->seconds + local-timezone-abbreviation open-input-file* open-input-pipe + open-output-file* open-output-pipe open/append open/binary open/creat + open/excl open/fsync open/noctty open/nonblock open/rdonly open/rdwr + open/read open/sync open/text open/trunc open/write open/wronly + parent-process-id perm/irgrp perm/iroth perm/irusr perm/irwxg + perm/irwxo perm/irwxu perm/isgid perm/isuid perm/isvtx perm/iwgrp + perm/iwoth perm/iwusr perm/ixgrp perm/ixoth perm/ixusr pipe/buf + port->fileno process process* process-execute process-fork + process-group-id process-run process-signal process-wait + read-symbolic-link regular-file? seconds->local-time seconds->string + seconds->utc-time seek/cur seek/end seek/set set-alarm! + set-buffering-mode! set-groups! set-root-directory! + set-signal-handler! set-signal-mask! setenv signal-handler + signal-mask signal-mask! signal-masked? signal-unmask! signal/abrt + signal/alrm signal/break signal/chld signal/cont signal/fpe + #;signal/bus signal/hup signal/ill signal/int signal/io signal/kill + signal/pipe signal/prof 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 + signals-list sleep block-device? character-device? fifo? socket? + string->time symbolic-link? system-information terminal-name + terminal-port? terminal-size time->string unsetenv user-information + utc-time->seconds with-input-from-pipe with-output-to-pipe) + +(import scheme chicken foreign irregex) +(import chicken.data-structures + chicken.extras + chicken.files chicken.ports) (include "posix-common.scm") @@ -819,6 +872,11 @@ EOF ;;; Pipes: +(define open-input-pipe) +(define open-output-pipe) +(define close-input-pipe) +(define close-output-pipe) + (let () (define (mode arg) (if (pair? arg) (##sys#slot arg 0) '###text)) (define (badmode m) (##sys#error "illegal input/output mode specifier" m)) @@ -1017,6 +1075,10 @@ EOF (define-foreign-variable _w_ok int "4") (define-foreign-variable _x_ok int "2") +(define file-read-access?) +(define file-write-access?) +(define file-execute-access?) + (let () (define (check filename acc loc) (##sys#check-string filename loc) @@ -1419,3 +1481,5 @@ EOF (define perm/isgid 0) (define perm/isuid 0) (define perm/isvtx 0) + +) diff --git a/rules.make b/rules.make index c3a5a53e..618bc804 100644 --- a/rules.make +++ b/rules.make @@ -508,6 +508,10 @@ $(foreach lib, $(DYNAMIC_IMPORT_LIBRARIES),\ $(foreach lib, $(filter-out chicken,$(COMPILER_OBJECTS_1)),\ $(eval $(call declare-emitted-compiler-import-lib-dependency,$(lib)))) +# posix declared manually, as it varies based on POSIXFILE +.SECONDARY: chicken.posix.import.scm +chicken.posix.import.scm: $(POSIXFILE).c + chicken.c: chicken.scm mini-srfi-1.scm \ chicken.compiler.batch-driver.import.scm \ chicken.compiler.c-platform.import.scm \ @@ -575,11 +579,13 @@ chicken-status.c: chicken-status.scm \ chicken.data-structures.import.scm \ chicken.files.import.scm \ chicken.ports.import.scm \ + chicken.posix.import.scm \ setup-api.import.scm chicken-install.c: chicken-install.scm \ chicken.data-structures.import.scm \ chicken.files.import.scm \ chicken.ports.import.scm \ + chicken.posix.import.scm \ chicken.utils.import.scm \ setup-api.import.scm \ setup-download.import.scm @@ -587,17 +593,20 @@ chicken-uninstall.c: chicken-uninstall.scm \ chicken.data-structures.import.scm \ chicken.files.import.scm \ chicken.ports.import.scm \ + chicken.posix.import.scm \ chicken.utils.import.scm \ setup-api.import.scm setup-api.c: setup-api.scm \ chicken.data-structures.import.scm \ chicken.files.import.scm \ chicken.ports.import.scm \ + chicken.posix.import.scm \ chicken.utils.import.scm setup-download.c: setup-download.scm \ chicken.data-structures.import.scm \ chicken.files.import.scm \ chicken.ports.import.scm \ + chicken.posix.import.scm \ chicken.tcp.import.scm \ chicken.utils.import.scm \ setup-api.import.scm @@ -615,7 +624,8 @@ tcp.c: tcp.scm \ chicken.ports.import.scm utils.c: utils.scm \ chicken.data-structures.import.scm \ - chicken.files.import.scm + chicken.files.import.scm \ + chicken.posix.import.scm define profile-flags $(if $(filter $(basename $(1)),$(PROFILE_OBJECTS)),-profile) @@ -634,9 +644,9 @@ modules.c: $(SRCDIR)modules.scm $(SRCDIR)common-declarations.scm $(SRCDIR)mini-s extras.c: $(SRCDIR)extras.scm $(SRCDIR)common-declarations.scm $(bootstrap-lib) posixunix.c: $(SRCDIR)posixunix.scm $(SRCDIR)posix-common.scm $(SRCDIR)common-declarations.scm - $(bootstrap-lib) + $(bootstrap-lib) -emit-import-library chicken.posix posixwin.c: $(SRCDIR)posixwin.scm $(SRCDIR)posix-common.scm $(SRCDIR)common-declarations.scm - $(bootstrap-lib) + $(bootstrap-lib) -emit-import-library chicken.posix irregex.c: $(SRCDIR)irregex.scm $(SRCDIR)irregex-core.scm $(SRCDIR)irregex-utils.scm $(SRCDIR)common-declarations.scm $(bootstrap-lib) chicken-syntax.c: $(SRCDIR)chicken-syntax.scm $(SRCDIR)common-declarations.scm $(SRCDIR)mini-srfi-1.scm @@ -720,10 +730,10 @@ dist: distfiles html # Jim's `manual-labor' must be installed (just run "chicken-install manual-labor") html: $(MAKEDIR_COMMAND) $(MAKEDIR_COMMAND_OPTIONS) $(SRCDIR)manual-html - manual-labor $(SRCDIR)manual $(SRCDIR)manual-html - $(COPY_COMMAND) $(SRCDIR)chicken.png manual-html - $(COPY_COMMAND) $(SRCDIR)manual.css manual-html - $(COPY_COMMAND) $(SRCDIR)index.html manual-html + #manual-labor $(SRCDIR)manual $(SRCDIR)manual-html + #$(COPY_COMMAND) $(SRCDIR)chicken.png manual-html + #$(COPY_COMMAND) $(SRCDIR)manual.css manual-html + #$(COPY_COMMAND) $(SRCDIR)index.html manual-html # cleaning up diff --git a/setup-api.scm b/setup-api.scm index afa2efbc..cb2c3570 100644 --- a/setup-api.scm +++ b/setup-api.scm @@ -66,10 +66,11 @@ setup-error-handling) (import scheme chicken foreign - irregex posix extras + irregex extras chicken.data-structures chicken.files chicken.ports + chicken.posix chicken.utils) (include "mini-srfi-1.scm") diff --git a/setup-download.scm b/setup-download.scm index e143cb0d..33c89bda 100644 --- a/setup-download.scm +++ b/setup-download.scm @@ -37,10 +37,11 @@ temporary-directory) (import scheme chicken foreign) - (import extras irregex posix + (import extras irregex setup-api chicken.data-structures chicken.files + chicken.posix chicken.tcp chicken.utils) diff --git a/tests/port-tests.scm b/tests/port-tests.scm index 588a487a..af1c215e 100644 --- a/tests/port-tests.scm +++ b/tests/port-tests.scm @@ -1,4 +1,4 @@ -(require-extension data-structures files ports srfi-4 tcp utils) +(require-extension data-structures files ports posix srfi-4 tcp utils) (include "test.scm") (test-begin) diff --git a/tests/runtests.sh b/tests/runtests.sh index eab23d54..b8f712d9 100755 --- a/tests/runtests.sh +++ b/tests/runtests.sh @@ -39,7 +39,7 @@ for x in setup-api.so setup-api.import.so setup-download.so \ setup-download.import.so chicken.import.so chicken.lolevel.import.so \ srfi-4.import.so chicken.data-structures.import.so \ chicken.ports.import.so chicken.utils.import.so chicken.files.import.so \ - posix.import.so \ + chicken.posix.import.so \ extras.import.so \ irregex.import.so chicken.tcp.import.so \ foreign.import.so \ diff --git a/types.db b/types.db index fbd829cf..3c6b7b6c 100644 --- a/types.db +++ b/types.db @@ -1812,232 +1812,232 @@ ;; posix -(_exit (procedure _exit (#!optional fixnum) noreturn)) -(call-with-input-pipe (#(procedure #:enforce) call-with-input-pipe (string (procedure (input-port) . *) #!optional symbol) . *)) -(call-with-output-pipe (#(procedure #:enforce) call-with-output-pipe (string (procedure (input-port) . *) #!optional symbol) . *)) -(change-directory (#(procedure #:clean #:enforce) change-directory (string) string)) -(change-directory* (#(procedure #:clean #:enforce) change-directory* (fixnum) fixnum)) -(change-file-mode (#(procedure #:clean #:enforce) change-file-mode (string fixnum) undefined)) -(change-file-owner (#(procedure #:clean #:enforce) change-file-owner (string fixnum fixnum) undefined)) -(close-input-pipe (#(procedure #:clean #:enforce) close-input-pipe (input-port) fixnum)) -(close-output-pipe (#(procedure #:clean #:enforce) close-output-pipe (output-port) fixnum)) -(create-directory (#(procedure #:clean #:enforce) create-directory (string #!optional *) string)) -(create-fifo (#(procedure #:clean #:enforce) create-fifo (string #!optional fixnum) undefined)) -(create-pipe (procedure create-pipe () fixnum fixnum)) -(create-session (#(procedure #:clean) create-session () fixnum)) -(create-symbolic-link (#(procedure #:clean #:enforce) create-symbolic-link (string string) undefined)) +(chicken.posix#_exit (procedure chicken.posix#_exit (#!optional fixnum) noreturn)) +(chicken.posix#call-with-input-pipe (#(procedure #:enforce) chicken.posix#call-with-input-pipe (string (procedure (input-port) . *) #!optional symbol) . *)) +(chicken.posix#call-with-output-pipe (#(procedure #:enforce) chicken.posix#call-with-output-pipe (string (procedure (input-port) . *) #!optional symbol) . *)) +(chicken.posix#change-directory (#(procedure #:clean #:enforce) chicken.posix#change-directory (string) string)) +(chicken.posix#change-directory* (#(procedure #:clean #:enforce) chicken.posix#change-directory* (fixnum) fixnum)) +(chicken.posix#change-file-mode (#(procedure #:clean #:enforce) chicken.posix#change-file-mode (string fixnum) undefined)) +(chicken.posix#change-file-owner (#(procedure #:clean #:enforce) chicken.posix#change-file-owner (string fixnum fixnum) undefined)) +(chicken.posix#close-input-pipe (#(procedure #:clean #:enforce) chicken.posix#close-input-pipe (input-port) fixnum)) +(chicken.posix#close-output-pipe (#(procedure #:clean #:enforce) chicken.posix#close-output-pipe (output-port) fixnum)) +(chicken.posix#create-directory (#(procedure #:clean #:enforce) chicken.posix#create-directory (string #!optional *) string)) +(chicken.posix#create-fifo (#(procedure #:clean #:enforce) chicken.posix#create-fifo (string #!optional fixnum) undefined)) +(chicken.posix#create-pipe (procedure chicken.posix#create-pipe () fixnum fixnum)) +(chicken.posix#create-session (#(procedure #:clean) chicken.posix#create-session () fixnum)) +(chicken.posix#create-symbolic-link (#(procedure #:clean #:enforce) chicken.posix#create-symbolic-link (string string) undefined)) ;; extra arg for "parameterize" - ugh, what a hack... -(current-directory (#(procedure #:clean #:enforce) current-directory (#!optional string *) string)) - -(current-effective-group-id (#(procedure #:clean) current-effective-group-id () fixnum)) -(current-effective-user-id (#(procedure #:clean) current-effective-user-id () fixnum)) -(current-effective-user-name (#(procedure #:clean) current-effective-user-name () string)) -(get-environment-variables (#(procedure #:clean) get-environment-variables () (list-of string))) -(current-group-id (#(procedure #:clean) current-group-id () fixnum)) -(current-process-id (#(procedure #:clean) current-process-id () fixnum)) -(current-user-id (#(procedure #:clean) current-user-id () fixnum)) -(current-user-name (#(procedure #:clean) current-user-name () string)) -(delete-directory (#(procedure #:clean #:enforce) delete-directory (string #!optional *) string)) -(directory (#(procedure #:clean #:enforce) directory (#!optional string *) (list-of string))) -(directory? (#(procedure #:clean #:enforce) directory? ((or string fixnum)) boolean)) -(duplicate-fileno (#(procedure #:clean #:enforce) duplicate-fileno (fixnum #!optional fixnum) fixnum)) -(errno/2big fixnum) -(errno/acces fixnum) -(errno/again fixnum) -(errno/badf fixnum) -(errno/busy fixnum) -(errno/child fixnum) -(errno/deadlk fixnum) -(errno/dom fixnum) -(errno/exist fixnum) -(errno/fault fixnum) -(errno/fbig fixnum) -(errno/ilseq fixnum) -(errno/intr fixnum) -(errno/inval fixnum) -(errno/io fixnum) -(errno/isdir fixnum) -(errno/mfile fixnum) -(errno/mlink fixnum) -(errno/nametoolong fixnum) -(errno/nfile fixnum) -(errno/nodev fixnum) -(errno/noent fixnum) -(errno/noexec fixnum) -(errno/nolck fixnum) -(errno/nomem fixnum) -(errno/nospc fixnum) -(errno/nosys fixnum) -(errno/notdir fixnum) -(errno/notempty fixnum) -(errno/notty fixnum) -(errno/nxio fixnum) -(errno/perm fixnum) -(errno/pipe fixnum) -(errno/range fixnum) -(errno/rofs fixnum) -(errno/spipe fixnum) -(errno/srch fixnum) -(errno/wouldblock fixnum) -(errno/xdev fixnum) -(fcntl/dupfd fixnum) -(fcntl/getfd fixnum) -(fcntl/getfl fixnum) -(fcntl/setfd fixnum) -(fcntl/setfl fixnum) -(file-access-time (#(procedure #:clean #:enforce) file-access-time ((or string fixnum)) integer)) -(file-change-time (#(procedure #:clean #:enforce) file-change-time ((or string fixnum)) integer)) -(file-close (#(procedure #:clean #:enforce) file-close (fixnum) undefined)) -(file-control (#(procedure #:clean #:enforce) file-control (fixnum fixnum #!optional fixnum) fixnum)) -(file-creation-mode (#(procedure #:clean #:enforce) file-creation-mode (#!optional fixnum) fixnum)) -(file-execute-access? (#(procedure #:clean #:enforce) file-execute-access? (string) boolean)) -(file-link (#(procedure #:clean #:enforce) file-link (string string) undefined)) -(file-lock (#(procedure #:clean #:enforce) file-lock (port #!optional fixnum integer) (struct lock))) -(file-lock/blocking (#(procedure #:clean #:enforce) file-lock/blocking (port #!optional fixnum integer) (struct lock))) -(file-mkstemp (#(procedure #:clean #:enforce) file-mkstemp (string) fixnum string)) -(file-modification-time (#(procedure #:clean #:enforce) file-modification-time ((or string fixnum)) integer)) -(file-open (#(procedure #:clean #:enforce) file-open (string fixnum #!optional fixnum) fixnum)) -(file-owner (#(procedure #:clean #:enforce) file-owner ((or string fixnum)) fixnum)) -(file-permissions (#(procedure #:clean #:enforce) file-permissions ((or string fixnum)) fixnum)) -(file-position (#(procedure #:clean #:enforce) file-position ((or port fixnum)) integer)) -(file-read (#(procedure #:clean #:enforce) file-read (fixnum fixnum #!optional *) list)) -(file-read-access? (#(procedure #:clean #:enforce) file-read-access? (string) boolean)) -(file-select (#(procedure #:clean #:enforce) file-select ((or (list-of fixnum) fixnum false) (or (list-of fixnum) fixnum false) #!optional fixnum) * *)) -(file-size (#(procedure #:clean #:enforce) file-size ((or string fixnum)) integer)) -(file-stat (#(procedure #:clean #:enforce) file-stat ((or string fixnum) #!optional *) (vector-of integer))) -(file-test-lock (#(procedure #:clean #:enforce) file-test-lock (port #!optional fixnum *) boolean)) -(file-truncate (#(procedure #:clean #:enforce) file-truncate ((or string fixnum) integer) undefined)) -(file-type (#(procedure #:clean #:enforce) ((or string fixnum) #!optional * *) symbol)) -(file-unlock (#(procedure #:clean #:enforce) file-unlock ((struct lock)) undefined)) -(file-write (#(procedure #:clean #:enforce) file-write (fixnum * #!optional fixnum) fixnum)) -(file-write-access? (#(procedure #:clean #:enforce) file-write-access? (string) boolean)) -(fileno/stderr fixnum) -(fileno/stdin fixnum) -(fileno/stdout fixnum) -(find-files (#(procedure #:enforce) find-files (string #!rest) list)) -(get-groups (#(procedure #:clean) get-groups () list)) -(get-host-name (#(procedure #:clean) get-host-name () string)) -(glob (#(procedure #:clean #:enforce) glob (#!rest string) list)) -(group-information (#(procedure #:clean #:enforce) group-information (fixnum #!optional *) *)) -(initialize-groups (#(procedure #:clean #:enforce) initialize-groups (string fixnum) undefined)) -(local-time->seconds (#(procedure #:clean #:enforce) local-time->seconds ((vector fixnum fixnum fixnum fixnum fixnum fixnum fixnum fixnum boolean fixnum)) integer)) -(local-timezone-abbreviation (#(procedure #:clean) local-timezone-abbreviation () string)) -(open-input-file* (#(procedure #:clean #:enforce) open-input-file* (fixnum #!optional symbol) input-port)) -(open-input-pipe (#(procedure #:clean #:enforce) open-input-pipe (string #!optional symbol) input-port)) -(open-output-file* (#(procedure #:clean #:enforce) open-output-file* (fixnum #!optional symbol) output-port)) -(open-output-pipe (#(procedure #:clean #:enforce) open-output-pipe (string #!optional symbol) output-port)) -(open/append fixnum) -(open/binary fixnum) -(open/creat fixnum) -(open/excl fixnum) -(open/fsync fixnum) -(open/noctty fixnum) -(open/nonblock fixnum) -(open/rdonly fixnum) -(open/rdwr fixnum) -(open/read fixnum) -(open/sync fixnum) -(open/text fixnum) -(open/trunc fixnum) -(open/write fixnum) -(open/wronly fixnum) -(parent-process-id (#(procedure #:clean) parent-process-id () fixnum)) -(perm/irgrp fixnum) -(perm/iroth fixnum) -(perm/irusr fixnum) -(perm/irwxg fixnum) -(perm/irwxo fixnum) -(perm/irwxu fixnum) -(perm/isgid fixnum) -(perm/isuid fixnum) -(perm/isvtx fixnum) -(perm/iwgrp fixnum) -(perm/iwoth fixnum) -(perm/iwusr fixnum) -(perm/ixgrp fixnum) -(perm/ixoth fixnum) -(perm/ixusr fixnum) -(pipe/buf fixnum) -(port->fileno (#(procedure #:clean #:enforce) port->fileno (port) fixnum)) -(process (#(procedure #:clean #:enforce) process (string #!optional (list-of string) (list-of string)) input-port output-port fixnum)) -(process* (#(procedure #:clean #:enforce) process* (string #!optional (list-of string) (list-of string)) input-port output-port fixnum *)) - -(process-execute - (#(procedure #:clean #:enforce) process-execute (string #!optional (list-of string) (list-of string)) noreturn)) - -(process-fork (#(procedure #:enforce) process-fork (#!optional (or (procedure () . *) false) *) fixnum)) - -(process-group-id (#(procedure #:clean #:enforce) process-group-id () fixnum)) -(process-run (#(procedure #:clean #:enforce) process-run (string #!optional (list-of string)) fixnum)) -(process-signal (#(procedure #:clean #:enforce) process-signal (fixnum #!optional fixnum) undefined)) -(process-wait (#(procedure #:clean #:enforce) process-wait (#!optional fixnum *) fixnum fixnum fixnum)) -(read-symbolic-link (#(procedure #:clean #:enforce) read-symbolic-link (string #!optional boolean) string)) -(regular-file? (#(procedure #:clean #:enforce) regular-file? ((or string fixnum)) boolean)) -(seconds->local-time (#(procedure #:clean #:enforce) seconds->local-time (#!optional integer) (vector fixnum fixnum fixnum fixnum fixnum fixnum fixnum fixnum boolean fixnum))) -(seconds->string (#(procedure #:clean #:enforce) seconds->string (#!optional integer) string)) -(seconds->utc-time (#(procedure #:clean #:enforce) seconds->utc-time (#!optional integer) (vector fixnum fixnum fixnum fixnum fixnum fixnum fixnum fixnum boolean fixnum))) -(seek/cur fixnum) -(seek/end fixnum) -(seek/set fixnum) -(set-alarm! (#(procedure #:clean #:enforce) set-alarm! (integer) integer)) -(set-buffering-mode! (#(procedure #:clean #:enforce) set-buffering-mode! (port symbol #!optional fixnum) undefined)) -(set-file-position! (#(procedure #:clean #:enforce) set-file-position! ((or port fixnum) integer #!optional fixnum) undefined)) -(set-groups! (#(procedure #:clean #:enforce) set-groups! ((list-of fixnum)) undefined)) -(set-root-directory! (#(procedure #:clean #:enforce) set-root-directory! (string) undefined)) -(set-signal-handler! (#(procedure #:clean #:enforce) set-signal-handler! (fixnum (or false (procedure (fixnum) . *))) undefined)) -(set-signal-mask! (#(procedure #:clean #:enforce) set-signal-mask! ((list-of fixnum)) undefined)) -(setenv (#(procedure #:clean #:enforce) setenv (string string) undefined)) -(signal-handler (#(procedure #:clean #:enforce) signal-handler (fixnum) (or false (procedure (fixnum) . *)))) -(signal-mask (#(procedure #:clean) signal-mask () fixnum)) -(signal-mask! (#(procedure #:clean #:enforce) signal-mask! (fixnum) undefined)) -(signal-masked? (#(procedure #:clean #:enforce) signal-masked? (fixnum) boolean)) -(signal-unmask! (#(procedure #:clean #:enforce) signal-unmask! (fixnum) undefined)) -(signal/abrt fixnum) -(signal/alrm fixnum) -(signal/chld fixnum) -(signal/cont fixnum) -(signal/fpe fixnum) -(signal/hup fixnum) -(signal/ill fixnum) -(signal/int fixnum) -(signal/io fixnum) -(signal/bus fixnum) -(signal/kill fixnum) -(signal/pipe fixnum) -(signal/prof fixnum) -(signal/quit fixnum) -(signal/segv fixnum) -(signal/stop fixnum) -(signal/term fixnum) -(signal/trap fixnum) -(signal/tstp fixnum) -(signal/urg fixnum) -(signal/usr1 fixnum) -(signal/usr2 fixnum) -(signal/vtalrm fixnum) -(signal/winch fixnum) -(signal/xcpu fixnum) -(signal/xfsz fixnum) -(signals-list list) -(sleep (#(procedure #:clean #:enforce) sleep (fixnum) fixnum)) -(block-device? (#(procedure #:clean #:enforce) block-device? ((or string fixnum)) boolean)) -(character-device? (#(procedure #:clean #:enforce) character-device? ((or string fixnum)) boolean)) -(fifo? (#(procedure #:clean #:enforce) fifo? ((or string fixnum)) boolean)) -(socket? (#(procedure #:clean #:enforce) socket? ((or string fixnum)) boolean)) -(string->time (#(procedure #:clean #:enforce) string->time (string #!optional string) (vector fixnum fixnum fixnum fixnum fixnum fixnum fixnum fixnum boolean fixnum))) -(symbolic-link? (#(procedure #:clean #:enforce) symbolic-link? ((or string fixnum)) boolean)) -(system-information (#(procedure #:clean) system-information () list)) -(terminal-name (#(procedure #:clean #:enforce) terminal-name (port) string)) -(terminal-port? (#(procedure #:clean #:enforce) terminal-port? (port) boolean)) -(terminal-size (#(procedure #:clean #:enforce) terminal-size (port) fixnum fixnum)) -(time->string (#(procedure #:clean #:enforce) time->string ((vector fixnum fixnum fixnum fixnum fixnum fixnum fixnum fixnum boolean fixnum) #!optional string) string)) -(unmap-file-from-memory (#(procedure #:clean #:enforce) unmap-file-from-memory ((struct mmap) #!optional fixnum) undefined)) -(unsetenv (#(procedure #:clean #:enforce) unsetenv (string) undefined)) -(user-information (#(procedure #:clean #:enforce) user-information ((or string fixnum) #!optional *) *)) -(utc-time->seconds (#(procedure #:clean #:enforce) utc-time->seconds ((vector fixnum fixnum fixnum fixnum fixnum fixnum fixnum fixnum boolean fixnum)) integer)) -(with-input-from-pipe (#(procedure #:enforce) with-input-from-pipe (string (procedure () . *) #!optional symbol) . *)) -(with-output-to-pipe (#(procedure #:enforce) with-output-to-pipe (string (procedure () . *) #!optional symbol) . *)) +(chicken.posix#current-directory (#(procedure #:clean #:enforce) chicken.posix#current-directory (#!optional string *) string)) + +(chicken.posix#current-effective-group-id (#(procedure #:clean) chicken.posix#current-effective-group-id () fixnum)) +(chicken.posix#current-effective-user-id (#(procedure #:clean) chicken.posix#current-effective-user-id () fixnum)) +(chicken.posix#current-effective-user-name (#(procedure #:clean) chicken.posix#current-effective-user-name () string)) +(chicken.posix#get-environment-variables (#(procedure #:clean) chicken.posix#get-environment-variables () (list-of string))) +(chicken.posix#current-group-id (#(procedure #:clean) chicken.posix#current-group-id () fixnum)) +(chicken.posix#current-process-id (#(procedure #:clean) chicken.posix#current-process-id () fixnum)) +(chicken.posix#current-user-id (#(procedure #:clean) chicken.posix#current-user-id () fixnum)) +(chicken.posix#current-user-name (#(procedure #:clean) chicken.posix#current-user-name () string)) +(chicken.posix#delete-directory (#(procedure #:clean #:enforce) chicken.posix#delete-directory (string #!optional *) string)) +(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) +(chicken.posix#fcntl/setfd fixnum) +(chicken.posix#fcntl/setfl fixnum) +(chicken.posix#file-access-time (#(procedure #:clean #:enforce) chicken.posix#file-access-time ((or string fixnum)) integer)) +(chicken.posix#file-change-time (#(procedure #:clean #:enforce) chicken.posix#file-change-time ((or string fixnum)) integer)) +(chicken.posix#file-close (#(procedure #:clean #:enforce) chicken.posix#file-close (fixnum) undefined)) +(chicken.posix#file-control (#(procedure #:clean #:enforce) chicken.posix#file-control (fixnum fixnum #!optional fixnum) fixnum)) +(chicken.posix#file-creation-mode (#(procedure #:clean #:enforce) chicken.posix#file-creation-mode (#!optional fixnum) fixnum)) +(chicken.posix#file-execute-access? (#(procedure #:clean #:enforce) chicken.posix#file-execute-access? (string) boolean)) +(chicken.posix#file-link (#(procedure #:clean #:enforce) chicken.posix#file-link (string string) undefined)) +(chicken.posix#file-lock (#(procedure #:clean #:enforce) chicken.posix#file-lock (port #!optional fixnum integer) (struct lock))) +(chicken.posix#file-lock/blocking (#(procedure #:clean #:enforce) chicken.posix#file-lock/blocking (port #!optional fixnum integer) (struct lock))) +(chicken.posix#file-mkstemp (#(procedure #:clean #:enforce) chicken.posix#file-mkstemp (string) fixnum string)) +(chicken.posix#file-modification-time (#(procedure #:clean #:enforce) chicken.posix#file-modification-time ((or string fixnum)) integer)) +(chicken.posix#file-open (#(procedure #:clean #:enforce) chicken.posix#file-open (string fixnum #!optional fixnum) fixnum)) +(chicken.posix#file-owner (#(procedure #:clean #:enforce) chicken.posix#file-owner ((or string fixnum)) fixnum)) +(chicken.posix#file-permissions (#(procedure #:clean #:enforce) chicken.posix#file-permissions ((or string fixnum)) fixnum)) +(chicken.posix#file-position (#(procedure #:clean #:enforce) chicken.posix#file-position ((or port fixnum)) integer)) +(chicken.posix#file-read (#(procedure #:clean #:enforce) chicken.posix#file-read (fixnum fixnum #!optional *) list)) +(chicken.posix#file-read-access? (#(procedure #:clean #:enforce) chicken.posix#file-read-access? (string) boolean)) +(chicken.posix#file-select (#(procedure #:clean #:enforce) chicken.posix#file-select ((or (list-of fixnum) fixnum false) (or (list-of fixnum) fixnum false) #!optional fixnum) * *)) +(chicken.posix#file-size (#(procedure #:clean #:enforce) chicken.posix#file-size ((or string fixnum)) integer)) +(chicken.posix#file-stat (#(procedure #:clean #:enforce) chicken.posix#file-stat ((or string fixnum) #!optional *) (vector-of integer))) +(chicken.posix#file-test-lock (#(procedure #:clean #:enforce) chicken.posix#file-test-lock (port #!optional fixnum *) boolean)) +(chicken.posix#file-truncate (#(procedure #:clean #:enforce) chicken.posix#file-truncate ((or string fixnum) integer) undefined)) +(chicken.posix#file-type (#(procedure #:clean #:enforce) chicken.posix#file-type ((or string fixnum) #!optional * *) symbol)) +(chicken.posix#file-unlock (#(procedure #:clean #:enforce) chicken.posix#file-unlock ((struct lock)) undefined)) +(chicken.posix#file-write (#(procedure #:clean #:enforce) chicken.posix#file-write (fixnum * #!optional fixnum) fixnum)) +(chicken.posix#file-write-access? (#(procedure #:clean #:enforce) chicken.posix#file-write-access? (string) boolean)) +(chicken.posix#fileno/stderr fixnum) +(chicken.posix#fileno/stdin fixnum) +(chicken.posix#fileno/stdout fixnum) +(chicken.posix#find-files (#(procedure #:enforce) chicken.posix#find-files (string #!rest) list)) +(chicken.posix#get-groups (#(procedure #:clean) chicken.posix#get-groups () list)) +(chicken.posix#get-host-name (#(procedure #:clean) chicken.posix#get-host-name () string)) +(chicken.posix#glob (#(procedure #:clean #:enforce) chicken.posix#glob (#!rest string) list)) +(chicken.posix#group-information (#(procedure #:clean #:enforce) chicken.posix#group-information (fixnum #!optional *) *)) +(chicken.posix#initialize-groups (#(procedure #:clean #:enforce) chicken.posix#initialize-groups (string fixnum) undefined)) +(chicken.posix#local-time->seconds (#(procedure #:clean #:enforce) chicken.posix#local-time->seconds ((vector fixnum fixnum fixnum fixnum fixnum fixnum fixnum fixnum boolean fixnum)) integer)) +(chicken.posix#local-timezone-abbreviation (#(procedure #:clean) chicken.posix#local-timezone-abbreviation () string)) +(chicken.posix#open-input-file* (#(procedure #:clean #:enforce) chicken.posix#open-input-file* (fixnum #!optional symbol) input-port)) +(chicken.posix#open-input-pipe (#(procedure #:clean #:enforce) chicken.posix#open-input-pipe (string #!optional symbol) input-port)) +(chicken.posix#open-output-file* (#(procedure #:clean #:enforce) chicken.posix#open-output-file* (fixnum #!optional symbol) output-port)) +(chicken.posix#open-output-pipe (#(procedure #:clean #:enforce) chicken.posix#open-output-pipe (string #!optional symbol) output-port)) +(chicken.posix#open/append fixnum) +(chicken.posix#open/binary fixnum) +(chicken.posix#open/creat fixnum) +(chicken.posix#open/excl fixnum) +(chicken.posix#open/fsync fixnum) +(chicken.posix#open/noctty fixnum) +(chicken.posix#open/nonblock fixnum) +(chicken.posix#open/rdonly fixnum) +(chicken.posix#open/rdwr fixnum) +(chicken.posix#open/read fixnum) +(chicken.posix#open/sync fixnum) +(chicken.posix#open/text fixnum) +(chicken.posix#open/trunc fixnum) +(chicken.posix#open/write fixnum) +(chicken.posix#open/wronly fixnum) +(chicken.posix#parent-process-id (#(procedure #:clean) chicken.posix#parent-process-id () fixnum)) +(chicken.posix#perm/irgrp fixnum) +(chicken.posix#perm/iroth fixnum) +(chicken.posix#perm/irusr fixnum) +(chicken.posix#perm/irwxg fixnum) +(chicken.posix#perm/irwxo fixnum) +(chicken.posix#perm/irwxu fixnum) +(chicken.posix#perm/isgid fixnum) +(chicken.posix#perm/isuid fixnum) +(chicken.posix#perm/isvtx fixnum) +(chicken.posix#perm/iwgrp fixnum) +(chicken.posix#perm/iwoth fixnum) +(chicken.posix#perm/iwusr fixnum) +(chicken.posix#perm/ixgrp fixnum) +(chicken.posix#perm/ixoth fixnum) +(chicken.posix#perm/ixusr fixnum) +(chicken.posix#pipe/buf fixnum) +(chicken.posix#port->fileno (#(procedure #:clean #:enforce) chicken.posix#port->fileno (port) fixnum)) +(chicken.posix#process (#(procedure #:clean #:enforce) chicken.posix#process (string #!optional (list-of string) (list-of string)) input-port output-port fixnum)) +(chicken.posix#process* (#(procedure #:clean #:enforce) chicken.posix#process* (string #!optional (list-of string) (list-of string)) input-port output-port fixnum *)) + +(chicken.posix#process-execute + (#(procedure #:clean #:enforce) chicken.posix#process-execute (string #!optional (list-of string) (list-of string)) noreturn)) + +(chicken.posix#process-fork (#(procedure #:enforce) chicken.posix#process-fork (#!optional (or (procedure () . *) false) *) fixnum)) + +(chicken.posix#process-group-id (#(procedure #:clean #:enforce) chicken.posix#process-group-id () fixnum)) +(chicken.posix#process-run (#(procedure #:clean #:enforce) chicken.posix#process-run (string #!optional (list-of string)) fixnum)) +(chicken.posix#process-signal (#(procedure #:clean #:enforce) chicken.posix#process-signal (fixnum #!optional fixnum) undefined)) +(chicken.posix#process-wait (#(procedure #:clean #:enforce) chicken.posix#process-wait (#!optional fixnum *) fixnum fixnum fixnum)) +(chicken.posix#read-symbolic-link (#(procedure #:clean #:enforce) chicken.posix#read-symbolic-link (string #!optional boolean) string)) +(chicken.posix#regular-file? (#(procedure #:clean #:enforce) chicken.posix#regular-file? ((or string fixnum)) boolean)) +(chicken.posix#seconds->local-time (#(procedure #:clean #:enforce) chicken.posix#seconds->local-time (#!optional integer) (vector fixnum fixnum fixnum fixnum fixnum fixnum fixnum fixnum boolean fixnum))) +(chicken.posix#seconds->string (#(procedure #:clean #:enforce) chicken.posix#seconds->string (#!optional integer) string)) +(chicken.posix#seconds->utc-time (#(procedure #:clean #:enforce) chicken.posix#seconds->utc-time (#!optional integer) (vector fixnum fixnum fixnum fixnum fixnum fixnum fixnum fixnum boolean fixnum))) +(chicken.posix#seek/cur fixnum) +(chicken.posix#seek/end fixnum) +(chicken.posix#seek/set fixnum) +(chicken.posix#set-alarm! (#(procedure #:clean #:enforce) chicken.posix#set-alarm! (integer) integer)) +(chicken.posix#set-buffering-mode! (#(procedure #:clean #:enforce) chicken.posix#set-buffering-mode! (port symbol #!optional fixnum) undefined)) +(chicken.posix#set-file-position! (#(procedure #:clean #:enforce) chicken.posix#set-file-position! ((or port fixnum) integer #!optional fixnum) undefined)) +(chicken.posix#set-groups! (#(procedure #:clean #:enforce) chicken.posix#set-groups! ((list-of fixnum)) undefined)) +(chicken.posix#set-root-directory! (#(procedure #:clean #:enforce) chicken.posix#set-root-directory! (string) undefined)) +(chicken.posix#set-signal-handler! (#(procedure #:clean #:enforce) chicken.posix#set-signal-handler! (fixnum (or false (procedure (fixnum) . *))) undefined)) +(chicken.posix#set-signal-mask! (#(procedure #:clean #:enforce) chicken.posix#set-signal-mask! ((list-of fixnum)) undefined)) +(chicken.posix#setenv (#(procedure #:clean #:enforce) chicken.posix#setenv (string string) undefined)) +(chicken.posix#signal-handler (#(procedure #:clean #:enforce) chicken.posix#signal-handler (fixnum) (or false (procedure (fixnum) . *)))) +(chicken.posix#signal-mask (#(procedure #:clean) chicken.posix#signal-mask () fixnum)) +(chicken.posix#signal-mask! (#(procedure #:clean #:enforce) chicken.posix#signal-mask! (fixnum) undefined)) +(chicken.posix#signal-masked? (#(procedure #:clean #:enforce) chicken.posix#signal-masked? (fixnum) boolean)) +(chicken.posix#signal-unmask! (#(procedure #:clean #:enforce) chicken.posix#signal-unmask! (fixnum) undefined)) +(chicken.posix#signal/abrt fixnum) +(chicken.posix#signal/alrm fixnum) +(chicken.posix#signal/chld fixnum) +(chicken.posix#signal/cont fixnum) +(chicken.posix#signal/fpe fixnum) +(chicken.posix#signal/hup fixnum) +(chicken.posix#signal/ill fixnum) +(chicken.posix#signal/int fixnum) +(chicken.posix#signal/io fixnum) +(chicken.posix#signal/bus fixnum) +(chicken.posix#signal/kill fixnum) +(chicken.posix#signal/pipe fixnum) +(chicken.posix#signal/prof fixnum) +(chicken.posix#signal/quit fixnum) +(chicken.posix#signal/segv fixnum) +(chicken.posix#signal/stop fixnum) +(chicken.posix#signal/term fixnum) +(chicken.posix#signal/trap fixnum) +(chicken.posix#signal/tstp fixnum) +(chicken.posix#signal/urg fixnum) +(chicken.posix#signal/usr1 fixnum) +(chicken.posix#signal/usr2 fixnum) +(chicken.posix#signal/vtalrm fixnum) +(chicken.posix#signal/winch fixnum) +(chicken.posix#signal/xcpu fixnum) +(chicken.posix#signal/xfsz fixnum) +(chicken.posix#signals-list list) +(chicken.posix#sleep (#(procedure #:clean #:enforce) chicken.posix#sleep (fixnum) fixnum)) +(chicken.posix#block-device? (#(procedure #:clean #:enforce) chicken.posix#block-device? ((or string fixnum)) boolean)) +(chicken.posix#character-device? (#(procedure #:clean #:enforce) chicken.posix#character-device? ((or string fixnum)) boolean)) +(chicken.posix#fifo? (#(procedure #:clean #:enforce) chicken.posix#fifo? ((or string fixnum)) boolean)) +(chicken.posix#socket? (#(procedure #:clean #:enforce) chicken.posix#socket? ((or string fixnum)) boolean)) +(chicken.posix#string->time (#(procedure #:clean #:enforce) chicken.posix#string->time (string #!optional string) (vector fixnum fixnum fixnum fixnum fixnum fixnum fixnum fixnum boolean fixnum))) +(chicken.posix#symbolic-link? (#(procedure #:clean #:enforce) chicken.posix#symbolic-link? ((or string fixnum)) boolean)) +(chicken.posix#system-information (#(procedure #:clean) chicken.posix#system-information () list)) +(chicken.posix#terminal-name (#(procedure #:clean #:enforce) chicken.posix#terminal-name (port) string)) +(chicken.posix#terminal-port? (#(procedure #:clean #:enforce) chicken.posix#terminal-port? (port) boolean)) +(chicken.posix#terminal-size (#(procedure #:clean #:enforce) chicken.posix#terminal-size (port) fixnum fixnum)) +(chicken.posix#time->string (#(procedure #:clean #:enforce) chicken.posix#time->string ((vector fixnum fixnum fixnum fixnum fixnum fixnum fixnum fixnum boolean fixnum) #!optional string) string)) +(chicken.posix#unmap-file-from-memory (#(procedure #:clean #:enforce) chicken.posix#unmap-file-from-memory ((struct mmap) #!optional fixnum) undefined)) +(chicken.posix#unsetenv (#(procedure #:clean #:enforce) chicken.posix#unsetenv (string) undefined)) +(chicken.posix#user-information (#(procedure #:clean #:enforce) chicken.posix#user-information ((or string fixnum) #!optional *) *)) +(chicken.posix#utc-time->seconds (#(procedure #:clean #:enforce) chicken.posix#utc-time->seconds ((vector fixnum fixnum fixnum fixnum fixnum fixnum fixnum fixnum boolean fixnum)) integer)) +(chicken.posix#with-input-from-pipe (#(procedure #:enforce) chicken.posix#with-input-from-pipe (string (procedure () . *) #!optional symbol) . *)) +(chicken.posix#with-output-to-pipe (#(procedure #:enforce) chicken.posix#with-output-to-pipe (string (procedure () . *) #!optional symbol) . *)) ;; srfi-4 diff --git a/utils.scm b/utils.scm index a6095487..a68a72a2 100644 --- a/utils.scm +++ b/utils.scm @@ -41,9 +41,10 @@ qs) (import scheme chicken) -(import extras foreign irregex posix) +(import extras foreign irregex) (import chicken.data-structures - chicken.files) + chicken.files + chicken.posix) (include "common-declarations.scm")Trap