chicken man page

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.

-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-module-registration

Do not generate module registration code.

-no-compiler-syntax

Disable expansion of compiler-macros.

-module NAME

Wrap compiled code in module of the given name.

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.

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.

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

April 26, 2017