You are looking at historical revision 31639 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, ...
- runtime
- 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)
- ...
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
- runtime
- eval
- extension-information
- load
- load
- load-library
- load
- load-noisily
- load
- load-relative
- load
- provide
- provided?
- repl
- repository-path
- runtime
- 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
- runtime
- c-runtime
- runtime
- call/cc
- char-name
- chicken-version
- runtime
- 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
- runtime
- equal=?
- errno
- error
- exit
- process, system
- feature?
- runtime
- features
- runtime
- file-exists?
- file
- finite?
- fixnum-bits
- fixnum, runtime, limits
- fixnum-precision
- fixnum, runtime, limits
- fixnum?
- fixnum
- flonum-decimal-precision
- flonum
- flonum-epsilon
- flonum
- flonum-maximum-decimal-exponent
- flonum, runtime, limits
- flonum-maximum-exponent
- flonum, runtime, limits
- flonum-minimum-decimal-exponent
- flonum, runtime, limits
- flonum-minimum-exponent
- flonum, runtime, 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
- runtime
- 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
- runtime
- machine-type
- runtime
- make-blob
- memory
- maximum-flonum
- runtime, limits
- memory-statistics
- runtime, stats
- minimum-flonum
- runtime, limits
- most-negative-fixnum
- runtime, limits
- most-positive-fixnum
- runtime, 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!
- runtime
- remprop!
- rename-file
- file
- reset
- event
- reverse-list->string
- set-finalizer!
- set-gc-report!
- runtime
- set-parameterized-read-syntax!
- read-syntax
- set-port-name!
- set-read-syntax!
- read-syntax
- set-sharp-read-syntax!
- read-syntax
- setter
- signum
- software-type
- runtime
- software-version
- runtime
- string->blob
- string->keyword
- keyword
- string->uninterned-symbol
- sub1
- subvector
- symbol-append
- symbol-plist
- system
- process, system
- unregister-feature!
- runtime
- 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, runtime
- 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