You are looking at historical revision 30859 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.

data-structures

->string
string
alist-ref
alist
alist-update
alist
alist-update!
alist
any?
atom?
binary-search
butlast
chop
complement
compose
compress
conc
string
conjoin
constantly
disjoin
each
flatten
flip
identity
intersperse
join
list->queue
queue
list-of?
make-queue
queue
merge
merge!
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
reverse-string-append
string
sort
sort!
sorted?
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

eval

chicken-home
runtime
eval
extension-information
load
load-library
load-noisily
load-relative
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
pretty-print
io, data
pretty-print-width
io, data
printf
io, 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
bit-set?
bitwise-and
bitwise-ior
bitwise-not
bitwise-xor
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
runtime, limits
fixnum-precision
runtime, limits
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
io, port
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
runtime
gensym
get
get-call-chain
get-environment-variable
process, env
get-keyword
get-output-string
port
get-properties
getenv
process, env
getter-with-setter
keyword->string
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
print
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
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