CSC(1) General Commands Manual CSC(1)
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
chicken(1)
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] GNU Apr 26, 2017 CSC(1)