~ chicken-core (chicken-5) /chicken.mdoc
Trap1.\" Copyright (c) 2007-2022, The CHICKEN Team2.\" All rights reserved.3.\"4.\" Redistribution and use in source and binary forms, with or without5.\" modification, are permitted provided that the following conditions6.\" are met:7.\" 1. Redistributions of source code must retain the above copyright8.\" notice, this list of conditions and the following disclaimer.9.\" 2. Redistributions in binary form must reproduce the above copyright10.\" notice, this list of conditions and the following disclaimer in the11.\" documentation and/or other materials provided with the distribution.12.\" 3. The name of the authors may not be used to endorse or promote products13.\" derived from this software without specific prior written permission.14.\"15.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR16.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES17.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.18.\" IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,19.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT20.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,21.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY22.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT23.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF24.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.25.\"26.\"27.Dd Apr 26, 201728.Dt CHICKEN 129.Os30.Sh NAME31.Nm chicken32.Nd A Scheme-to-C translator33.Sh SYNOPSIS34.Nm35.Op Ar OPTION ...36.Op Ar FILENAME ...37.Sh DESCRIPTION38.Nm39is a compiler and interpreter for the programming language Scheme40supporting most of the features as described in the41Revised^5 Report on the Algorithmic Language Scheme.42The43.Nm44program is the basic Scheme-to-C translator used in this system.45For a more convenient interface, see46.Xr csc 1 .47.Pp48.Ar FILENAME49should be a complete source file name with extension, or50.Dq -51for standard input.52.Ar OPTION53may be one of the following:54.Pp55General options:56.Bl -tag -width Ds57.It Fl help58Display usage and exit.59.It Fl version60Display compiler version and exit.61.It Fl release62Print release number and exit.63.It Fl verbose64Display information on compilation progress.65.El66.Pp67File and pathname options:68.Bl -tag -width Ds69.It Fl output-file Ar FILENAME70Specifies output-filename, default is71.Dq out.c .72.It Fl include-path Ar PATHNAME73Specifies alternative path for included files.74.It Fl to-stdout75Write compiled file to stdout instead of file.76.El77.Pp78Language options:79.Bl -tag -width Ds80.It Fl feature Ar SYMBOL81Register feature identifier.82.It Fl no-feature Ar SYMBOL83Disable built-in feature identifier.84.El85.Pp86Syntax related options:87.Bl -tag -width Ds88.It Fl case-insensitive89Don't preserve case of read symbols.90.It Fl keyword-style Ar STYLE91Allow alternative keyword syntax92.Po prefix, suffix or none Pc .93.It Fl no-parentheses-synonyms94Disables list delimiter synonyms.95.It Fl no-symbol-escape96Disables support for escaped symbols.97.It Fl r5rs-syntax98Disables the CHICKEN extensions to R5RS syntax.99.It Fl compile-syntax100Macros are made available at run-time.101.It Fl emit-import-library Ar MODULE102Write compile-time module information into separate file.103.It Fl emit-all-import-libraries104Emit import-libraries for all defined modules.105.It Fl no-compiler-syntax106Disable expansion of compiler-macros.107.It Fl module Ar NAME108Wrap compiled code in module of the given name.109.It Fl module-registration110Always generate module registration code, even when import libraries are emitted.111.It Fl no-module-registration112Do not generate module registration code. Overrides113.Fl module-registration .114.El115.Pp116Translation options:117.Bl -tag -width Ds118.It Fl explicit-use119Do not use units120.Sq library121and122.Sq eval123by default.124.It Fl static125Link extensions statically.126.It Fl check-syntax127Stop compilation after macro-expansion.128.It Fl analyze-only129Stop compilation after first analysis pass.130.El131.Pp132Debugging options:133.Bl -tag -width Ds134.It Fl no-warnings135Disable warnings.136.It Fl debug-level Ar NUMBER137Set level of available debugging information.138.It Fl no-trace139Disable tracing information.140.It Fl profile141Executable emits profiling information.142.It Fl profile-name Ar FILENAME143Name of the generated profile information file.144.It Fl accumulate-profile145Executable emits profiling information in append mode.146.It Fl no-lambda-info147Omit additional procedure-information.148.It Fl types Ar FILENAME149Load additional type database.150.It Fl emit-types-file Ar FILENAME151Write type-declaration information into file.152.El153.Pp154Optimization options:155.Bl -tag -width Ds156.It Fl optimize-level Ar NUMBER157Enable certain sets of optimization options.158.It Fl optimize-leaf-routines159Enable leaf routine optimization.160.It Fl no-usual-integrations161Standard procedures may be redefined.162.It Fl unsafe163Disable all safety checks.164.It Fl local165Assume globals are only modified in current file.166.It Fl block167Enable block-compilation.168.It Fl disable-interrupts169Disable interrupts in compiled code.170.It Fl fixnum-arithmetic171Assume all numbers are fixnums.172.It Fl disable-stack-overflow-checks173Disables detection of stack-overflows.174.It Fl inline175Enable inlining.176.It Fl inline-limit Ar LIMIT177Set inlining threshold.178.It Fl inline-global179Enable cross-module inlining.180.It Fl specialize181Perform type-based specialization of primitive calls.182.It Fl emit-inline-file Ar FILENAME183Generate file with globally inlinable procedures184.Po implies Fl inline Fl local Pc .185.It Fl consult-inline-file Ar FILENAME186Explicitly load inline file.187.It Fl no-argc-checks188Disable argument count checks.189.It Fl no-bound-checks190Disable bound variable checks.191.It Fl no-procedure-checks192Disable procedure call checks.193.It Fl no-procedure-checks-for-usual-bindings194Disable procedure call checks only for usual bindings.195.It Fl no-procedure-checks-for-toplevel-bindings196Disable procedure call checks for toplevel bindings.197.It Fl strict-types198Assume variable do not change their type.199.It Fl clustering200Combine groups of local procedures into dispatch loop.201.It Fl lfa2202Perform additional lightweight flow-analysis pass.203.It Fl unroll-limit Ar LIMIT204Specifies inlining limit for self-recursive calls.205.El206.Pp207Configuration options:208.Bl -tag -width Ds209.It Fl unit Ar NAME210Compile file as a library unit.211.It Fl uses Ar NAME212Declare library unit as used.213.It Fl heap-size Ar NUMBER214Specifies heap-size of compiled executable.215.It Fl nursery Ar NUMBER Fl stack-size Ar NUMBER216Specifies nursery size of compiled executable.217.It Fl extend Ar FILENAME218Load file before compilation commences.219.It Fl prelude Ar EXPRESSION220Add expression to front of source file.221.It Fl postlude Ar EXPRESSION222Add expression to end of source file.223.It Fl prologue Ar FILENAME224Include file before main source file.225.It Fl epilogue Ar FILENAME226Include file after main source file.227.It Fl dynamic228Compile as dynamically loadable code.229.It Fl require-extension Ar NAME230Require and import extension231.Ar NAME .232.It Fl emit-link-file Ar FILENAME233Write a list of statically linked extensions to234.Ar FILENAME ,235used for identifying the static objects that need to be linked to an236executable.237.El238.Pp239Obscure options:240.Bl -tag -width Ds241.It Fl debug Ar MODES242Display debugging output for the given modes.243.It Fl raw244Do not generate implicit init- and exit code.245.It Fl emit-external-prototypes-first246Emit prototypes for callbacks before foreign declarations.247.It Fl regenerate-import-libraries248Always emit import libraries, even when their contents haven't changed.249The default behaviour is to preserve existing import libraries.250.It Fl ignore-repository251Do not refer to repository for extensions.252.It Fl setup-mode253Prefer the current directory when locating extensions.254.El255.Sh ENVIRONMENT256The following environment variables change the behaviour of257.Nm Ns :258.Bl -tag -width CHICKEN_INCLUDE_PATH259.It Ev CHICKEN_INCLUDE_PATH260Contains one or more pathnames where the compiler should additionally look for261include-files, separated by262.Sq \&;263characters.264.It Ev CHICKEN_OPTIONS265Holds a string of default compiler options that should apply to every invocation of266.Nm .267.El268.Sh EXIT STATUS269.Ex -std270.Sh SEE ALSO271.Xr chicken 1 ,272.Xr chicken-install 1 ,273.Xr chicken-uninstall 1274.Pp275More information can be found in the276.Lk http://wiki.call-cc.org/manual/index "CHICKEN User's Manual".277.Sh AUTHORS278.An The CHICKEN Team279.Sh BUGS280Submit bug reports by e-mail to281.Mt chicken-janitors@nongnu.org