features
name |
spec |
documentation |
symbol |
expression |
string |
|
|
|
symbol |
expression |
string |
cheap-continuations |
((define "CHEAP_CONTINUATIONS")) |
If you only need straight stack continuations, executables compile with
this feature will run faster and use less storage than not having it.
Machines with unusual stacks @emph{need} this. Also, if you incorporate
new C code into scm which uses VMS system services or library routines
(which need to unwind the stack in an ordrly manner) you may need to
use this feature. |
no-heap-shrink |
((define "DONT_GC_FREE_SEGMENTS")) |
Use if you want segments of unused heap to not be freed up after
garbage collection. This may increase time in GC for *very* large
working sets. |
dump |
((define "CAN_DUMP")
(c-lib dump)
(c-lib nostart))
|
Convert a running scheme program into an executable file. |
dynamic-linking |
((c-file "dynl.c") (c-lib dlll)) |
Be able to load compiled files while running. |
windows |
((c-lib windows)) |
Microsoft Windows executable. |
unix |
((c-file "unix.c") (init "init_unix")) |
Those unix features which have not made it into the Posix specs:
nice, acct, lstat, readlink, symlink, mknod and sync. |
posix |
((c-file "posix.c") (init "init_posix")) |
Posix functions available on all @dfn{Unix-like} systems. fork and
process functions, user and group IDs, file permissions, and
@dfn{link}. |
socket |
((c-lib socket)
(c-file "socket.c")
(init "init_socket"))
|
BSD @dfn{socket} interface. |
regex |
((c-file "rgx.c")
(c-lib regex)
(init "init_rgx"))
|
String regular expression matching. |
mysql |
((c-file "database.c")
(c-lib mysql)
(init "init_database"))
|
Client connections to the mysql databases. |
edit-line |
((c-file "edline.c")
(c-lib termcap editline)
(compiled-init "init_edline"))
|
interface to the editline or GNU readline library. |
curses |
((c-file "crs.c")
(c-lib curses)
(init "init_crs"))
|
For the @dfn{curses} screen management package. |
x |
((features xlib)) |
Alias for Xlib feature. |
xlib |
((c-file "x.c")
(c-lib graphics)
(compiled-init "init_x")
(features arrays))
|
Interface to Xlib graphics routines. |
turtlegr |
((c-file "turtlegr.c")
(c-lib graphics)
(features inexact)
(init "init_turtlegr"))
|
@dfn{Turtle} graphics calls for both Borland-C and X11 from
sjm@@ee.tut.fi. |
i/o-extensions |
((c-file "ioext.c") (init "init_ioext")) |
Commonly available I/O extensions: @dfn{exec}, line I/O, file
positioning, file delete and rename, and directory functions. |
tick-interrupts |
((define "TICKS")) |
Use if you want the ticks and ticks-interrupt functions. |
generalized-c-arguments |
((c-file "gsubr.c") (init "init_gsubr")) |
@code{make_gsubr} for arbitrary (< 11) arguments to C functions. |
compiled-closure |
((define "CCLO")) |
Use if you want to use compiled closures. |
record |
((define "CCLO")
(c-file "record.c")
(init "init_record"))
|
The Record package provides a facility for user to define their own
record data types. See SLIB for documentation. |
rev2-procedures |
((c-file "sc2.c") (init "init_sc2")) |
These procedures were specified in the @cite{Revised^2 Report on Scheme}
but not in @cite{R4RS}. |
sicp |
((define "SICP")) |
Use if you want to run code from:
@cindex SICP
Harold Abelson and Gerald Jay Sussman with Julie Sussman.
@cite{Structure and Interpretation of Computer Programs.}
The MIT Press, Cambridge, Massachusetts, USA, 1985.
Differences from R5RS are:
@itemize @bullet
@item
(eq? '() '#f)
@item
(define a 25) returns the symbol a.
@item
(set! a 36) returns 36.
@end itemize |
single-precision-only |
((define "SINGLESONLY")) |
Use if you want all inexact real numbers to be single precision. This
only has an effect if SINGLES is also defined (which is the default).
This does not affect complex numbers. |
engineering-notation |
((define "ENGNOT")) |
Use if you want floats to display in engineering notation (exponents
always multiples of 3) instead of scientific notation. |
inexact |
((define "FLOATS") (c-lib m)) |
Use if you want floating point numbers. |
array-for-each |
((c-file "ramap.c") (init "init_ramap")) |
array-map! and array-for-each (arrays must also be featured). |
array |
((define "ARRAYS")) |
Alias for ARRAYS |
arrays |
((define "ARRAYS")) |
Use if you want arrays, uniform-arrays and uniform-vectors. |
bignums |
((define "BIGNUMS")) |
Large precision integers. |
macro |
((define "MACRO")
(features rev2-procedures record))
|
C level support for hygienic and referentially transparent macros
(syntax-rules macros). |
stack-limit |
((define ("STACK_LIMIT" "(HEAP_SEG_SIZE/2)"))) |
Use to enable checking for stack overflow. Define value of the C
preprocessor variable @var{STACK_LIMIT} to be the size to which SCM
should allow the stack to grow. STACK_LIMIT should be less than the
maximum size the hardware can support, as not every routine checks the
stack. |
reckless |
((define "RECKLESS")) |
If your scheme code runs without any errors you can disable almost
all error checking by compiling all files with @samp{reckless}. |
debug |
((c-lib debug)
(features
cautious
careful-interrupt-masking
stack-limit))
|
Turns on the features @samp{cautious},
@samp{careful-interrupt-masking}, and @samp{stack-limit}; uses
@code{-g} flags for debugging SCM source code. |
careful-interrupt-masking |
((define "CAREFUL_INTS")) |
Define this for extra checking of interrupt masking and some simple
checks for proper use of malloc and free. This is for debugging C
code in @file{sys.c}, @file{eval.c}, @file{repl.c} and makes the
interpreter several times slower than usual. |
cautious |
((define "CAUTIOUS")) |
Normally, the number of arguments arguments to interpreted closures
(from LAMBDA) are checked if the function part of a form is not a
symbol or only the first time the form is executed if the function
part is a symbol. defining @samp{reckless} disables any checking.
If you want to have SCM always check the number of arguments to
interpreted closures define feature @samp{cautious}. |
lit |
|
Lightweight -- no features |
none |
|
No features |