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 chicken-janitors@nongnu.org Linux 6.10.10-arch1-1 April 26, 2017 Linux 6.10.10-arch1-1