aboutsummaryrefslogtreecommitdiffstats
path: root/features.txi
blob: c7e94fb8c1b99a5c3fc0e70b67608a8454dc03d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
@item array
@cindex array
Alias for ARRAYS

@item array-for-each
@cindex array-for-each
array-map! and array-for-each (arrays must also be featured).

@item arrays
@cindex arrays
Use if you want arrays, uniform-arrays and uniform-vectors.

@item bignums
@cindex bignums
Large precision integers.

@item byte
@cindex byte
Treating strings as byte-vectors.

@item careful-interrupt-masking
@cindex careful-interrupt-masking
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.

@item cautious
@cindex 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}.

@item cheap-continuations
@cindex 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.

@item compiled-closure
@cindex compiled-closure
Use if you want to use compiled closures.

@item curses
@cindex curses
For the @dfn{curses} screen management package.

@item debug
@cindex debug
Turns on the features @samp{cautious},
@samp{careful-interrupt-masking}, and @samp{stack-limit}; uses
@code{-g} flags for debugging SCM source code.

@item differ
@cindex differ
Sequence comparison

@item dump
@cindex dump
Convert a running scheme program into an executable file.

@item dynamic-linking
@cindex dynamic-linking
Be able to load compiled files while running.

@item edit-line
@cindex edit-line
interface to the editline or GNU readline library.

@item engineering-notation
@cindex engineering-notation
Use if you want floats to display in engineering notation (exponents
always multiples of 3) instead of scientific notation.

@item generalized-c-arguments
@cindex generalized-c-arguments
@code{make_gsubr} for arbitrary (< 11) arguments to C functions.

@item i/o-extensions
@cindex i/o-extensions
Commonly available I/O extensions: @dfn{exec}, line I/O, file
positioning, file delete and rename, and directory functions.

@item inexact
@cindex inexact
Use if you want floating point numbers.

@item lit
@cindex lit
Lightweight -- no features

@item macro
@cindex macro
C level support for hygienic and referentially transparent macros
(syntax-rules macros).

@item mysql
@cindex mysql
Client connections to the mysql databases.

@item no-heap-shrink
@cindex no-heap-shrink
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.

@item none
@cindex none
No features

@item posix
@cindex posix
Posix functions available on all @dfn{Unix-like} systems.  fork and
process functions, user and group IDs, file permissions, and
@dfn{link}.

@item reckless
@cindex reckless
If your scheme code runs without any errors you can disable almost
all error checking by compiling all files with @samp{reckless}.

@item record
@cindex record
The Record package provides a facility for user to define their own
record data types.  See SLIB for documentation.

@item regex
@cindex regex
String regular expression matching.

@item rev2-procedures
@cindex rev2-procedures
These procedures were specified in the @cite{Revised^2 Report on Scheme}
but not in @cite{R4RS}.

@item sicp
@cindex 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

@item single-precision-only
@cindex single-precision-only
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.

@item socket
@cindex socket
BSD @dfn{socket} interface.  Socket addr functions require
inexacts or bignums for 32-bit precision.

@item stack-limit
@cindex stack-limit
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.

@item tick-interrupts
@cindex tick-interrupts
Use if you want the ticks and ticks-interrupt functions.

@item turtlegr
@cindex turtlegr
@dfn{Turtle} graphics calls for both Borland-C and X11 from
sjm@@ee.tut.fi.

@item unix
@cindex unix
Those unix features which have not made it into the Posix specs:
nice, acct, lstat, readlink, symlink, mknod and sync.

@item wb
@cindex wb
WB database with relational wrapper.

@item windows
@cindex windows
Microsoft Windows executable.

@item x
@cindex x
Alias for Xlib feature.

@item xlib
@cindex xlib
Interface to Xlib graphics routines.