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