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

NAME

4     chicken — A Scheme-to-C translator
5

SYNOPSIS

7     chicken [OPTION ...] [FILENAME ...]
8

DESCRIPTION

10     chicken is a compiler and interpreter for the programming language Scheme
11     supporting most of the features as described in the Revised^5 Report on
12     the Algorithmic Language Scheme.  The chicken program is the basic
13     Scheme-to-C translator used in this system.  For a more convenient inter‐
14     face, see csc(1).
15
16     FILENAME should be a complete source file name with extension, or “-” for
17     standard input.  OPTION may be one of the following:
18
19     General options:
20
21     -help   Display usage and exit.
22
23     -version
24             Display compiler version and exit.
25
26     -release
27             Print release number and exit.
28
29     -verbose
30             Display information on compilation progress.
31
32     File and pathname options:
33
34     -output-file FILENAME
35             Specifies output-filename, default is “out.c”.
36
37     -include-path PATHNAME
38             Specifies alternative path for included files.
39
40     -to-stdout
41             Write compiled file to stdout instead of file.
42
43     Language options:
44
45     -feature SYMBOL
46             Register feature identifier.
47
48     -no-feature SYMBOL
49             Disable built-in feature identifier.
50
51     Syntax related options:
52
53     -case-insensitive
54             Don't preserve case of read symbols.
55
56     -keyword-style STYLE
57             Allow alternative keyword syntax (prefix, suffix or none).
58
59     -no-parentheses-synonyms
60             Disables list delimiter synonyms.
61
62     -no-symbol-escape
63             Disables support for escaped symbols.
64
65     -r5rs-syntax
66             Disables the CHICKEN extensions to R5RS syntax.
67
68     -compile-syntax
69             Macros are made available at run-time.
70
71     -emit-import-library MODULE
72             Write compile-time module information into separate file.
73
74     -emit-all-import-libraries
75             Emit import-libraries for all defined modules.
76
77     -no-module-registration
78             Do not generate module registration code.
79
80     -no-compiler-syntax
81             Disable expansion of compiler-macros.
82
83     -module NAME
84             Wrap compiled code in module of the given name.
85
86     Translation options:
87
88     -explicit-use
89             Do not use units ‘library’ and ‘eval’ by default.
90
91     -static
92             Link extensions statically.
93
94     -check-syntax
95             Stop compilation after macro-expansion.
96
97     -analyze-only
98             Stop compilation after first analysis pass.
99
100     Debugging options:
101
102     -no-warnings
103             Disable warnings.
104
105     -debug-level NUMBER
106             Set level of available debugging information.
107
108     -no-trace
109             Disable tracing information.
110
111     -profile
112             Executable emits profiling information.
113
114     -profile-name FILENAME
115             Name of the generated profile information file.
116
117     -accumulate-profile
118             Executable emits profiling information in append mode.
119
120     -no-lambda-info
121             Omit additional procedure-information.
122
123     -types FILENAME
124             Load additional type database.
125
126     -emit-types-file FILENAME
127             Write type-declaration information into file.
128
129     Optimization options:
130
131     -optimize-level NUMBER
132             Enable certain sets of optimization options.
133
134     -optimize-leaf-routines
135             Enable leaf routine optimization.
136
137     -no-usual-integrations
138             Standard procedures may be redefined.
139
140     -unsafe
141             Disable all safety checks.
142
143     -local  Assume globals are only modified in current file.
144
145     -block  Enable block-compilation.
146
147     -disable-interrupts
148             Disable interrupts in compiled code.
149
150     -fixnum-arithmetic
151             Assume all numbers are fixnums.
152
153     -disable-stack-overflow-checks
154             Disables detection of stack-overflows.
155
156     -inline
157             Enable inlining.
158
159     -inline-limit LIMIT
160             Set inlining threshold.
161
162     -inline-global
163             Enable cross-module inlining.
164
165     -specialize
166             Perform type-based specialization of primitive calls.
167
168     -emit-inline-file FILENAME
169             Generate file with globally inlinable procedures (implies -inline
170             -local).
171
172     -consult-inline-file FILENAME
173             Explicitly load inline file.
174
175     -no-argc-checks
176             Disable argument count checks.
177
178     -no-bound-checks
179             Disable bound variable checks.
180
181     -no-procedure-checks
182             Disable procedure call checks.
183
184     -no-procedure-checks-for-usual-bindings
185             Disable procedure call checks only for usual bindings.
186
187     -no-procedure-checks-for-toplevel-bindings
188             Disable procedure call checks for toplevel bindings.
189
190     -strict-types
191             Assume variable do not change their type.
192
193     -clustering
194             Combine groups of local procedures into dispatch loop.
195
196     -lfa2   Perform additional lightweight flow-analysis pass.
197
198     Configuration options:
199
200     -unit NAME
201             Compile file as a library unit.
202
203     -uses NAME
204             Declare library unit as used.
205
206     -heap-size NUMBER
207             Specifies heap-size of compiled executable.
208
209     -nursery NUMBER -stack-size NUMBER
210             Specifies nursery size of compiled executable.
211
212     -extend FILENAME
213             Load file before compilation commences.
214
215     -prelude EXPRESSION
216             Add expression to front of source file.
217
218     -postlude EXPRESSION
219             Add expression to end of source file.
220
221     -prologue FILENAME
222             Include file before main source file.
223
224     -epilogue FILENAME
225             Include file after main source file.
226
227     -dynamic
228             Compile as dynamically loadable code.
229
230     -require-extension NAME
231             Require and import extension NAME.
232
233     -emit-link-file FILENAME
234             Write a list of statically linked extensions to FILENAME, used
235             for identifying the static objects that need to be linked to an
236             executable.
237
238     Obscure options:
239
240     -debug MODES
241             Display debugging output for the given modes.
242
243     -raw    Do not generate implicit init- and exit code.
244
245     -emit-external-prototypes-first
246             Emit prototypes for callbacks before foreign declarations.
247
248     -ignore-repository
249             Do not refer to repository for extensions.
250
251     -setup-mode
252             Prefer the current directory when locating extensions.
253

ENVIRONMENT

255     The following environment variables change the behaviour of chicken:
256
257     CHICKEN_INCLUDE_PATH  Contains one or more pathnames where the compiler
258                           should additionally look for include-files, sepa‐
259                           rated by ‘;’ characters.
260
261     CHICKEN_OPTIONS       Holds a string of default compiler options that
262                           should apply to every invocation of chicken.
263

EXIT STATUS

265     The chicken utility exits 0 on success, and >0 if an error occurs.
266

SEE ALSO

268     chicken(1), chicken-install(1), chicken-uninstall(1)
269
270     More information can be found in the CHICKEN User's Manual:
271           http://wiki.call-cc.org/manual/index.
272

AUTHORS

274     The CHICKEN Team
275

BUGS

277     Submit bug reports by e-mail to chicken-janitors@nongnu.org
278
279BSD                              Apr 26, 2017                              BSD
Impressum