1CSC(1)                    BSD General Commands Manual                   CSC(1)
2

NAME

4     csc — driver program for the CHICKEN Scheme compiler
5

SYNOPSIS

7     csc [OPTION ...] [FILENAME ...]
8

DESCRIPTION

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

ENVIRONMENT

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

EXIT STATUS

363     The csc utility exits 0 on success, and >0 if an error occurs.
364

SEE ALSO

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

AUTHORS

372     The CHICKEN Team
373

BUGS

375     Submit bug reports by e-mail to chicken-janitors@nongnu.org
376
377BSD                              Apr 26, 2017                              BSD
Impressum