DOKK / manpages / debian 12 / chicken-bin / chicken.1.en
CHICKEN(1) General Commands Manual CHICKEN(1)

chickenA Scheme-to-C translator

chicken [OPTION ...] [FILENAME ...]

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:

Display usage and exit.
Display compiler version and exit.
Print release number and exit.
Display information on compilation progress.

File and pathname options:

FILENAME
Specifies output-filename, default is “out.c”.
PATHNAME
Specifies alternative path for included files.
Write compiled file to stdout instead of file.

Language options:

SYMBOL
Register feature identifier.
SYMBOL
Disable built-in feature identifier.

Syntax related options:

Don't preserve case of read symbols.
STYLE
Allow alternative keyword syntax (prefix, suffix or none).
Disables list delimiter synonyms.
Disables support for escaped symbols.
Disables the CHICKEN extensions to R5RS syntax.
Macros are made available at run-time.
MODULE
Write compile-time module information into separate file.
Emit import-libraries for all defined modules.
Disable expansion of compiler-macros.
NAME
Wrap compiled code in module of the given name.
Always generate module registration code, even when import libraries are emitted.
Do not generate module registration code. Overrides -module-registration.

Translation options:

Do not use units ‘library’ and ‘eval’ by default.
Link extensions statically.
Stop compilation after macro-expansion.
Stop compilation after first analysis pass.

Debugging options:

Disable warnings.
NUMBER
Set level of available debugging information.
Disable tracing information.
Executable emits profiling information.
FILENAME
Name of the generated profile information file.
Executable emits profiling information in append mode.
Omit additional procedure-information.
FILENAME
Load additional type database.
FILENAME
Write type-declaration information into file.

Optimization options:

NUMBER
Enable certain sets of optimization options.
Enable leaf routine optimization.
Standard procedures may be redefined.
Disable all safety checks.
Assume globals are only modified in current file.
Enable block-compilation.
Disable interrupts in compiled code.
Assume all numbers are fixnums.
Disables detection of stack-overflows.
Enable inlining.
LIMIT
Set inlining threshold.
Enable cross-module inlining.
Perform type-based specialization of primitive calls.
FILENAME
Generate file with globally inlinable procedures (implies -inline -local).
FILENAME
Explicitly load inline file.
Disable argument count checks.
Disable bound variable checks.
Disable procedure call checks.
Disable procedure call checks only for usual bindings.
Disable procedure call checks for toplevel bindings.
Assume variable do not change their type.
Combine groups of local procedures into dispatch loop.
Perform additional lightweight flow-analysis pass.
LIMIT
Specifies inlining limit for self-recursive calls.

Configuration options:

NAME
Compile file as a library unit.
NAME
Declare library unit as used.
NUMBER
Specifies heap-size of compiled executable.
NUMBER -stack-size NUMBER
Specifies nursery size of compiled executable.
FILENAME
Load file before compilation commences.
EXPRESSION
Add expression to front of source file.
EXPRESSION
Add expression to end of source file.
FILENAME
Include file before main source file.
FILENAME
Include file after main source file.
Compile as dynamically loadable code.
NAME
Require and import extension NAME.
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:

MODES
Display debugging output for the given modes.
Do not generate implicit init- and exit code.
Emit prototypes for callbacks before foreign declarations.
Always emit import libraries, even when their contents haven't changed. The default behaviour is to preserve existing import libraries.
Do not refer to repository for extensions.
Prefer the current directory when locating extensions.

The following environment variables change the behaviour of chicken:

Contains one or more pathnames where the compiler should additionally look for include-files, separated by ‘;’ characters.
Holds a string of default compiler options that should apply to every invocation of chicken.

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

chicken(1), chicken-install(1), chicken-uninstall(1)

More information can be found in the CHICKEN User's Manual.

The CHICKEN Team

Submit bug reports by e-mail to chicken-janitors@nongnu.org

April 26, 2017 Debian