~ chicken-core (master) /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 r7rs-syntax96Disables the CHICKEN extensions to R7RS syntax.97.It Fl compile-syntax98Macros are made available at run-time.99.It Fl emit-import-library Ar MODULE100Write compile-time module information into separate file.101.It Fl emit-all-import-libraries102Emit import-libraries for all defined modules.103.It Fl no-compiler-syntax104Disable expansion of compiler-macros.105.It Fl module Ar NAME106Wrap compiled code in module of the given name.107.It Fl module-registration108Always generate module registration code, even when import libraries are emitted.109.It Fl no-module-registration110Do not generate module registration code. Overrides111.Fl module-registration .112.El113.Pp114Translation options:115.Bl -tag -width Ds116.It Fl explicit-use117Do not use units118.Sq library119and120.Sq eval121by default.122.It Fl static123Link extensions statically.124.It Fl check-syntax125Stop compilation after macro-expansion.126.It Fl analyze-only127Stop compilation after first analysis pass.128.El129.Pp130Debugging options:131.Bl -tag -width Ds132.It Fl no-warnings133Disable warnings.134.It Fl debug-level Ar NUMBER135Set level of available debugging information.136.It Fl no-trace137Disable tracing information.138.It Fl profile139Executable emits profiling information.140.It Fl profile-name Ar FILENAME141Name of the generated profile information file.142.It Fl accumulate-profile143Executable emits profiling information in append mode.144.It Fl no-lambda-info145Omit additional procedure-information.146.It Fl types Ar FILENAME147Load additional type database.148.It Fl emit-types-file Ar FILENAME149Write type-declaration information into file.150.El151.Pp152Optimization options:153.Bl -tag -width Ds154.It Fl optimize-level Ar NUMBER155Enable certain sets of optimization options.156.It Fl optimize-leaf-routines157Enable leaf routine optimization.158.It Fl no-usual-integrations159Standard procedures may be redefined.160.It Fl unsafe161Disable all safety checks.162.It Fl local163Assume globals are only modified in current file.164.It Fl block165Enable block-compilation.166.It Fl disable-interrupts167Disable interrupts in compiled code.168.It Fl fixnum-arithmetic169Assume all numbers are fixnums.170.It Fl disable-stack-overflow-checks171Disables detection of stack-overflows.172.It Fl inline173Enable inlining.174.It Fl inline-limit Ar LIMIT175Set inlining threshold.176.It Fl inline-global177Enable cross-module inlining.178.It Fl specialize179Perform type-based specialization of primitive calls.180.It Fl emit-inline-file Ar FILENAME181Generate file with globally inlinable procedures182.Po implies Fl inline Fl local Pc .183.It Fl consult-inline-file Ar FILENAME184Explicitly load inline file.185.It Fl no-argc-checks186Disable argument count checks.187.It Fl no-bound-checks188Disable bound variable checks.189.It Fl no-procedure-checks190Disable procedure call checks.191.It Fl no-procedure-checks-for-usual-bindings192Disable procedure call checks only for usual bindings.193.It Fl no-procedure-checks-for-toplevel-bindings194Disable procedure call checks for toplevel bindings.195.It Fl strict-types196Assume variable do not change their type.197.It Fl lfa2198Perform additional lightweight flow-analysis pass.199.It Fl unroll-limit Ar LIMIT200Specifies inlining limit for self-recursive calls.201.It Fl merge-reusable-closures202Enables closure reuse.203.It Fl merge-shareable-closures204Enables closure sharing.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