You are looking at historical revision 30857 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, ...
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.
data-structures
- ->string
- alist-ref
- alist-update
- alist-update!
- any?
- atom?
- binary-search
- butlast
- chop
- complement
- compose
- compress
- conc
- conjoin
- constantly
- disjoin
- each
- flatten
- flip
- identity
- intersperse
- join
- list->queue
- list-of?
- make-queue
- merge
- merge!
- o
- queue->list
- queue-add!
- queue-empty?
- queue-first
- queue-last
- queue-length
- queue-push-back!
- queue-push-back-list!
- queue-remove!
- queue?
- random-seed
- rassoc
- reverse-string-append
- sort
- sort!
- sorted?
- string-chomp
- string-chop
- string-compare3
- string-compare3-ci
- string-intersperse
- string-split
- string-translate
- string-translate*
- substring-ci=?
- substring-index
- substring-index-ci
- substring=?
- tail?
- topological-sort
eval
- chicken-home
- eval
- extension-information
- load
- load-library
- load-noisily
- load-relative
- provide
- provided?
- repl
- repository-path
- require
- set-dynamic-load-mode!
expand
- er-macro-transformer
- expand
- get-line-number
- ir-macro-transformer
- syntax-error
extras
- format
- fprintf
- pp
- pretty-print
- pretty-print-width
- printf
- random
- randomize
- read-byte
- read-file
- read-line
- read-lines
- read-string
- read-string!
- read-token
- sprintf
- write-byte
- write-line
- write-string
files
- absolute-pathname?
- create-temporary-directory
- create-temporary-file
- decompose-directory
- decompose-pathname
- delete-file*
- directory-null?
- file-copy
- file-move
- 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
library
- add1
- argv
- arithmetic-shift
- bit-set?
- bitwise-and
- bitwise-ior
- bitwise-not
- bitwise-xor
- blob->string
- blob-size
- blob=?
- blob?
- build-platform
- c-runtime
- call/cc
- char-name
- chicken-version
- continuation-capture
- continuation-graft
- continuation-return
- continuation?
- copy-read-table
- cpu-time
- current-error-port
- current-gc-milliseconds
- current-milliseconds
- current-output-port
- current-seconds
- define-reader-ctor
- delete-file
- directory-exists?
- enable-warnings
- equal=?
- errno
- error
- exit
- feature?
- features
- file-exists?
- finite?
- fixnum-bits
- fixnum-precision
- fixnum?
- flonum-decimal-precision
- flonum-epsilon
- flonum-maximum-decimal-exponent
- flonum-maximum-exponent
- flonum-minimum-decimal-exponent
- flonum-minimum-exponent
- flonum-precision
- flonum-radix
- flonum?
- flush-output
- foldl
- foldr
- fp*
- fp+
- fp-
- fp/
- fp<
- fp<=
- fp=
- fp>
- fp>=
- fpabs
- fpacos
- fpasin
- fpatan
- fpatan2
- fpceiling
- fpcos
- fpexp
- fpexpt
- fpfloor
- fpinteger?
- fplog
- fpmax
- fpmin
- fpneg
- fpround
- fpsin
- fpsqrt
- fptan
- fptruncate
- fx*
- fx+
- fx-
- fx/
- fx<
- fx<=
- fx=
- fx>
- fx>=
- fxand
- fxeven?
- fxior
- fxmax
- fxmin
- fxmod
- fxneg
- fxnot
- fxodd?
- fxshl
- fxshr
- fxxor
- gc
- gensym
- get
- get-call-chain
- get-environment-variable
- get-keyword
- get-output-string
- get-properties
- getenv
- getter-with-setter
- keyword->string
- keyword?
- machine-byte-order
- machine-type
- make-blob
- maximum-flonum
- memory-statistics
- minimum-flonum
- most-negative-fixnum
- most-positive-fixnum
- on-exit
- open-input-string
- open-output-string
- port-closed?
- port-name
- port-position
- port?
- print*
- print-call-chain
- print-error-message
- procedure-information
- promise?
- put!
- quit
- register-feature!
- remprop!
- rename-file
- reset
- reverse-list->string
- set-finalizer!
- set-gc-report!
- set-parameterized-read-syntax!
- set-port-name!
- set-read-syntax!
- set-sharp-read-syntax!
- setter
- signum
- software-type
- software-version
- string->blob
- string->keyword
- string->uninterned-symbol
- sub1
- subvector
- symbol-append
- symbol-plist
- system
- unregister-feature!
- vector-copy!
- vector-resize
- void
- warning
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
- 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
- call-with-input-string
- call-with-output-string
- copy-port
- make-broadcast-port
- make-concatenated-port
- make-input-port
- make-output-port
- port-fold
- port-for-each
- port-map
- with-error-output-to-port
- with-input-from-port
- with-input-from-string
- with-output-to-port
- with-output-to-string
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
- 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
- map-file-to-memory
- memory-mapped-file-pointer
- memory-mapped-file?
- 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
- port->fileno
- process
- process*
- process-execute
- process-fork
- process-group-id
- process-run
- process-signal
- process-spawn
- process-wait
- read-symbolic-link
- regular-file?
- seconds->local-time
- seconds->string
- seconds->utc-time
- set!
- set-alarm!
- set-buffering-mode!
- set-file-position!
- set-groups!
- set-process-group-id!
- 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/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
- unmap-file-from-memory
- unsetenv
- user-information
- utc-time->seconds
- with-input-from-pipe
- with-output-to-pipe
utils
- compile-file
- compile-file-options
- qs
- read-all
- scan-input-lines
- system*
- yes-or-no?