THEME_D_LINK(1)

NAME
theme-d-link - the Theme-D linker

SYNOPSIS
theme-d-link [ OPTION ] ... FILE

DESCRIPTION
Link the Theme-D pseudocode file FILE and Theme-D libraries it uses into Guile bytecode. The default bytecode filename is obtained by appending .go to the basename of FILE. Command theme-d-link creates an intermediate file either in Guile Tree-IL or Scheme and uses Guile to compile it into bytecode. The default suffix of the intermediate file is either .tree-il or .scm.

By default, the output file and the intermediate file are placed into the directory where the command theme-d-link is invoked.

OPTIONS

-o, --output=OUTPUTFILE
    Specify the compilation output file.

-m, --module-path=PATH
    Specify the search path for Theme-D modules. The path should be a list of directories separated with :'s. You can prefix the list with a colon in order to include the default Theme-D library path in the search path.

-l, --message-level=LEVEL
    Specify the message level of the compiler. The level has to be an integer number from 0 to 3. Value 0 means no output and value 3 the most verbose output.

-n, --intermediate-file=INTFILE
    Specify the intermediate filename.

-i, --intermediate-language=LANGUAGE
    Specify the intermediate language. Value LANGUAGE has to be either tree-il, tree-il-3.0, tree-il-2.2, tree-il-2.0, scheme, scheme-no-opt, or racket. When value tree-il is used the Tree-IL version for which Theme-D has been configured is used. Choosing intermediate language racket implies options --keep-intermediate and --no-final-compilation.

-x MODULE
    Link (load) module MODULE into the target program. The syntax of MODULE depends on the intermediate language. The syntax is sym1/.../symn for Racket and (sym1...symn) in double quotes for other intermediate languages (Guile).

-y MODULE
    Link (load) module MODULE into the target program. A relative path is used for the module. See Racket documentation. This option is available only for intermediate language racket.

--no-final-compilation
    Do not compile the intermediate file with guild compile.

--no-strip
    Do not strip away unused code.

--no-factorization
    Do not factorize the type expressions out of procedure implementations.

--no-weak-assertions
    Do not check ordinary assertions. Strong assertions are always checked.

--backtrace
    Print backtrace on compilation error.

--pretty-print
    Pretty print the pseudocode output.

--no-verbose-errors
    Less information in the error messages.

--keep-intermediate
    Keep the intermediate Tree-IL or Scheme file. By default the intermediate file is deleted.

--link-to-cache
    Link the target bytecode file into the guile cache.

--runtime-pretty-backtrace
    Generate code to support runtime pretty printed backtraces.

--no-unlinked-procedure-names
    Do not generate code for reporting unlinked procedure names.

TARGET PLATFORMS
Theme-D programs can be built for Guile or Racket. The following intermediate languages are available:

tree-il
    Guile Tree-IL. Use the Guile version from Theme-D configuration.

tree-il-3.0
    Guile 3.0 Tree-IL. This is currently identical to Guile 2.2 Tree-IL.

tree-il-2.2
    Guile 2.2 Tree-IL.

tree-il-2.0
    Guile 2.0 Tree-IL.

scheme
    Guile Scheme.

scheme-no-opt
    Guile Scheme without optimizations.

racket
    Racket Scheme.

ENVIRONMENT

THEME_D_CONFIG_FILE
    If this variable is defined its value is used as the Theme-D configuration file instead of the default configuration file.

FILES

/etc/theme-d-config
    The Theme-D configuration file.

~/.theme-d-config
    The Theme-D configuration file. This file should be normally present only if you use Theme-D in local mode.

SEE ALSO
theme-d-compile(1), run-theme-d-program(1), setup-theme-d-test-env(1), /usr/share/doc/theme-d-doc/theme-d-user-guide.pdf