chicken - A Scheme-to-C translator


CHICKEN(1) General Commands Manual 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.

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

−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] GNU Apr 26, 2017 CHICKEN(1)


Updated 2024-01-29 - jenkler.se | uex.se