chicken - Man Page
A Scheme-to-C translator
Synopsis
chicken | [OPTION ...] [FILENAME ...] |
Description
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-file FILENAME
Specifies output-filename, default is “out.c”.
- -include-path PATHNAME
Specifies alternative path for included files.
- -to-stdout
Write compiled file to stdout instead of file.
Language options:
- -feature SYMBOL
Register feature identifier.
- -no-feature SYMBOL
Disable built-in feature identifier.
Syntax related options:
- -case-insensitive
Don't preserve case of read symbols.
- -keyword-style STYLE
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-library MODULE
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.
- -module NAME
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-level NUMBER
Set level of available debugging information.
- -no-trace
Disable tracing information.
- -profile
Executable emits profiling information.
- -profile-name FILENAME
Name of the generated profile information file.
- -accumulate-profile
Executable emits profiling information in append mode.
- -no-lambda-info
Omit additional procedure-information.
- -types FILENAME
Load additional type database.
- -emit-types-file FILENAME
Write type-declaration information into file.
Optimization options:
- -optimize-level NUMBER
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-limit LIMIT
Set inlining threshold.
- -inline-global
Enable cross-module inlining.
- -specialize
Perform type-based specialization of primitive calls.
- -emit-inline-file FILENAME
Generate file with globally inlinable procedures (implies -inline -local).
- -consult-inline-file FILENAME
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-limit LIMIT
Specifies inlining limit for self-recursive calls.
Configuration options:
- -unit NAME
Compile file as a library unit.
- -uses NAME
Declare library unit as used.
- -heap-size NUMBER
Specifies heap-size of compiled executable.
- -nursery NUMBER -stack-size NUMBER
Specifies nursery size of compiled executable.
- -extend FILENAME
Load file before compilation commences.
- -prelude EXPRESSION
Add expression to front of source file.
- -postlude EXPRESSION
Add expression to end of source file.
- -prologue FILENAME
Include file before main source file.
- -epilogue FILENAME
Include file after main source file.
- -dynamic
Compile as dynamically loadable code.
- -require-extension NAME
Require and import extension NAME.
- -emit-link-file FILENAME
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:
- -debug MODES
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.
Environment
The following environment variables change the behaviour of chicken:
- CHICKEN_INCLUDE_PATH
Contains one or more pathnames where the compiler should additionally look for include-files, separated by ‘;’ characters.
- CHICKEN_OPTIONS
Holds a string of default compiler options that should apply to every invocation of chicken.
Exit Status
The chicken utility exits 0 on success, and >0 if an error occurs.
See Also
chicken(1), chicken-install(1), chicken-uninstall(1)
More information can be found in the CHICKEN User's Manual.
Authors
The CHICKEN Team
Bugs
Submit bug reports by e-mail to chicken-janitors@nongnu.org
Referenced By
chicken-do(1), chicken-install(1), chicken-profile(1), chicken-status(1), chicken-uninstall(1), csc(1), csi(1), feathers(1).