Scroll to navigation

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:

, -help
Display usage text and exit.
, -verbose
Show compiler notes and tool-invocations.
Display information about translation progress.
Display information about all compilation stages.
Display Scheme compiler version and exit.
Display release number and exit.

File and pathname options:

FILENAME, -output-file FILENAME
Specifies target executable name.
PATHNAME, -include-path PATHNAME
Specifies alternative path for included files.
Write compiler to stdout (implies -t).
, -shared, -dynamic
Generate dynamically loadable shared object file.

Language options:

SYMBOL, -feature SYMBOL
Register feature identifier.
SYMBOL
Disable builtin feature identifier.
Compile via a C++ source file (.cpp).
Compile via Objective-C source file (.m).

Syntax related options:

, -case-insensitive
Don't preserve case of read symbols.
, -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.
MODULE, -emit-import-library MODULE
Write compile-time module information into separate file.
, -emit-all-import-libraries
Emit import-libraries for all defined modules.
Disable expansion of compiler-macros.
NAME, -module NAME
Wrap compiled code in module of the given name.
, -module-registration
Always generate module registration code, even when import libraries are emitted.
, -no-module-registration
Do not generate module registration code. Overrides -module-registration.

Translation options:

, -explicit-use
Do not use units ‘library’ and ‘eval’ by default.
, -check-syntax
Stop compilation after macro-expansion.
, -analyze-only
Stop compilation after first analysis pass.

Debugging options:

, -no-warnings
Disable warnings.
, -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.
FILENAME
Name of the generated profile information file.
FILENAME
Load additional type database.

Optimization options:

, -O0, -O1, -O2, -O3, -O4, -O5, -optimize-level NUMBER
Enable certain sets of optimization options.
Enable leaf routine optimization.
Standard procedures may be redefined.
, -unsafe
Disable safety checks.
Assume globals are only modified in current file.
, -block
Enable block-compilation.
Disable interrupts in compiled code.
, -fixnum-arithmetic
Assume all numbers are fixnums.
Disables detection of stack-overflows.
Enable inlining.
LIMIT
Set inlining threshold.
Enable cross-module inlining.
Perform type-based specialization of primitive calls.
FILENAME, -emit-inline-file FILENAME
Generate file with globally inlinable procedures (implies -inline -local).
FILENAME
Explicitly load inline file.
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.
Perform additional lightweight flow-analysis pass.
LIMIT
Specifies inlining limit for self-recursive calls.

Configuration options:

NAME
Compile file as a library unit.
NAME
Declare library unit as used.
NUMBER
Specifies heap-size of compiled executable.
NUMBER -stack-size NUMBER
Specifies nursery size of compiled executable.
FILENAME, -extend FILENAME
Load file before compilation commences.
EXPRESSION
Add expression to beginning of source file.
EXPRESSION
Add expression to end of source file.
FILENAME
Include file before main source file.
FILENAME
Include file after main source file.
, -embedded
Compile as embedded (don't generate ‘main()’).
Compile as GUI application.
NAME
Link extension with compiled executable (implies ‘-uses’).
NAME, -require-extension NAME
Require extension and import in compiled code.
, -library
Compile multiple units into a dynamic library.
DIRECTORY
Override location of runtime library directory.

Options to other passes:

OPTION
Pass option to C compiler.
OPTION
Pass option to linker.
<DIR>
Pass “-I<DIR>” to C compiler (add include path).
<DIR>
Pass “-L<DIR>” to linker (add library path).
Keep intermediate files.
Stop after compilation to object files.
Stop after translation to C.
COMPILER
Select a C compiler other than the default.
COMPILER
Select a C++ compiler other than the default.
COMPILER
Select a linker other than the default.
Link with static CHICKEN libraries and extensions.
<DIR>
Pass “-F<DIR>” to C compiler (add framework header path on Mac OS X).
NAME
Passed to linker on Mac OS X.
PATHNAME
Add directory to runtime library search path.
Pass linker options.
Strip resulting binary.

Inquiry options:

Show home-directory (where support files go).
Show required C-compiler flags and exit.
Show required linker flags and exit.
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:

MODES
Display debugging output for the given modes.
PATHNAME
Use a compiler other than the default ‘chicken’.
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.
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 -optimize”.

ENVIRONMENT

The following environment variables change the behaviour of csc:
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.

AUTHORS

The CHICKEN Team

BUGS

Submit bug reports by e-mail to chicken-janitors@nongnu.org
April 26, 2017 Linux 4.19.0-10-amd64