NAME
chicken – 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.
- -r7rs-syntax
-
Disables the CHICKEN extensions to R7RS 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.
- -lfa2
-
Perform additional lightweight flow-analysis pass.
- -unroll-limit LIMIT
-
Specifies inlining limit for self-recursive calls.
- -merge-reusable-closures
-
Enables closure reuse.
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: http://wiki.call-cc.org/manual/index.
AUTHORS
The CHICKEN Team
BUGS
Submit bug reports by e-mail to [email protected]