NAME
csc – driver program for the CHICKEN Scheme compiler
SYNOPSIS
csc [OPTION ...] [FILENAME ...]
DESCRIPTION
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.
- -version
-
Display Scheme compiler version and exit.
- -release
-
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.
- -to-stdout
-
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).
- -no-parentheses-synonyms
-
Disables list delimiter synonyms.
- -no-symbol-escape
-
Disables support for escaped symbols.
- -r5rs-syntax
-
Disables the CHICKEN extensions to R5RS syntax.
- -compile-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.
- -no-compiler-syntax
-
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.
- -no-trace
-
Disable rudimentary debugging information.
- -profile
-
Executable emits profiling information.
- -accumulate-profile
-
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.
- -optimize-leaf-routines
-
Enable leaf routine optimization.
- -no-usual-integrations
-
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
-
Disable interrupts in compiled code.
- -f, -fixnum-arithmetic
-
Assume all numbers are fixnums.
- -disable-stack-overflow-checks
-
Disables detection of stack-overflows.
- -inline
-
Enable inlining.
- -inline-limit LIMIT
-
Set inlining threshold.
- -inline-global
-
Enable cross-module inlining.
- -specialize
-
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.
- -no-argc-checks
-
Disable argument count checks.
- -no-bound-checks
-
Disable bound variable checks.
- -no-procedure-checks
-
Disable procedure call checks.
- -no-procedure-checks-for-usual-bindings
-
Disable procedure call checks only for usual bindings.
- -no-procedure-checks-for-toplevel-bindings
-
Disable procedure call checks for toplevel bindings.
- -strict-types
-
Assume variable do not change their type.
- -clustering
-
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.
- -I<DIR>
-
Pass “-I<DIR>” to C compiler (add include path).
- -L<DIR>
-
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.
- -static
-
Link with static CHICKEN libraries and extensions.
- -F<DIR>
-
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.
- -Wl,...
-
Pass linker options.
- -strip
-
Strip resulting binary.
Inquiry options:
- -home
-
Show home-directory (where support files go).
- -cflags
-
Show required C-compiler flags and exit.
- -ldflags
-
Show required linker flags and exit.
- -libs
-
Show required libraries and exit.
- -cc-name
-
Show name of default C compiler used.
- -cxx-name
-
Show name of default C++ compiler used.
- -ld-name
-
Show name of default linker used.
- -dry-run
-
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-external-prototypes-first
-
Emit prototypes for callbacks before foreign declarations.
- -regenerate-import-libraries
-
Always emit import libraries, even when their contents haven't changed. The default behaviour is to preserve existing import libraries.
- -ignore-repository
-
Do not refer to repository for extensions.
- -keep-shadowed-macros
-
Do not remove shadowed macros.
- -host
-
Compile for host when configured for cross-compiling.
- -private-repository
-
Load extensions from executable path.
- -deployed
-
Link support file to be used from a deployed executable (sets ‘rpath’ accordingly, if supported on this platform.)
- -no-elevation
-
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 -optimize”.
ENVIRONMENT
The following environment variables change the behaviour of csc:
- CSC_OPTIONS
-
Can hold default options that should be passed to every invocation of csc.
EXIT STATUS
The csc utility exits 0 on success, and >0 if an error occurs.
SEE ALSO
More information can be found in the CHICKEN User's Manual: http://wiki.call-cc.org/manual/index.
AUTHORS
The CHICKEN Team
BUGS
Submit bug reports by e-mail to [email protected]