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
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 6.10.10-arch1-1 |