In general, a particular feature may be available for one of two reasons. Either because the Guile library was configured and compiled with that feature enabled — i.e. the feature is built into the library on your system. Or because some C or Scheme code that was dynamically loaded by Guile has added that feature to the list.
In the first category, here are the features that the current version of Guile may define (depending on how it is built), and what they mean.
array-for-eachand other array mapping procedures (see Arrays).
char-ready?function is available (see Reading).
get-internal-run-timeand so on (see Time).
getegidreally return effective user and group IDs (see Processes).
fdes->ports(see Ports and File Descriptors).
scm_setserv, and their `byXXX' variants (see Network Databases).
execland so on (see POSIX).
random-uniformand so on (see Random).
regexp-execand friends (see Regexp Functions).
connectand so on (see Network Sockets and Communication).
systemfunction is available (see Processes).
call-with-values(see Multiple Values).
Available features in the second category depend, by definition, on what additional code your Guile process has loaded in. The following table lists features that you might encounter for this reason.
defmacromacro is available (see Macros).
(oop goops describe)module has been loaded, which provides a procedure for describing the contents of GOOPS instances.
make-record-typeand friends (see Records).
Although these tables may seem exhaustive, it is probably unwise in
practice to rely on them, as the correspondences between feature symbols
and available procedures/behaviour are not strictly defined. If you are
writing code that needs to check for the existence of some procedure, it
is probably safer to do so directly using the
than to test for the corresponding feature using