---
name: "theme-d-gnome-link"
section: "1"
platform: "linux"
package: "theme-d-gnome-dev"
version: "0.9.5-4"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/theme-d-gnome-link"
---

# theme-d-gnome-link(1)

the Theme-D-Gnome linker

## NAME

theme-d-gnome-link - the Theme-D-Gnome linker

## SYNOPSIS

**theme-d-gnome-link** \[ *OPTION* \] ... *FILE*

## DESCRIPTION

Link the Theme-D pseudocode file *FILE* and Theme-D libraries it uses into Guile bytecode and ensure that the Guile-Gnome libraries are loaded during program startup.  The default bytecode filename is obtained by appending *.go* to the basename of *FILE*. Command **theme-d-gnome-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-gnome-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*,*or* *scheme-no-opt*. When value *tree-il* is used the Tree-IL version for which Theme-D has been configured is used. Guile-Gnome and Theme-D-Gnome libraries cannot be used with Racket.

- **-x** *MODULE*

  Link (load) module *MODULE* into the target program. The syntax of *MODULE* is *(sym1 ... symn)* in double quotes.

- **--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

[**rtp-gnome**(1)](/rtp-gnome/1.md), [**theme-d-compile**(1)](/theme-d-compile/1.md), [**theme-d-link**(1)](/theme-d-link/1.md), [**run-theme-d-program**(1)](/run-theme-d-program/1.md), *theme-d-gnome-user-guide.pdf*, *theme-d-user-guide.pdf*
