logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

csc — driver program for the CHICKEN Scheme compiler

Authors

       The CHICKEN Team

Bugs

       Submit bug reports by e-mail to chicken-janitors@nongnu.org

Debian                                            Apr 26, 2017                                            CSC(1)

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.

Name

       csc — driver program for the CHICKEN Scheme compiler

See Also

chicken(1)

       More information can be found in the CHICKENUser'sManual: http://wiki.call-cc.org/manual/index.

Synopsis

csc [OPTION...] [FILENAME...]

See Also