~ 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.El202.Pp203Configuration options:204.Bl -tag -width Ds205.It Fl unit Ar NAME206Compile file as a library unit.207.It Fl uses Ar NAME208Declare library unit as used.209.It Fl heap-size Ar NUMBER210Specifies heap-size of compiled executable.211.It Fl nursery Ar NUMBER Fl stack-size Ar NUMBER212Specifies nursery size of compiled executable.213.It Fl extend Ar FILENAME214Load file before compilation commences.215.It Fl prelude Ar EXPRESSION216Add expression to front of source file.217.It Fl postlude Ar EXPRESSION218Add expression to end of source file.219.It Fl prologue Ar FILENAME220Include file before main source file.221.It Fl epilogue Ar FILENAME222Include file after main source file.223.It Fl dynamic224Compile as dynamically loadable code.225.It Fl require-extension Ar NAME226Require and import extension227.Ar NAME .228.It Fl emit-link-file Ar FILENAME229Write a list of statically linked extensions to230.Ar FILENAME ,231used for identifying the static objects that need to be linked to an232executable.233.El234.Pp235Obscure options:236.Bl -tag -width Ds237.It Fl debug Ar MODES238Display debugging output for the given modes.239.It Fl raw240Do not generate implicit init- and exit code.241.It Fl emit-external-prototypes-first242Emit prototypes for callbacks before foreign declarations.243.It Fl regenerate-import-libraries244Always emit import libraries, even when their contents haven't changed.245The default behaviour is to preserve existing import libraries.246.It Fl ignore-repository247Do not refer to repository for extensions.248.It Fl setup-mode249Prefer the current directory when locating extensions.250.El251.Sh ENVIRONMENT252The following environment variables change the behaviour of253.Nm Ns :254.Bl -tag -width CHICKEN_INCLUDE_PATH255.It Ev CHICKEN_INCLUDE_PATH256Contains one or more pathnames where the compiler should additionally look for257include-files, separated by258.Sq \&;259characters.260.It Ev CHICKEN_OPTIONS261Holds a string of default compiler options that should apply to every invocation of262.Nm .263.El264.Sh EXIT STATUS265.Ex -std266.Sh SEE ALSO267.Xr chicken 1 ,268.Xr chicken-install 1 ,269.Xr chicken-uninstall 1270.Pp271More information can be found in the272.Lk http://wiki.call-cc.org/manual/index "CHICKEN User's Manual".273.Sh AUTHORS274.An The CHICKEN Team275.Sh BUGS276Submit bug reports by e-mail to277.Mt chicken-janitors@nongnu.org