Provided by: chicken-bin_5.2.0-2_amd64 bug


     csc — driver program for the CHICKEN Scheme compiler


     csc [OPTION ...] [FILENAME ...]


     csc is a program that invokes the CHICKEN compiler and the host systems C compiler to
     generate an executable from a Scheme source file or C files generated by CHICKEN.

     FILENAME is a Scheme source file name with optional extension or a C/C++/Objective-C source,
     object or library file name with extension.  OPTION may be one of the following:

     General options:

     -h, -help
             Display usage text and exit.

     -v, -verbose
             Show compiler notes and tool-invocations.

     -vv     Display information about translation progress.

     -vvv    Display information about all compilation stages.

             Display Scheme compiler version and exit.

             Display release number and exit.

     File and pathname options:

     -o FILENAME, -output-file FILENAME
             Specifies target executable name.

     -I PATHNAME, -include-path PATHNAME
             Specifies alternative path for included files.

             Write compiler to stdout (implies -t).

     -s, -shared, -dynamic
             Generate dynamically loadable shared object file.

     Language options:

     -D SYMBOL, -feature SYMBOL
             Register feature identifier.

     -no-feature SYMBOL
             Disable builtin feature identifier.

     -c++    Compile via a C++ source file (.cpp).

     -objc   Compile via Objective-C source file (.m).

     Syntax related options:

     -i, -case-insensitive
             Don't preserve case of read symbols.

     -K, -keyword-style STYLE
             Enable alternative keyword-syntax (prefix, suffix or none).

             Disables list delimiter synonyms.

             Disables support for escaped symbols.

             Disables the CHICKEN extensions to R5RS syntax.

             Macros are made available at run-time.

     -j MODULE, -emit-import-library MODULE
             Write compile-time module information into separate file.

     -J, -emit-all-import-libraries
             Emit import-libraries for all defined modules.

             Disable expansion of compiler-macros.

     -m NAME, -module NAME
             Wrap compiled code in module of the given name.

     -M, -module-registration
             Always generate module registration code, even when import libraries are emitted.

     -N, -no-module-registration
             Do not generate module registration code. Overrides -module-registration.

     Translation options:

     -x, -explicit-use
             Do not use units ‘library’ and ‘eval’ by default.

     -P, -check-syntax
             Stop compilation after macro-expansion.

     -A, -analyze-only
             Stop compilation after first analysis pass.

     Debugging options:

     -w, -no-warnings
             Disable warnings.

     -d0, -d1, -d2, -d3, -debug-level NUMBER
             Set level of available debugging information.

             Disable rudimentary debugging information.

             Executable emits profiling information.

             Executable emits profiling information in append mode.

     -profile-name FILENAME
             Name of the generated profile information file.

     -types FILENAME
             Load additional type database.

     Optimization options:

     -O, -O0, -O1, -O2, -O3, -O4, -O5, -optimize-level NUMBER
             Enable certain sets of optimization options.

             Enable leaf routine optimization.

             Standard procedures may be redefined.

     -u, -unsafe
             Disable safety checks.

     -local  Assume globals are only modified in current file.

     -b, -block
             Enable block-compilation.

             Disable interrupts in compiled code.

     -f, -fixnum-arithmetic
             Assume all numbers are fixnums.

             Disables detection of stack-overflows.

             Enable inlining.

     -inline-limit LIMIT
             Set inlining threshold.

             Enable cross-module inlining.

             Perform type-based specialization of primitive calls.

     -oi FILENAME, -emit-inline-file FILENAME
             Generate file with globally inlinable procedures (implies -inline -local).

     -consult-inline-file FILENAME
             Explicitly load inline file.

     -ot FILENAME, -emit-types-file FILENAME
             Write type-declaration information into file.

             Disable argument count checks.

             Disable bound variable checks.

             Disable procedure call checks.

             Disable procedure call checks only for usual bindings.

             Disable procedure call checks for toplevel bindings.

             Assume variable do not change their type.

             Combine groups of local procedures into dispatch loop.

     -lfa2   Perform additional lightweight flow-analysis pass.

     -unroll-limit LIMIT
             Specifies inlining limit for self-recursive calls.

     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.

     -X FILENAME, -extend FILENAME
             Load file before compilation commences.

     -prelude EXPRESSION
             Add expression to beginning 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.

     -e, -embedded
             Compile as embedded (don't generate ‘main()’).

     -gui    Compile as GUI application.

     -link NAME
             Link extension with compiled executable (implies ‘-uses’).

     -R NAME, -require-extension NAME
             Require extension and import in compiled code.

     -dll, -library
             Compile multiple units into a dynamic library.

     -libdir DIRECTORY
             Override location of runtime library directory.

     Options to other passes:

     -C OPTION
             Pass option to C compiler.

     -L OPTION
             Pass option to linker.

             Pass “-I<DIR>” to C compiler (add include path).

             Pass “-L<DIR>” to linker (add library path).

     -k      Keep intermediate files.

     -c      Stop after compilation to object files.

     -t      Stop after translation to C.

     -cc COMPILER
             Select a C compiler other than the default.

     -cxx COMPILER
             Select a C++ compiler other than the default.

     -ld COMPILER
             Select a linker other than the default.

             Link with static CHICKEN libraries and extensions.

             Pass “-F<DIR>” to C compiler (add framework header path on Mac OS X).

     -framework NAME
             Passed to linker on Mac OS X.

     -rpath PATHNAME
             Add directory to runtime library search path.

             Pass linker options.

     -strip  Strip resulting binary.

     Inquiry options:

     -home   Show home-directory (where support files go).

             Show required C-compiler flags and exit.

             Show required linker flags and exit.

     -libs   Show required libraries and exit.

             Show name of default C compiler used.

             Show name of default C++ compiler used.

             Show name of default linker used.

             Just show commands executed, don't run them (implies ‘-v’).

     Obscure options:

     -debug MODES
             Display debugging output for the given modes.

     -compiler PATHNAME
             Use a compiler other than the default ‘chicken’.

     -raw    Do not generate implicit init- and exit code.

             Emit prototypes for callbacks before foreign declarations.

             Always emit import libraries, even when their contents haven't changed.  The default
             behaviour is to preserve existing import libraries.

             Do not refer to repository for extensions.

             Do not remove shadowed macros.

     -host   Compile for host when configured for cross-compiling.

             Load extensions from executable path.

             Link support file to be used from a deployed executable (sets ‘rpath’ accordingly,
             if supported on this platform.)

             Embed manifest on Windows to supress elevation warnings for programs named ‘install’
             or ‘setup’.

     Options can be collapsed if unambiguous, so “-vkfO” is the same as “-v -k -fixnum-arithmetic


     The following environment variables change the behaviour of csc:

     CSC_OPTIONS  Can hold default options that should be passed to every invocation of csc.


     The csc utility exits 0 on success, and >0 if an error occurs.



     More information can be found in the CHICKEN User's Manual:


     The CHICKEN Team


     Submit bug reports by e-mail to