CHICKEN(1)

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.

-merge-shareable-closures
    Enables closure sharing.

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

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 chicken-janitors@nongnu.org