.\" Written by Tommi Höynälänmaa (tommi.hoynalanmaa@iki.fi) .TH THEME_D_LINK 1 2022-04-25 GNU "Theme-D Linker" . .SH NAME theme-d-link \- the Theme-D linker . .SH SYNOPSIS .B theme-d-link .RB [\| .IR OPTION .RB \|] .RB ... .IR FILE . .SH DESCRIPTION Link the Theme-D pseudocode file .IR FILE and Theme-D libraries it uses into Guile bytecode. The default bytecode filename is obtained by appending .IR .go to the basename of .IR FILE . Command .B 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 .IR .tree-il or .IR .scm . . .PP By default, the output file and the intermediate file are placed into the directory where the command .B theme-d-link is invoked. . .SH OPTIONS .TP .BR \-o ", " \-\-output =\fIOUTPUTFILE\fR Specify the compilation output file. . .TP .BR \-m ", " \-\-module-path =\fIPATH\fR Specify the search path for Theme-D modules. The path should be a list of directories separated with :\(aqs. You can prefix the list with a colon in order to include the default Theme-D library path in the search path. . .TP .BR \-l ", " \-\-message-level =\fILEVEL\fR 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. . .TP .BR \-n ", " \-\-intermediate-file =\fIINTFILE\fR Specify the intermediate filename. . .TP .BR \-i ", " \-\-intermediate-language =\fILANGUAGE\fR Specify the intermediate language. Value .IR LANGUAGE has to be either .IR tree-il , .IR tree-il-3.0 , .IR tree-il-2.2 , .IR scheme , or .IR scheme-no-opt . When value .IR tree-il is used the Tree-IL version for which Theme-D has been configured is used. . .TP .BR \-x\ \fIMODULE\fR Link (load) module .IR MODULE into the target program. The syntax of .IR MODULE is .IR (sym1 ... symn) in double quotes. . .TP .BR \-\-no-final-compilation Do not compile the intermediate file with .BR guild .BR compile . . .TP .BR \-\-no-strip Do not strip away unused code. . .TP .BR \-\-no-factorization Do not factorize the type expressions out of procedure implementations. . .TP .BR \-\-no-weak-assertions Do not check ordinary assertions. Strong assertions are always checked. . .TP .BR \-\-backtrace Print backtrace on compilation error. . .TP .BR \-\-pretty-print Pretty print the pseudocode output. . .TP .BR \-\-no-verbose-errors Less information in the error messages. . .TP .BR \-\-keep-intermediate Keep the intermediate Tree-IL or Scheme file. By default the intermediate file is deleted. . .TP .BR \-\-link-to-cache Link the target bytecode file into the guile cache. . .TP .BR \-\-runtime-pretty-backtrace Generate code to support runtime pretty printed backtraces. . .TP .BR \-\-no-unlinked-procedure-names Do not generate code for reporting unlinked procedure names. . .TP .BR \-\-module-debug-output Print debug messages when a module body linkage is started and ended. . .TP .BR \-\-check-all-primitives Check that primitive procedure result values match the result types for all primitives, including those defined with \fBunchecked-prim-proc\fR. . .TP .BR \-\-duplicates =\fIsymbols\fR Set the values passed to \fBdefault-duplicate-binding-handler\fR in the target program. If there are several symbols enclose them in quotes. . .TP .BR \-\-split Split the linker output. . .TP .BR \-\-split-dir =\fIdir\fR Set the directory where to put the split linker output. . .TP .BR \-\-split-basename=\fIname\fR Split the basename for split linker output files. . .TP .BR \-\-guile-opt-level=\fIlevel\fR Set the optimization level for final guile compilation. The default is 1. . .TP .BR \-\-extra-guild-options=\fIoptions\fR Set extra guild options for the final compilation. If there are several options enclose the in quotes. . .TP .BR \-\-version Show the Theme-D version number and exit. . .SH TARGET PLATFORMS The following intermediate languages are available: .TP .IR tree-il Guile Tree-IL. Use the Guile version from Theme-D configuration. . .TP .IR tree-il-3.0 Guile 3.0 Tree-IL. . .TP .IR tree-il-2.2 Guile 2.2 Tree-IL. . .TP .IR scheme Guile Scheme. . .TP .IR scheme-no-opt Guile Scheme without optimizations. . . .SH ENVIRONMENT .TP .BR 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. . .SH FILES .TP .IR /etc/theme-d-config The Theme-D configuration file. . .TP .IR ~/.theme-d-config The Theme-D configuration file. This file should be normally present only if you use Theme-D in local mode. . .SH SEE ALSO .BR theme-d-compile (1), .BR run-theme-d-program (1), .BR setup-theme-d-test-env (1), .IR /usr/share/doc/theme-d-doc/theme-d-user-guide.pdf.gz