chicken(1)

CHICKEN(1) General Commands Manual CHICKEN(1)

NAME

chickenA 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.
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

April 26, 2017 Linux 6.12.85-6.12-alt1