chicken is a compiler and interpreter for the programming language Scheme supporting most of the features
as described in the Revised^5 Report on the Algorithmic Language Scheme. The chicken program is the
basic Scheme-to-C translator used in this system. For a more convenient interface, see csc(1).
FILENAME should be a complete source file name with extension, or “-” for standard input. OPTION may be
one of the following:
General options:
-help Display usage and exit.
-version
Display compiler version and exit.
-release
Print release number and exit.
-verbose
Display information on compilation progress.
File and pathname options:
-output-fileFILENAME
Specifies output-filename, default is “out.c”.
-include-pathPATHNAME
Specifies alternative path for included files.
-to-stdout
Write compiled file to stdout instead of file.
Language options:
-featureSYMBOL
Register feature identifier.
-no-featureSYMBOL
Disable built-in feature identifier.
Syntax related options:
-case-insensitive
Don't preserve case of read symbols.
-keyword-styleSTYLE
Allow alternative keyword syntax (prefix, suffix or none).
-no-parentheses-synonyms
Disables list delimiter synonyms.
-no-symbol-escape
Disables support for escaped symbols.
-r5rs-syntax
Disables the CHICKEN extensions to R5RS syntax.
-compile-syntax
Macros are made available at run-time.
-emit-import-libraryMODULE
Write compile-time module information into separate file.
-emit-all-import-libraries
Emit import-libraries for all defined modules.
-no-compiler-syntax
Disable expansion of compiler-macros.
-moduleNAME
Wrap compiled code in module of the given name.
-module-registration
Always generate module registration code, even when import libraries are emitted.
-no-module-registration
Do not generate module registration code. Overrides -module-registration.
Translation options:
-explicit-use
Do not use units ‘library’ and ‘eval’ by default.
-static
Link extensions statically.
-check-syntax
Stop compilation after macro-expansion.
-analyze-only
Stop compilation after first analysis pass.
Debugging options:
-no-warnings
Disable warnings.
-debug-levelNUMBER
Set level of available debugging information.
-no-trace
Disable tracing information.
-profile
Executable emits profiling information.
-profile-nameFILENAME
Name of the generated profile information file.
-accumulate-profile
Executable emits profiling information in append mode.
-no-lambda-info
Omit additional procedure-information.
-typesFILENAME
Load additional type database.
-emit-types-fileFILENAME
Write type-declaration information into file.
Optimization options:
-optimize-levelNUMBER
Enable certain sets of optimization options.
-optimize-leaf-routines
Enable leaf routine optimization.
-no-usual-integrations
Standard procedures may be redefined.
-unsafe
Disable all safety checks.
-local Assume globals are only modified in current file.
-block Enable block-compilation.
-disable-interrupts
Disable interrupts in compiled code.
-fixnum-arithmetic
Assume all numbers are fixnums.
-disable-stack-overflow-checks
Disables detection of stack-overflows.
-inline
Enable inlining.
-inline-limitLIMIT
Set inlining threshold.
-inline-global
Enable cross-module inlining.
-specialize
Perform type-based specialization of primitive calls.
-emit-inline-fileFILENAME
Generate file with globally inlinable procedures (implies -inline-local).
-consult-inline-fileFILENAME
Explicitly load inline file.
-no-argc-checks
Disable argument count checks.
-no-bound-checks
Disable bound variable checks.
-no-procedure-checks
Disable procedure call checks.
-no-procedure-checks-for-usual-bindings
Disable procedure call checks only for usual bindings.
-no-procedure-checks-for-toplevel-bindings
Disable procedure call checks for toplevel bindings.
-strict-types
Assume variable do not change their type.
-clustering
Combine groups of local procedures into dispatch loop.
-lfa2 Perform additional lightweight flow-analysis pass.
-unroll-limitLIMIT
Specifies inlining limit for self-recursive calls.
Configuration options:
-unitNAME
Compile file as a library unit.
-usesNAME
Declare library unit as used.
-heap-sizeNUMBER
Specifies heap-size of compiled executable.
-nurseryNUMBER-stack-sizeNUMBER
Specifies nursery size of compiled executable.
-extendFILENAME
Load file before compilation commences.
-preludeEXPRESSION
Add expression to front of source file.
-postludeEXPRESSION
Add expression to end of source file.
-prologueFILENAME
Include file before main source file.
-epilogueFILENAME
Include file after main source file.
-dynamic
Compile as dynamically loadable code.
-require-extensionNAME
Require and import extension NAME.
-emit-link-fileFILENAME
Write a list of statically linked extensions to FILENAME, used for identifying the static objects
that need to be linked to an executable.
Obscure options:
-debugMODES
Display debugging output for the given modes.
-raw Do not generate implicit init- and exit code.
-emit-external-prototypes-first
Emit prototypes for callbacks before foreign declarations.
-regenerate-import-libraries
Always emit import libraries, even when their contents haven't changed. The default behaviour is
to preserve existing import libraries.
-ignore-repository
Do not refer to repository for extensions.
-setup-mode
Prefer the current directory when locating extensions.