1CSC(1) BSD General Commands Manual CSC(1)
2
4 csc — driver program for the CHICKEN Scheme compiler
5
7 csc [OPTION ...] [FILENAME ...]
8
10 csc is a program that invokes the CHICKEN compiler and the host systems C
11 compiler to generate an executable from a Scheme source file or C files
12 generated by CHICKEN.
13
14 FILENAME is a Scheme source file name with optional extension or a
15 C/C++/Objective-C source, object or library file name with extension.
16 OPTION may be one of the following:
17
18 General options:
19
20 -h, -help
21 Display usage text and exit.
22
23 -v, -verbose
24 Show compiler notes and tool-invocations.
25
26 -vv Display information about translation progress.
27
28 -vvv Display information about all compilation stages.
29
30 -version
31 Display Scheme compiler version and exit.
32
33 -release
34 Display release number and exit.
35
36 File and pathname options:
37
38 -o FILENAME, -output-file FILENAME
39 Specifies target executable name.
40
41 -I PATHNAME, -include-path PATHNAME
42 Specifies alternative path for included files.
43
44 -to-stdout
45 Write compiler to stdout (implies -t).
46
47 -s, -shared, -dynamic
48 Generate dynamically loadable shared object file.
49
50 Language options:
51
52 -D SYMBOL, -feature SYMBOL
53 Register feature identifier.
54
55 -no-feature SYMBOL
56 Disable builtin feature identifier.
57
58 -c++ Compile via a C++ source file (.cpp).
59
60 -objc Compile via Objective-C source file (.m).
61
62 Syntax related options:
63
64 -i, -case-insensitive
65 Don't preserve case of read symbols.
66
67 -K, -keyword-style STYLE
68 Enable alternative keyword-syntax (prefix, suffix or none).
69
70 -no-parentheses-synonyms
71 Disables list delimiter synonyms.
72
73 -no-symbol-escape
74 Disables support for escaped symbols.
75
76 -r5rs-syntax
77 Disables the CHICKEN extensions to R5RS syntax.
78
79 -compile-syntax
80 Macros are made available at run-time.
81
82 -j MODULE, -emit-import-library MODULE
83 Write compile-time module information into separate file.
84
85 -J, -emit-all-import-libraries
86 Emit import-libraries for all defined modules.
87
88 -N, -no-module-registration
89 Do not generate module registration code.
90
91 -no-compiler-syntax
92 Disable expansion of compiler-macros.
93
94 -m NAME, -module NAME
95 Wrap compiled code in module of the given name.
96
97 Translation options:
98
99 -x, -explicit-use
100 Do not use units ‘library’ and ‘eval’ by default.
101
102 -P, -check-syntax
103 Stop compilation after macro-expansion.
104
105 -A, -analyze-only
106 Stop compilation after first analysis pass.
107
108 Debugging options:
109
110 -w, -no-warnings
111 Disable warnings.
112
113 -d0, -d1, -d2, -d3, -debug-level NUMBER
114 Set level of available debugging information.
115
116 -no-trace
117 Disable rudimentary debugging information.
118
119 -profile
120 Executable emits profiling information.
121
122 -accumulate-profile
123 Executable emits profiling information in append mode.
124
125 -profile-name FILENAME
126 Name of the generated profile information file.
127
128 -types FILENAME
129 Load additional type database.
130
131 Optimization options:
132
133 -O, -O0, -O1, -O2, -O3, -O4, -O5, -optimize-level NUMBER
134 Enable certain sets of optimization options.
135
136 -optimize-leaf-routines
137 Enable leaf routine optimization.
138
139 -no-usual-integrations
140 Standard procedures may be redefined.
141
142 -u, -unsafe
143 Disable safety checks.
144
145 -local Assume globals are only modified in current file.
146
147 -b, -block
148 Enable block-compilation.
149
150 -disable-interrupts
151 Disable interrupts in compiled code.
152
153 -f, -fixnum-arithmetic
154 Assume all numbers are fixnums.
155
156 -disable-stack-overflow-checks
157 Disables detection of stack-overflows.
158
159 -inline
160 Enable inlining.
161
162 -inline-limit LIMIT
163 Set inlining threshold.
164
165 -inline-global
166 Enable cross-module inlining.
167
168 -specialize
169 Perform type-based specialization of primitive calls.
170
171 -oi FILENAME, -emit-inline-file FILENAME
172 Generate file with globally inlinable procedures (implies -inline
173 -local).
174
175 -consult-inline-file FILENAME
176 Explicitly load inline file.
177
178 -ot FILENAME, -emit-types-file FILENAME
179 Write type-declaration information into file.
180
181 -no-argc-checks
182 Disable argument count checks.
183
184 -no-bound-checks
185 Disable bound variable checks.
186
187 -no-procedure-checks
188 Disable procedure call checks.
189
190 -no-procedure-checks-for-usual-bindings
191 Disable procedure call checks only for usual bindings.
192
193 -no-procedure-checks-for-toplevel-bindings
194 Disable procedure call checks for toplevel bindings.
195
196 -strict-types
197 Assume variable do not change their type.
198
199 -clustering
200 Combine groups of local procedures into dispatch loop.
201
202 -lfa2 Perform additional lightweight flow-analysis pass.
203
204 Configuration options:
205
206 -unit NAME
207 Compile file as a library unit.
208
209 -uses NAME
210 Declare library unit as used.
211
212 -heap-size NUMBER
213 Specifies heap-size of compiled executable.
214
215 -nursery NUMBER -stack-size NUMBER
216 Specifies nursery size of compiled executable.
217
218 -X FILENAME, -extend FILENAME
219 Load file before compilation commences.
220
221 -prelude EXPRESSION
222 Add expression to beginning of source file.
223
224 -postlude EXPRESSION
225 Add expression to end of source file.
226
227 -prologue FILENAME
228 Include file before main source file.
229
230 -epilogue FILENAME
231 Include file after main source file.
232
233 -e, -embedded
234 Compile as embedded (don't generate ‘main()’).
235
236 -gui Compile as GUI application.
237
238 -link NAME
239 Link extension with compiled executable (implies ‘-uses’).
240
241 -R NAME, -require-extension NAME
242 Require extension and import in compiled code.
243
244 -dll, -library
245 Compile multiple units into a dynamic library.
246
247 -libdir DIRECTORY
248 Override location of runtime library directory.
249
250 Options to other passes:
251
252 -C OPTION
253 Pass option to C compiler.
254
255 -L OPTION
256 Pass option to linker.
257
258 -I<DIR>
259 Pass “-I<DIR>” to C compiler (add include path).
260
261 -L<DIR>
262 Pass “-L<DIR>” to linker (add library path).
263
264 -k Keep intermediate files.
265
266 -c Stop after compilation to object files.
267
268 -t Stop after translation to C.
269
270 -cc COMPILER
271 Select a C compiler other than the default.
272
273 -cxx COMPILER
274 Select a C++ compiler other than the default.
275
276 -ld COMPILER
277 Select a linker other than the default.
278
279 -static-libs
280 Link with static CHICKEN libraries and extensions.
281
282 -F<DIR>
283 Pass “-F<DIR>” to C compiler (add framework header path on Mac OS
284 X).
285
286 -framework NAME
287 Passed to linker on Mac OS X.
288
289 -rpath PATHNAME
290 Add directory to runtime library search path.
291
292 -Wl,...
293 Pass linker options.
294
295 -strip Strip resulting binary.
296
297 Inquiry options:
298
299 -home Show home-directory (where support files go).
300
301 -cflags
302 Show required C-compiler flags and exit.
303
304 -ldflags
305 Show required linker flags and exit.
306
307 -libs Show required libraries and exit.
308
309 -cc-name
310 Show name of default C compiler used.
311
312 -cxx-name
313 Show name of default C++ compiler used.
314
315 -ld-name
316 Show name of default linker used.
317
318 -dry-run
319 Just show commands executed, don't run them (implies ‘-v’).
320
321 Obscure options:
322
323 -debug MODES
324 Display debugging output for the given modes.
325
326 -compiler PATHNAME
327 Use a compiler other than the default ‘chicken’.
328
329 -raw Do not generate implicit init- and exit code.
330
331 -emit-external-prototypes-first
332 Emit prototypes for callbacks before foreign declarations.
333
334 -ignore-repository
335 Do not refer to repository for extensions.
336
337 -keep-shadowed-macros
338 Do not remove shadowed macros.
339
340 -host Compile for host when configured for cross-compiling.
341
342 -private-repository
343 Load extensions from executable path.
344
345 -deployed
346 Link support file to be used from a deployed executable (sets
347 ‘rpath’ accordingly, if supported on this platform.)
348
349 -no-elevation
350 Embed manifest on Windows to supress elevation warnings for pro‐
351 grams named ‘install’ or ‘setup’.
352
353 Options can be collapsed if unambiguous, so “-vkfO” is the same as “-v -k
354 -fixnum-arithmetic -optimize”.
355
357 The following environment variables change the behaviour of csc:
358
359 CSC_OPTIONS Can hold default options that should be passed to every
360 invocation of csc.
361
363 The csc utility exits 0 on success, and >0 if an error occurs.
364
366 chicken(1)
367
368 More information can be found in the CHICKEN User's Manual:
369 http://wiki.call-cc.org/manual/index.
370
372 The CHICKEN Team
373
375 Submit bug reports by e-mail to chicken-janitors@nongnu.org
376
377BSD Apr 26, 2017 BSD