Previous: Feature Manipulation, Up: Feature Tracking [Contents][Index]
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.
arrayIndicates support for arrays (see Arrays).
array-for-eachIndicates availability of array-for-each and other array mapping
procedures (see Arrays).
char-ready?Indicates that the char-ready? function is available
(see Venerable Port Interfaces).
complexIndicates support for complex numbers.
current-timeIndicates availability of time-related functions: times,
get-internal-run-time and so on (see Time).
debug-extensionsIndicates that the debugging evaluator is available, together with the options for controlling it.
delayIndicates support for promises (see Delayed Evaluation).
EIDsIndicates that the geteuid and getegid really return
effective user and group IDs (see Processes).
inexactIndicates support for inexact numbers.
i/o-extensionsIndicates availability of the following extended I/O procedures:
ftell, redirect-port, dup->fdes, dup2,
fileno, isatty?, fdopen,
primitive-move->fdes and fdes->ports (see Ports and File Descriptors).
net-dbIndicates availability of network database functions:
scm_gethost, scm_getnet, scm_getproto,
scm_getserv, scm_sethost, scm_setnet, scm_setproto,
scm_setserv, and their ‘byXXX’ variants (see Network Databases).
posixIndicates support for POSIX functions: pipe, getgroups,
kill, execl and so on (see POSIX).
forkIndicates support for the POSIX fork function (see primitive-fork).
popenIndicates support for open-pipe in the (ice-9 popen)
module (see Pipes).
randomIndicates availability of random number generation functions:
random, copy-random-state, random-uniform and so on
(see Random).
recklessIndicates that Guile was built with important checks omitted — you should never see this!
regexIndicates support for POSIX regular expressions using
make-regexp, regexp-exec and friends (see Regexp Functions).
socketIndicates availability of socket-related functions: socket,
bind, connect and so on (see Network Sockets and Communication).
sortIndicates availability of sorting and merging functions (see Sorting).
systemIndicates that the system function is available
(see Processes).
threadsIndicates support for multithreading (see Threads).
valuesIndicates support for multiple return values using values and
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.
defmacroIndicates that the defmacro macro is available (see Macros).
describeIndicates that the (oop goops describe) module has been loaded,
which provides a procedure for describing the contents of GOOPS
instances.
readlineIndicates that Guile has loaded in Readline support, for command line editing (see Readline Support).
recordIndicates support for record definition using make-record-type
and 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 defined? procedure
than to test for the corresponding feature using provided?.
Previous: Feature Manipulation, Up: Feature Tracking [Contents][Index]