CHICKEN(1)

πŸ’… CHICKEN(1) β€” A Scheme-to-C translator

okay bestie, welcome to the General Commands Manual page for chicken β€” it's giving compiler-core main-character energy ✨

🌸 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.
  • -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.
  • -r7rs-syntax β€” Disables the CHICKEN extensions to R7RS 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. Big yikes, bestie β€” this one is exactly as sharp as it sounds πŸ’€
  • -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.
  • -lfa2 β€” Perform additional lightweight flow-analysis pass.
  • -unroll-limit LIMIT β€” Specifies inlining limit for self-recursive calls.
  • -merge-reusable-closures β€” Enables closure reuse.
  • -merge-shareable-closures β€” Enables closure sharing.

πŸ’œ 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 πŸ¦‹

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.


✨ cute sign-off: this page is from Debian, dated Apr 26, 2017 β€” periodt, bestie πŸ’…πŸŽ€

πŸ“¦ where this page comes from