www.delorie.com/gnu/docs/guile/guile_377.html   search  
 
Buy GNU books!


Guile Reference Manual

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

33.2.2 Common Feature Symbols

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
Indicates support for arrays (see section 22.6 Arrays).

array-for-each
Indicates availability of array-for-each and other array mapping procedures (see section 22.6.2 Array Mapping).

char-ready?
Indicates that the char-ready? function is available (see section 27.2 Reading).

complex
Indicates support for complex numbers.

current-time
Indicates availability of time-related functions: times, get-internal-run-time and so on (see section 38.5 Time).

debug-extensions
Indicates that the debugging evaluator is available, together with the options for controlling it.

delay
Indicates support for promises (see section 28.5 Delayed Evaluation).

EIDs
Indicates that the geteuid and getegid really return effective user and group IDs (see section 38.7 Processes).

inexact
Indicates support for inexact numbers.

i/o-extensions
Indicates availability of the following extended I/O procedures: ftell, redirect-port, dup->fdes, dup2, fileno, isatty?, fdopen, primitive-move->fdes and fdes->ports (see section 38.2 Ports and File Descriptors).

net-db
Indicates 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 section 38.11.2 Network Databases).

posix
Indicates support for POSIX functions: pipe, getgroups, kill, execl and so on (see section 38. POSIX System Calls and Networking).

random
Indicates availability of random number generation functions: random, copy-random-state, random-uniform and so on (see section 21.2.15 Random Number Generation).

reckless
Indicates that Guile was built with important checks omitted -- you should never see this!

regex
Indicates support for POSIX regular expressions using make-regexp, regexp-exec and friends (see section 21.5.1 Regexp Functions).

socket
Indicates availability of socket-related functions: socket, bind, connect and so on (see section 38.11.3 Network Sockets and Communication).

sort
Indicates availability of sorting and merging functions (see section 24.3 Sorting).

system
Indicates that the system function is available (see section 38.7 Processes).

threads
Indicates support for multithreading (see section 32.4 Threads).

values
Indicates support for multiple return values using values and call-with-values (see section 26.6 Returning and Accepting 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.

defmacro
Indicates that the defmacro macro is available (see section 23.5 Lisp Style Macro Definitions).

describe
Indicates that the (oop goops describe) module has been loaded, which provides a procedure for describing the contents of GOOPS instances.

readline
Indicates that Guile has loaded in Readline support, for command line editing (see section 40. Readline Support).

record
Indicates support for record definition using make-record-type and friends (see section 22.4 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 feature?.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

  webmaster     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003