You are looking at historical revision 31648 of this page. It may differ significantly from its current revision.
At the very least, both utils and extras should be split out into more highly-targeted units and eventually dissolved.
Possibilities for smaller units into which many procedures already fit reasonably well:
- format
- format, printf, fprintf, ...
- read
- read-byte, ...
- write
- write-byte, ...
- platform
- chicken-home, c-runtime, enable-warnings, features, gc, repository-path, ...
- bench
- memory
- string
It might also be good to organize things hierarchically, in R7RS library style. Other Schemes do this to a greater or lesser degree, and it works well to differentiate built-ins from libraries. Also valuable would be to namespace, or at least alias, built-in units under (chicken ...).
- (chicken data alist)
- alist-ref, alist-update, ...
- (chicken data ...)
- ...
- (chicken i/o read)
- ...
- (chicken i/o write)
- ...
Here is a tentative but concrete structure from which to work:
- (chicken data alist)
- alist-ref alist-update alist-update! rassoc
- (chicken data combinator)
- any? constantly complement compose conjoin disjoin each flip identity o
- (chicken data list)
- atom? butlast chop compress flatten intersperse join list-of? tail?
- (chicken data sort)
- merge sort sorted? topological-sort
- (chicken data string)
- ->string conc string-chop string-chomp string-compare3 string-compare3-ci reverse-string-append string-intersperse string-split string-translate string-translate* substring=? substring-ci=? substring-index substring-index-ci
- (chicken eval)
- eval
- (chicken file operation)
- delete-file* file-copy file-move
- (chicken file pathname)
- absolute-pathname? decompose-pathname make-pathname make-absolute-pathname pathname-directory pathname-file pathname-extension pathname-replace-directory pathname-replace-file pathname-replace-extension pathname-strip-directory pathname-strip-extension normalize-pathname directory-null? decompose-directory
- (chicken file temporary)
- create-temporary-file create-temporary-directory
- (chicken fixnum)
- fx+ fx- fx/ fx* fx< fx<= fx= fx> fx>= fxand fxeven? fxior fxmax fxmin fxmod fxneg fxnot fxodd? fxshl fxshr fxxor fixnum-bits fixnum-precision most-positive-fixnum most-negative-fixnum fixnum-bits fixnum-precision fixnum?
- (chicken flonum)
- fp+ fp- fp/ fp* fp< fp<= fp= fp> fp>= fpfloor fpceiling fptruncate fpround fpsin fpcos fptan fpasin fpacos fpatan fpatan2 fplog fpexp fpexpt fpsqrt fpabs fpinteger? maximum-flonum minimum-flonum flonum-radix flonum-epsilon flonum-precision flonum-decimal-precision flonum-maximum-exponent flonum-minimum-exponent flonum-maximum-decimal-exponent flonum-minimum-decimal-exponent flonum?
- (chicken foreign)
- location define-location let-location foreign-code foreign-value foreign-declare define-foreign-type define-foreign-variable foreign-primitive foreign-lambda foreign-lambda* foreign-safe-lambda foreign-safe-lambda* foreign-type-size
- (chicken format)
- format fprintf pp pretty-print pretty-print-width printf sprintf
- (chicken i/o port)
- call-with-input-string call-with-output-string copy-port make-input-port make-output-port port-for-each port-map port-fold make-broadcast-port make-concatenated-port with-error-output-to-port with-input-from-port with-input-from-string with-output-to-port with-output-to-string
- (chicken i/o read)
- read-buffered read-byte read-file read-line read-lines read-string read-string! read-token
- (chicken i/o write)
- write-byte write-line write-string
- (chicken load)
- load load-noisily load-relative load-library require set-dynamic-load-mode!
- (chicken lolevel)
- address->pointer align-to-word allocate block-ref block-set! extend-procedure extended-procedure? free locative->object locative-ref locative-set! locative? make-locative make-pointer-vector make-record-instance make-weak-locative move-memory! mutate-procedure! number-of-bytes number-of-slots object->pointer object-become! object-copy 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-s8-ref pointer-s8-set! pointer-tag pointer-u16-ref pointer-u16-set! pointer-u32-ref pointer-u32-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? procedure-data record->vector record-instance-length record-instance-slot record-instance-slot-set! record-instance-type record-instance? set-procedure-data! tag-pointer tagged-pointer? vector-like?
- (chicken modules)
- module import export reexport define-interface module-environment functor use
- (chicken platform)
- chicken-home extension-information provide provided? repository-path
- (chicken posix)
- _exit block-device? call-with-input-pipe call-with-output-pipe change-directory change-directory* change-file-mode change-file-owner character-device? 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-group-id current-process-id current-user-id current-user-name current-effective-user-name delete-directory directory directory? duplicate-fileno errno/acces errno/again errno/badf errno/busy errno/child errno/exist errno/fault errno/intr errno/inval errno/io errno/isdir errno/mfile errno/noent errno/noexec errno/nomem errno/nospc errno/notdir errno/perm errno/pipe errno/rofs errno/spipe errno/srch errno/wouldblock fcntl/dupfd fcntl/getfd fcntl/getfl fcntl/setfd fcntl/setfl fifo? file-access-time file-change-time file-close file-control file-creation-mode file-execute-access? file-link file-lock file-lock/blocking file-mkstemp file-modification-time file-open file-owner file-permissions 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-environment-variables 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/set seek/end set-alarm! set-buffering-mode! set-file-position! 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/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 sleep 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
- (chicken random)
- random randomize
- (chicken reader)
- set-read-syntax! set-sharp-read-syntax! set-parameterized-read-syntax! copy-read-table current-read-table define-reader-ctor?
- (chicken repl)
- repl
- (chicken syntax)
- er-macro-transformer ir-macro-transformer gensym expand get-line-number strip-syntax syntax-error
- (chicken tcp)
- tcp-close tcp-listen tcp-connect tcp-accept tcp-accept-ready? ##sys#tcp-port->fileno 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
- (chicken types)
- : the assume define-type define-specialization compiler-typecase
- (chicken util)
- compile-file compile-file-options qs read-all scan-input-lines system* yes-or-no?
The following is a dump of the non-SRFI units as they currently exist. Annotate with ideas for new locations as you see fit.
Note that queues, memory-mapped-files, binary-search and object-evict have already been evicted (heh) into eggs (see #1142).
data-structures
- ->string
- string
- alist-ref
- alist
- alist-update
- alist
- alist-update!
- alist
- any?
- atom?
- binary-search
- butlast
- list
- chop
- list
- complement
- compose
- compress
- list
- conc
- string
- conjoin
- constantly
- disjoin
- each
- flatten
- list
- flip
- identity
- intersperse
- list
- join
- list->queue
- queue
- list-of?
- make-queue
- queue
- merge
- list
- merge!
- list
- o
- queue->list
- queue
- queue-add!
- queue
- queue-empty?
- queue
- queue-first
- queue
- queue-last
- queue
- queue-length
- queue
- queue-push-back!
- queue
- queue-push-back-list!
- queue
- queue-remove!
- queue
- queue?
- queue
- random-seed
- random
- rassoc
- alist
- reverse-string-append
- string
- sort
- sort
- sort!
- sort
- sorted?
- sort
- string-chomp
- string
- string-chop
- string
- string-compare3
- string
- string-compare3-ci
- string
- string-intersperse
- string
- string-split
- string
- string-translate
- string
- string-translate*
- string
- substring-ci=?
- string
- substring-index
- string
- substring-index-ci
- string
- substring=?
- string
- tail?
- topological-sort
- sort
eval
- chicken-home
- platform
- eval
- extension-information
- load
- load
- load-library
- load
- load-noisily
- load
- load-relative
- load
- provide
- provided?
- repl
- repository-path
- platform
- require
- set-dynamic-load-mode!
expand
- er-macro-transformer
- expand
- get-line-number
- ir-macro-transformer
- syntax-error
extras
- format
- io, format
- fprintf
- io, format
- pp
- io, data, format
- pretty-print
- io, data, format
- pretty-print-width
- io, data, format
- printf
- io, format, format
- random
- random
- randomize
- random
- read-byte
- io, read
- read-file
- io, read
- read-line
- io, read
- read-lines
- io, read
- read-string
- io, read
- read-string!
- io, read
- read-token
- io, read
- sprintf
- io, format
- write-byte
- io, write
- write-line
- io, write
- write-string
- io, write
files
- absolute-pathname?
- path
- create-temporary-directory
- file
- create-temporary-file
- file
- decompose-directory
- path
- decompose-pathname
- path
- delete-file*
- file
- directory-null?
- file-copy
- file
- file-move
- file
- make-absolute-pathname
- path
- make-pathname
- path
- normalize-pathname
- path
- pathname-directory
- path
- pathname-extension
- path
- pathname-file
- path
- pathname-replace-directory
- path
- pathname-replace-extension
- path
- pathname-replace-file
- path
- pathname-strip-directory
- path
- pathname-strip-extension
- path
library
- add1
- argv
- arithmetic-shift
- bits
- bit-set?
- bits
- bitwise-and
- bits
- bitwise-ior
- bits
- bitwise-not
- bits
- bitwise-xor
- bits
- blob->string
- blob-size
- blob=?
- blob?
- build-platform
- platform
- c-runtime
- platform
- call/cc
- char-name
- chicken-version
- platform
- continuation-capture
- continuation-graft
- continuation-return
- continuation?
- copy-read-table
- read-syntax
- cpu-time
- bench
- current-error-port
- current-gc-milliseconds
- time
- current-milliseconds
- time
- current-output-port
- current-seconds
- time
- define-reader-ctor
- read-syntax
- delete-file
- file
- directory-exists?
- enable-warnings
- platform
- equal=?
- errno
- error
- exit
- process, system
- feature?
- platform
- features
- platform
- file-exists?
- file
- finite?
- fixnum-bits
- fixnum, platform, limits
- fixnum-precision
- fixnum, platform, limits
- fixnum?
- fixnum
- flonum-decimal-precision
- flonum
- flonum-epsilon
- flonum
- flonum-maximum-decimal-exponent
- flonum, platform, limits
- flonum-maximum-exponent
- flonum, platform, limits
- flonum-minimum-decimal-exponent
- flonum, platform, limits
- flonum-minimum-exponent
- flonum, platform, limits
- flonum-precision
- flonum
- flonum-radix
- flonum
- flonum?
- flonum
- flush-output
- io, port
- foldl
- foldr
- fp*
- flonum
- fp+
- flonum
- fp-
- flonum
- fp/
- flonum
- fp<
- flonum
- fp<=
- flonum
- fp=
- flonum
- fp>
- flonum
- fp>=
- flonum
- fpabs
- flonum
- fpacos
- flonum
- fpasin
- flonum
- fpatan
- flonum
- fpatan2
- flonum
- fpceiling
- flonum
- fpcos
- flonum
- fpexp
- flonum
- fpexpt
- flonum
- fpfloor
- flonum
- fpinteger?
- flonum
- fplog
- flonum
- fpmax
- flonum
- fpmin
- flonum
- fpneg
- flonum
- fpround
- flonum
- fpsin
- flonum
- fpsqrt
- flonum
- fptan
- flonum
- fptruncate
- flonum
- fx*
- fixnum
- fx+
- fixnum
- fx-
- fixnum
- fx/
- fixnum
- fx<
- fixnum
- fx<=
- fixnum
- fx=
- fixnum
- fx>
- fixnum
- fx>=
- fixnum
- fxand
- fixnum
- fxeven?
- fixnum
- fxior
- fixnum
- fxmax
- fixnum
- fxmin
- fixnum
- fxmod
- fixnum
- fxneg
- fixnum
- fxnot
- fixnum
- fxodd?
- fixnum
- fxshl
- fixnum
- fxshr
- fixnum
- fxxor
- fixnum
- gc
- memory
- gensym
- get
- get-call-chain
- get-environment-variable
- process, env
- get-keyword
- keyword
- get-output-string
- port
- get-properties
- getenv
- process, env
- getter-with-setter
- keyword->string
- keyword
- keyword?
- keyword
- machine-byte-order
- platform
- machine-type
- platform
- make-blob
- memory
- maximum-flonum
- platform, limits
- memory-statistics
- platform, stats
- minimum-flonum
- platform, limits
- most-negative-fixnum
- platform, limits
- most-positive-fixnum
- platform, limits
- on-exit
- process, event
- open-input-string
- io, port
- open-output-string
- io, port
- port-closed?
- port
- port-name
- port
- port-position
- port
- port?
- port
- io, write
- print*
- io, write
- print-call-chain
- print-error-message
- procedure-information
- promise?
- put!
- quit
- process
- register-feature!
- platform
- remprop!
- rename-file
- file
- reset
- event
- reverse-list->string
- set-finalizer!
- set-gc-report!
- platform
- set-parameterized-read-syntax!
- read-syntax
- set-port-name!
- set-read-syntax!
- read-syntax
- set-sharp-read-syntax!
- read-syntax
- setter
- signum
- software-type
- platform
- software-version
- platform
- string->blob
- string->keyword
- keyword
- string->uninterned-symbol
- sub1
- subvector
- symbol-append
- symbol-plist
- system
- process, system
- unregister-feature!
- platform
- vector-copy!
- vector-resize
- void
- warning
lolevel
- address->pointer
- align-to-word
- allocate
- memory
- block-ref
- block-set!
- extend-procedure
- extended-procedure?
- free
- memory
- locative->object
- locative-ref
- locative-set!
- locative?
- make-locative
- make-pointer-vector
- make-record-instance
- make-weak-locative
- move-memory!
- memory
- mutate-procedure!
- number-of-bytes
- number-of-slots
- object->pointer
- object-become!
- object-copy
- object-evict
- object-evict-to-location
- object-evicted?
- object-release
- object-size
- object-unevict
- 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-s8-ref
- pointer-s8-set!
- pointer-tag
- pointer-u16-ref
- pointer-u16-set!
- pointer-u32-ref
- pointer-u32-set!
- pointer-u8-ref
- pointer-u8-set!
- pointer-vector
- pointer-vector-ref
- pointer-vector-set!
- pointer-vector?
- pointer=?
- pointer?
- procedure-data
- record->vector
- record-instance-length
- record-instance-slot
- record-instance-slot-set!
- record-instance-type
- record-instance?
- set!
- set-procedure-data!
- tag-pointer
- tagged-pointer?
- vector-like?
ports
This unit is already pretty sane.
- call-with-input-string
- port
- call-with-output-string
- port
- copy-port
- port
- make-broadcast-port
- port
- make-concatenated-port
- port
- make-input-port
- port
- make-output-port
- port
- port-fold
- port
- port-for-each
- port
- port-map
- port
- with-error-output-to-port
- port
- with-input-from-port
- port
- with-input-from-string
- port
- with-output-to-port
- port
- with-output-to-string
- port
posix
- _exit
- process, system
- block-device?
- file
- call-with-input-pipe
- io, port
- call-with-output-pipe
- io, port
- change-directory
- change-directory*
- change-file-mode
- file
- change-file-owner
- file
- character-device?
- file
- close-input-pipe
- io, port
- close-output-pipe
- io, port
- create-directory
- create-fifo
- file
- create-pipe
- io, fd
- create-session
- process
- create-symbolic-link
- current-directory
- process
- current-effective-group-id
- process
- current-effective-user-id
- process
- current-group-id
- process
- current-process-id
- process
- current-user-id
- process
- delete-directory
- directory
- directory?
- duplicate-fileno
- fd
- errno/acces
- errno/again
- errno/badf
- errno/busy
- errno/child
- errno/exist
- errno/fault
- errno/intr
- errno/inval
- errno/io
- errno/isdir
- errno/mfile
- errno/noent
- errno/noexec
- errno/nomem
- errno/nospc
- errno/notdir
- errno/perm
- errno/pipe
- errno/rofs
- errno/spipe
- errno/srch
- errno/wouldblock
- fcntl/dupfd
- fd, file
- fcntl/getfd
- fd, file
- fcntl/getfl
- fd, file
- fcntl/setfd
- fd, file
- fcntl/setfl
- fd, file
- fifo?
- file
- file-access-time
- file
- file-change-time
- file
- file-close
- file
- file-control
- file
- file-creation-mode
- file
- file-execute-access?
- file
- file-link
- file
- file-lock
- file
- file-lock/blocking
- file
- file-mkstemp
- file
- file-modification-time
- file
- file-open
- file
- file-owner
- file
- file-permissions
- file
- file-position
- file
- file-read
- file
- file-read-access?
- file
- file-select
- file
- file-size
- file
- file-stat
- file
- file-test-lock
- file
- file-truncate
- file
- file-type
- file
- file-unlock
- file
- file-write
- file
- file-write-access?
- file
- fileno/stderr
- io, fd
- fileno/stdin
- io, fd
- fileno/stdout
- io, fd
- find-files
- get-environment-variables
- process, env
- get-groups
- process
- get-host-name
- process, system
- glob
- group-information
- process
- initialize-groups
- system
- local-time->seconds
- time
- local-timezone-abbreviation
- time
- map-file-to-memory
- memory
- memory-mapped-file-pointer
- memory
- memory-mapped-file?
- memory
- open-input-file*
- io, fd
- open-input-pipe
- io
- open-output-file*
- io, fd
- open-output-pipe
- io
- 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
- process
- 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
- io, port, fd
- process
- process
- process*
- process
- process-execute
- process
- process-fork
- process
- process-group-id
- process
- process-run
- process
- process-signal
- process, signal
- process-spawn
- process
- process-wait
- process
- read-symbolic-link
- file
- regular-file?
- file
- seconds->local-time
- time
- seconds->string
- time
- seconds->utc-time
- time
- set!
- set-alarm!
- signal
- set-buffering-mode!
- port
- set-file-position!
- set-groups!
- process
- set-process-group-id!
- process
- set-root-directory!
- process, system
- set-signal-handler!
- signal
- set-signal-mask!
- signal
- setenv
- process, env
- signal-handler
- signal
- signal-mask
- signal
- signal-mask!
- signal
- signal-masked?
- signal
- signal-unmask!
- signal
- signal/abrt
- signal
- signal/alrm
- signal
- signal/chld
- signal
- signal/cont
- signal
- signal/fpe
- signal
- signal/hup
- signal
- signal/ill
- signal
- signal/int
- signal
- signal/io
- signal
- signal/kill
- signal
- signal/pipe
- signal
- signal/prof
- signal
- signal/quit
- signal
- signal/segv
- signal
- signal/stop
- signal
- signal/term
- signal
- signal/trap
- signal
- signal/tstp
- signal
- signal/urg
- signal
- signal/usr1
- signal
- signal/usr2
- signal
- signal/vtalrm
- signal
- signal/winch
- signal
- signal/xcpu
- signal
- signal/xfsz
- signal
- sleep
- process
- socket?
- file
- string->time
- time
- symbolic-link?
- file
- system-information
- system, platform
- terminal-name
- terminal-port?
- terminal-size
- time->string
- time
- unmap-file-from-memory
- memory
- unsetenv
- process, env
- user-information
- system
- utc-time->seconds
- time
- with-input-from-pipe
- io, port
- with-output-to-pipe
- io, port
utils
- compile-file
- compile-file-options
- qs
- system
- read-all
- io, read
- scan-input-lines
- io, read
- system*
- system, process
- yes-or-no?
- system