~ chicken-core (chicken-5) /csc.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 CSC 129.Os30.Sh NAME31.Nm csc32.Nd driver program for the CHICKEN Scheme compiler33.Sh SYNOPSIS34.Nm35.Op Ar OPTION ...36.Op Ar FILENAME ...37.Sh DESCRIPTION38.Nm39is a program that invokes the CHICKEN compiler and the host systems C compiler to generate40an executable from a Scheme source file or C files generated by CHICKEN.41.Pp42.Ar FILENAME43is a Scheme source file name with optional extension or a C/C++/Objective-C source,44object or library file name with extension.45.Ar OPTION46may be one of the following:47.Pp48General options:49.Bl -tag -width Ds50.It Fl h , Fl help51Display usage text and exit.52.It Fl v , Fl verbose53Show compiler notes and tool-invocations.54.It Fl vv55Display information about translation progress.56.It Fl vvv57Display information about all compilation stages.58.It Fl version59Display Scheme compiler version and exit.60.It Fl release61Display release number and exit.62.El63.Pp64File and pathname options:65.Bl -tag -width Ds66.It Fl o Ar FILENAME , Fl output-file Ar FILENAME67Specifies target executable name.68.It Fl I Ar PATHNAME , Fl include-path Ar PATHNAME69Specifies alternative path for included files.70.It Fl to-stdout71Write compiler to stdout72.Po implies -t Pc .73.It Fl s , Fl shared , Fl dynamic74Generate dynamically loadable shared object file.75.El76.Pp77Language options:78.Bl -tag -width Ds79.It Fl D Ar SYMBOL , Fl feature Ar SYMBOL80Register feature identifier.81.It Fl no-feature Ar SYMBOL82Disable builtin feature identifier.83.It Fl c++84Compile via a C++ source file85.Pq .cpp .86.It Fl objc87Compile via Objective-C source file88.Pq \&.m .89.El90.Pp91Syntax related options:92.Bl -tag -width Ds93.It Fl i , Fl case-insensitive94Don't preserve case of read symbols.95.It Fl K , Fl keyword-style Ar STYLE96Enable alternative keyword-syntax97.Po prefix, suffix or none Pc .98.It Fl no-parentheses-synonyms99Disables list delimiter synonyms.100.It Fl no-symbol-escape101Disables support for escaped symbols.102.It Fl r5rs-syntax103Disables the CHICKEN extensions to R5RS syntax.104.It Fl compile-syntax105Macros are made available at run-time.106.It Fl j Ar MODULE , Fl emit-import-library Ar MODULE107Write compile-time module information into separate file.108.It Fl J , Fl emit-all-import-libraries109Emit import-libraries for all defined modules.110.It Fl no-compiler-syntax111Disable expansion of compiler-macros.112.It Fl m Ar NAME , Fl module Ar NAME113Wrap compiled code in module of the given name.114.It Fl M , Fl module-registration115Always generate module registration code, even when import libraries are emitted.116.It Fl N , Fl no-module-registration117Do not generate module registration code. Overrides118.Fl module-registration .119.El120.Pp121Translation options:122.Bl -tag -width Ds123.It Fl x , Fl explicit-use124Do not use units125.Sq library126and127.Sq eval128by default.129.It Fl P , Fl check-syntax130Stop compilation after macro-expansion.131.It Fl A , Fl analyze-only132Stop compilation after first analysis pass.133.El134.Pp135Debugging options:136.Bl -tag -width Ds137.It Fl w , Fl no-warnings138Disable warnings.139.It Fl d0 , Fl d1 , Fl d2 , Fl d3 , Fl debug-level Ar NUMBER140Set level of available debugging information.141.It Fl no-trace142Disable rudimentary debugging information.143.It Fl profile144Executable emits profiling information.145.It Fl accumulate-profile146Executable emits profiling information in append mode.147.It Fl profile-name Ar FILENAME148Name of the generated profile information file.149.It Fl types Ar FILENAME150Load additional type database.151.El152.Pp153Optimization options:154.Bl -tag -width Ds155.It Fl O , Fl O0 , Fl O1 , Fl O2 , Fl O3 , Fl O4 , Fl O5 , Fl optimize-level Ar NUMBER156Enable certain sets of optimization options.157.It Fl optimize-leaf-routines158Enable leaf routine optimization.159.It Fl no-usual-integrations160Standard procedures may be redefined.161.It Fl u , Fl unsafe162Disable safety checks.163.It Fl local164Assume globals are only modified in current file.165.It Fl b , Fl block166Enable block-compilation.167.It Fl disable-interrupts168Disable interrupts in compiled code.169.It Fl f , Fl fixnum-arithmetic170Assume all numbers are fixnums.171.It Fl disable-stack-overflow-checks172Disables detection of stack-overflows.173.It Fl inline174Enable inlining.175.It Fl inline-limit Ar LIMIT176Set inlining threshold.177.It Fl inline-global178Enable cross-module inlining.179.It Fl specialize180Perform type-based specialization of primitive calls.181.It Fl oi Ar FILENAME , Fl emit-inline-file Ar FILENAME182Generate file with globally inlinable procedures183.Po implies Fl inline Fl local Pc .184.It Fl consult-inline-file Ar FILENAME185Explicitly load inline file.186.It Fl ot Ar FILENAME , Fl emit-types-file Ar FILENAME187Write type-declaration information into file.188.It Fl no-argc-checks189Disable argument count checks.190.It Fl no-bound-checks191Disable bound variable checks.192.It Fl no-procedure-checks193Disable procedure call checks.194.It Fl no-procedure-checks-for-usual-bindings195Disable procedure call checks only for usual bindings.196.It Fl no-procedure-checks-for-toplevel-bindings197Disable procedure call checks for toplevel bindings.198.It Fl strict-types199Assume variable do not change their type.200.It Fl clustering201Combine groups of local procedures into dispatch loop.202.It Fl lfa2203Perform additional lightweight flow-analysis pass.204.It Fl unroll-limit Ar LIMIT205Specifies inlining limit for self-recursive calls.206.El207.Pp208Configuration options:209.Bl -tag -width Ds210.It Fl unit Ar NAME211Compile file as a library unit.212.It Fl uses Ar NAME213Declare library unit as used.214.It Fl heap-size Ar NUMBER215Specifies heap-size of compiled executable.216.It Fl nursery Ar NUMBER Fl stack-size Ar NUMBER217Specifies nursery size of compiled executable.218.It Fl X Ar FILENAME , Fl extend Ar FILENAME219Load file before compilation commences.220.It Fl prelude Ar EXPRESSION221Add expression to beginning of source file.222.It Fl postlude Ar EXPRESSION223Add expression to end of source file.224.It Fl prologue Ar FILENAME225Include file before main source file.226.It Fl epilogue Ar FILENAME227Include file after main source file.228.It Fl e , Fl embedded229Compile as embedded230.Po don't generate231.Sq Fn main232.Pc .233.It Fl gui234Compile as GUI application.235.It Fl link Ar NAME236Link extension with compiled executable237.Po implies Sq Fl uses238.Pc .239.It Fl R Ar NAME , Fl require-extension Ar NAME240Require extension and import in compiled code.241.It Fl dll , Fl library242Compile multiple units into a dynamic library.243.It Fl libdir Ar DIRECTORY244Override location of runtime library directory.245.El246.Pp247Options to other passes:248.Bl -tag -width Ds249.It Fl C Ar OPTION250Pass option to C compiler.251.It Fl L Ar OPTION252Pass option to linker.253.It Fl I Ns Ar <DIR>254Pass255.Dq -I Ns Ar <DIR>256to C compiler257.Po add include path Pc .258.It Fl L Ns Ar <DIR>259Pass260.Dq -L Ns Ar <DIR>261to linker262.Po add library path Pc .263.It Fl k264Keep intermediate files.265.It Fl c266Stop after compilation to object files.267.It Fl t268Stop after translation to C.269.It Fl cc Ar COMPILER270Select a C compiler other than the default.271.It Fl cxx Ar COMPILER272Select a C++ compiler other than the default.273.It Fl ld Ar COMPILER274Select a linker other than the default.275.It Fl static276Link with static CHICKEN libraries and extensions.277.It Fl F Ns Ar <DIR>278Pass279.Dq -F Ns Ar <DIR>280to C compiler281.Po add framework header path on Mac OS X Pc .282.It Fl framework Ar NAME283Passed to linker on Mac OS X.284.It Fl rpath Ar PATHNAME285Add directory to runtime library search path.286.It Fl Wl,...287Pass linker options.288.It Fl strip289Strip resulting binary.290.El291.Pp292Inquiry options:293.Bl -tag -width Ds294.It Fl home295Show home-directory296.Po where support files go Pc .297.It Fl cflags298Show required C-compiler flags and exit.299.It Fl ldflags300Show required linker flags and exit.301.It Fl libs302Show required libraries and exit.303.It Fl cc-name304Show name of default C compiler used.305.It Fl cxx-name306Show name of default C++ compiler used.307.It Fl ld-name308Show name of default linker used.309.It Fl dry-run310Just show commands executed, don't run them311.Po implies Sq Fl v312.Pc .313.El314.Pp315Obscure options:316.Bl -tag -width Ds317.It Fl debug Ar MODES318Display debugging output for the given modes.319.It Fl compiler Ar PATHNAME320Use a compiler other than the default321.Sq chicken .322.It Fl raw323Do not generate implicit init- and exit code.324.It Fl emit-external-prototypes-first325Emit prototypes for callbacks before foreign declarations.326.It Fl regenerate-import-libraries327Always emit import libraries, even when their contents haven't changed.328The default behaviour is to preserve existing import libraries.329.It Fl ignore-repository330Do not refer to repository for extensions.331.It Fl keep-shadowed-macros332Do not remove shadowed macros.333.It Fl host334Compile for host when configured for cross-compiling.335.It Fl private-repository336Load extensions from executable path.337.It Fl deployed338Link support file to be used from a deployed executable339.Po sets340.Sq rpath341accordingly, if supported on this platform.342.Pc343.It Fl no-elevation344Embed manifest on Windows to supress elevation warnings for programs named345.Sq install346or347.Sq setup .348.El349.Pp350Options can be collapsed if unambiguous, so351.Dq -vkfO352is the same as353.Dq -v -k -fixnum-arithmetic -optimize .354.Sh ENVIRONMENT355The following environment variables change the behaviour of356.Nm Ns :357.Bl -tag -width CSC_OPTIONS358.It Ev CSC_OPTIONS359Can hold default options that should be passed to every invocation of360.Nm .361.El362.Sh EXIT STATUS363.Ex -std364.Sh SEE ALSO365.Xr chicken 1366.Pp367More information can be found in the368.Lk http://wiki.call-cc.org/manual/index "CHICKEN User's Manual".369.Sh AUTHORS370.An The CHICKEN Team371.Sh BUGS372Submit bug reports by e-mail to373.Mt chicken-janitors@nongnu.org