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.
AUTHORS
The CHICKEN Team
BUGS
Submit bug reports by e-mail to chicken-janitors@nongnu.org
April 26, 2017 | Linux 6.10.10-arch1-1 |