table of contents
| 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:
-oFILENAME,-output-fileFILENAME- Specifies target executable name.
-IPATHNAME,-include-pathPATHNAME- 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:
-DSYMBOL,-featureSYMBOL- Register feature identifier.
-no-featureSYMBOL- 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-styleSTYLE- 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.
-jMODULE,-emit-import-libraryMODULE- 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.
-mNAME,-moduleNAME- 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-levelNUMBER- 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-nameFILENAME- Name of the generated profile information file.
-typesFILENAME- Load additional type database.
Optimization options:
-O,-O0,-O1,-O2,-O3,-O4,-O5,-optimize-levelNUMBER- 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-limitLIMIT- Set inlining threshold.
-inline-global- Enable cross-module inlining.
-specialize- Perform type-based specialization of primitive calls.
-oiFILENAME,-emit-inline-fileFILENAME- Generate file with globally inlinable procedures (implies
-inline-local). -consult-inline-fileFILENAME- Explicitly load inline file.
-otFILENAME,-emit-types-fileFILENAME- 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-limitLIMIT- Specifies inlining limit for self-recursive calls.
Configuration options:
-unitNAME- Compile file as a library unit.
-usesNAME- Declare library unit as used.
-heap-sizeNUMBER- Specifies heap-size of compiled executable.
-nurseryNUMBER-stack-sizeNUMBER- Specifies nursery size of compiled executable.
-XFILENAME,-extendFILENAME- Load file before compilation commences.
-preludeEXPRESSION- Add expression to beginning of source file.
-postludeEXPRESSION- Add expression to end of source file.
-prologueFILENAME- Include file before main source file.
-epilogueFILENAME- Include file after main source file.
-e,-embedded- Compile as embedded (don't generate
‘
main()’). -gui- Compile as GUI application.
-linkNAME- Link extension with compiled executable (implies
‘
-uses’). -RNAME,-require-extensionNAME- Require extension and import in compiled code.
-dll,-library- Compile multiple units into a dynamic library.
-libdirDIRECTORY- Override location of runtime library directory.
Options to other passes:
-COPTION- Pass option to C compiler.
-LOPTION- 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.
-ccCOMPILER- Select a C compiler other than the default.
-cxxCOMPILER- Select a C++ compiler other than the default.
-ldCOMPILER- 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).
-frameworkNAME- Passed to linker on Mac OS X.
-rpathPATHNAME- 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:
-debugMODES- Display debugging output for the given modes.
-compilerPATHNAME- 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 | Debian |