(import-for-syntax (only (chicken string) conc)) (define-syntax domodule (er-macro-transformer (lambda (x r t) (let ((imports (cadr x)) (identifiers (caddr x))) `(let () (import ,imports) ,@(map (lambda (x) (define id (conc imports "#" x)) `(and-let* ((pi (and (procedure? ,x) (procedure-information ,x))) (id$ (and (pair? pi) (car pi)))) (unless (equal? ,id (conc id$)) (print ,id " vs " id$)))) identifiers)))))) (domodule chicken.process-context.posix (change-directory* set-root-directory! current-effective-group-id current-effective-user-id current-group-id current-process-id current-user-id parent-process-id current-user-name current-effective-user-name create-session process-group-id user-information)) (domodule chicken.process (qs system system* process-execute process-fork process-run process-signal process-spawn process-wait call-with-input-pipe call-with-output-pipe close-input-pipe close-output-pipe create-pipe open-input-pipe open-output-pipe with-input-from-pipe with-output-to-pipe process process* process-sleep pipe/buf spawn/overlay spawn/wait spawn/nowait spawn/nowaito spawn/detach)) (domodule chicken.time.posix (seconds->utc-time utc-time->seconds seconds->local-time seconds->string local-time->seconds string->time time->string local-timezone-abbreviation)) (domodule chicken.file.posix (create-fifo create-symbolic-link read-symbolic-link duplicate-fileno fcntl/dupfd fcntl/getfd fcntl/getfl fcntl/setfd fcntl/setfl file-access-time file-change-time file-modification-time file-close file-control file-creation-mode file-group file-link file-lock file-lock/blocking file-mkstemp file-open file-owner file-permissions file-position file-read file-select file-size file-stat file-test-lock file-truncate file-unlock file-write file-type block-device? character-device? directory? fifo? regular-file? socket? symbolic-link? fileno/stderr fileno/stdin fileno/stdout open-input-file* open-output-file* open/append open/binary open/creat open/excl open/fsync open/noctty open/noinherit open/nonblock open/rdonly open/rdwr open/read open/sync open/text open/trunc open/write open/wronly 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 port->fileno set-file-group! set-file-owner! set-file-permissions! set-file-position! set-file-times! seek/cur seek/set seek/end)) (domodule chicken.errno (errno/xdev errno/wouldblock errno/srch errno/spipe errno/rofs errno/range errno/pipe errno/perm errno/nxio errno/notty errno/notempty errno/notdir errno/nosys errno/nospc errno/nomem errno/nolck errno/noexec errno/noent errno/nodev errno/nfile errno/nametoolong errno/mlink errno/mfile errno/isdir errno/io errno/inval errno/intr errno/ilseq errno/fbig errno/fault errno/exist errno/dom errno/deadlk errno/child errno/busy errno/badf errno/again errno/acces errno/2big errno)) (domodule chicken.memory (address->pointer align-to-word allocate free make-pointer-vector move-memory! object->pointer pointer+ pointer->address pointer->object pointer-f32-ref pointer-f32-set! pointer-f64-ref pointer-f64-set! pointer-like? pointer-s16-ref pointer-s16-set! pointer-s32-ref pointer-s32-set! pointer-s64-ref pointer-s64-set! pointer-s8-ref pointer-s8-set! pointer-tag pointer-u16-ref pointer-u16-set! pointer-u32-ref pointer-u32-set! pointer-u64-ref pointer-u64-set! pointer-u8-ref pointer-u8-set! pointer-vector pointer-vector-fill! pointer-vector-length pointer-vector-ref pointer-vector-set! pointer-vector? pointer=? pointer? tag-pointer tagged-pointer?)) (domodule chicken.io (read-list read-buffered read-byte read-line read-lines read-string read-string! read-token write-byte write-line write-string)) (domodule chicken.pretty-print (pp pretty-print pretty-print-width)) (domodule chicken.format (format fprintf printf sprintf)) (domodule chicken.random (set-pseudo-random-seed! pseudo-random-integer pseudo-random-real random-bytes)) (domodule chicken.file (create-directory delete-directory create-temporary-file create-temporary-directory delete-file delete-file* copy-file move-file rename-file file-exists? directory-exists? file-readable? file-writable? file-executable? directory find-files glob)) (domodule chicken.continuation (continuation? continuation-capture continuation-graft continuation-return)) (domodule chicken.continuation (continuation? continuation-capture continuation-graft continuation-return)) (domodule chicken.string (conc ->string string-chop string-chomp string-compare3 string-compare3-ci reverse-list->string reverse-string-append string-intersperse string-split string-translate string-translate* substring=? substring-ci=? substring-index substring-index-ci)) (domodule chicken.sort (merge merge! sort sort! sorted? topological-sort)) (domodule chicken.eval (eval-handler module-environment)) (domodule chicken.load (dynamic-load-libraries set-dynamic-load-mode! load-library load-noisily load-relative load-verbose provide provided? require)) (domodule chicken.syntax (expand get-line-number strip-syntax syntax-error er-macro-transformer ir-macro-transformer)) (domodule chicken.internal (string->c-identifier library-id valid-library-specifier? module-requirement check-for-multiple-bindings macro-subset fixup-macro-environment hash-table-ref hash-table-set! hash-table-update! hash-table-for-each hash-table-size default-imports default-syntax-imports)) (domodule chicken.irregex (irregex irregex? string->sre maybe-string->sre sre->irregex irregex-names irregex-num-submatches string->irregex make-irregex-chunker irregex-extract irregex-fold irregex-match irregex-match? irregex-search irregex-split irregex-replace irregex-replace/all irregex-fold/chunked irregex-match/chunked irregex-search/chunked irregex-match-data? irregex-match-names irregex-match-start-index irregex-match-end-index irregex-match-num-submatches irregex-match-substring irregex-match-valid-index? irregex-match-start-chunk irregex-match-end-chunk irregex-match-subchunk glob->sre sre->string irregex-opt irregex-quote)) (domodule chicken.time (cpu-time current-milliseconds current-seconds)) (domodule chicken.flonum (flonum-print-precision fpinteger? fpabs fpsqrt fplog fpexpt fpexp fpatan2 fpatan fpacos fpasin fptan fpcos fpsin fpceiling fpround fptruncate fpfloor fpmin fpmax fpneg fp<= fp>= fp< fp> fp= fp/? fpgcd fp/ fp* fp- fp+ flonum-minimum-decimal-exponent flonum-maximum-decimal-exponent flonum-minimum-exponent flonum-maximum-exponent flonum-decimal-precision flonum-precision flonum-epsilon flonum-radix minimum-flonum maximum-flonum)) (domodule chicken.bitwise (arithmetic-shift integer-length bit->boolean bitwise-not bitwise-xor bitwise-ior bitwise-and)) (domodule chicken.keyword (keyword? get-keyword keyword->string string->keyword)) (domodule chicken.blob (blob->string string->blob blob? blob=? blob-size make-blob)) (domodule chicken.condition (abort signal current-exception-handler print-error-message with-exception-handler make-property-condition make-composite-condition condition condition? condition->list condition-predicate condition-property-accessor get-condition-property)) (domodule chicken.base (bignum? flonum? fixnum? ratnum? cplxnum? finite? infinite? nan? exact-integer? exact-integer-sqrt exact-integer-nth-root port? port-closed? input-port-open? output-port-open? flush-output get-output-string open-input-string open-output-string get-call-chain print print* add1 sub1 sleep call/cc current-error-port error void gensym print-call-chain make-promise promise? char-name enable-warnings equal=? finite? foldl foldr getter-with-setter make-parameter notice procedure-information setter signum string->uninterned-symbol subvector symbol-append vector-copy! vector-resize warning quotient&remainder quotient&modulo alist-ref alist-update alist-update! rassoc atom? butlast chop compress flatten intersperse join list-of? tail? constantly complement compose conjoin disjoin each flip identity o case-sensitive keyword-style parentheses-synonyms symbol-escape on-exit exit exit-handler implicit-exit-handler emergency-exit)) (domodule chicken.gc (current-gc-milliseconds gc memory-statistics set-finalizer! set-gc-report! force-finalizers)) (domodule chicken.plist (get get-properties put! remprop! symbol-plist)) (domodule chicken.platform (build-platform chicken-version chicken-home feature? features machine-byte-order machine-type repository-path installation-repository register-feature! unregister-feature! software-type software-version return-to-host)) (domodule chicken.fixnum (fx/? fx*? fx-? fx+? fxrem fxmod fxgcd fx/ fxlen fxeven? fxodd? fxshr fxshl fxnot fxxor fxior fxand fxneg fxmax fxmin fx<= fx>= fx< fx> fx= fx* fx- fx+ fixnum-precision fixnum-bits most-negative-fixnum most-positive-fixnum)) (domodule chicken.memory.representation (block-ref block-set! extend-procedure extended-procedure? make-record-instance mutate-procedure! number-of-bytes number-of-slots object-become! object-copy procedure-data record->vector record-instance-length record-instance-slot record-instance-slot-set! record-instance-type record-instance? set-procedure-data! vector-like?)) (domodule chicken.locative (locative? make-locative make-weak-locative locative-ref locative-set! locative->object)) (domodule chicken.pathname (absolute-pathname? decompose-directory decompose-pathname directory-null? make-absolute-pathname make-pathname normalize-pathname pathname-directory pathname-extension pathname-file pathname-replace-directory pathname-replace-extension pathname-replace-file pathname-strip-directory pathname-strip-extension)) (domodule chicken.port (call-with-input-string call-with-output-string copy-port make-input-port make-output-port port-fold port-for-each port-map port-name port-position make-bidirectional-port make-broadcast-port make-concatenated-port set-buffering-mode! set-port-name! terminal-name terminal-port? terminal-size with-error-output-to-port with-input-from-port with-input-from-string with-output-to-port with-output-to-string with-error-output-to-string)) (domodule chicken.process.signal (set-alarm! set-signal-handler! set-signal-mask! signal-handler signal-mask signal-mask! signal-masked? signal-unmask! signal/abrt signal/alrm signal/break signal/bus signal/chld signal/cont signal/fpe 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)) (domodule chicken.read-syntax (copy-read-table current-read-table define-reader-ctor set-read-syntax! set-sharp-read-syntax! set-parameterized-read-syntax!)) (domodule chicken.repl (quit repl repl-prompt reset reset-handler)) (domodule srfi-4 (blob->f32vector blob->f32vector/shared blob->f64vector blob->f64vector/shared blob->s16vector blob->s16vector/shared blob->s32vector blob->s32vector/shared blob->s64vector blob->s64vector/shared blob->s8vector blob->s8vector/shared blob->u16vector blob->u16vector/shared blob->u32vector blob->u32vector/shared blob->u64vector blob->u64vector/shared blob->u8vector blob->u8vector/shared f32vector f32vector->blob f32vector->blob/shared f32vector->list f32vector-length f32vector-ref f32vector-set! f32vector? f64vector f64vector->blob f64vector->blob/shared f64vector->list f64vector-length f64vector-ref f64vector-set! f64vector? s8vector s8vector->blob s8vector->blob/shared s8vector->list s8vector-length s8vector-ref s8vector-set! s8vector? s16vector s16vector->blob s16vector->blob/shared s16vector->list s16vector-length s16vector-ref s16vector-set! s16vector? s32vector s32vector->blob s32vector->blob/shared s32vector->list s32vector-length s32vector-ref s32vector-set! s32vector? s64vector s64vector->blob s64vector->blob/shared s64vector->list s64vector-length s64vector-ref s64vector-set! s64vector? u8vector u8vector->blob u8vector->blob/shared u8vector->list u8vector-length u8vector-ref u8vector-set! u8vector? u16vector u16vector->blob u16vector->blob/shared u16vector->list u16vector-length u16vector-ref u16vector-set! u16vector? u32vector u32vector->blob u32vector->blob/shared u32vector->list u32vector-length u32vector-ref u32vector-set! u32vector? u64vector u64vector->blob u64vector->blob/shared u64vector->list u64vector-length u64vector-ref u64vector-set! u64vector? list->f32vector list->f64vector list->s16vector list->s32vector list->s8vector list->u16vector list->u32vector list->u8vector make-f32vector make-f64vector make-s16vector make-s32vector make-s64vector make-s8vector make-u16vector make-u32vector make-u64vector make-u8vector number-vector? read-u8vector read-u8vector! release-number-vector subf32vector subf64vector subs16vector subs32vector subs64vector subs8vector subu16vector subu8vector subu32vector subu64vector write-u8vector)) (domodule chicken.tcp (tcp-close tcp-listen tcp-connect tcp-accept tcp-accept-ready? tcp-listener? tcp-addresses tcp-abandon-port tcp-listener-port tcp-listener-fileno tcp-port-numbers tcp-buffer-size tcp-read-timeout tcp-write-timeout tcp-accept-timeout tcp-connect-timeout))