THEME_D_LINK(1)
π THEME_D_LINK π
okay bestie, welcome to theme-d-link β the Theme-D linker, and honestly? she's the moment. this is the page for the <pink>THEME_D_LINK(1)</pink> manual, section 1, and we're gonna get you fully fluent. no cap.
β¨ NAME β¨
theme-d-link β the Theme-D linker. that's it, that's the whole vibe. π
πΈ SYNOPSIS πΈ
theme-d-link [ OPTION ] ... FILE
one FILE, as many OPTIONs as your heart desires. slay.
π¦ DESCRIPTION π¦
okay so here's the tea. theme-d-link takes your Theme-D pseudocode file FILE, plus all the Theme-D libraries it uses, and links them all together into Guile bytecode. periodt.
the default bytecode filename? you get it by appending .go to the basename of FILE. cute, right?
here's the lil process, bestie: the theme-d-link command creates an intermediate file, and that intermediate file is either in Guile Tree-IL or in Scheme. then it uses Guile to compile that into bytecode. the default suffix of the intermediate file is either .tree-il or .scm. β¨
and by default? both the output file and the intermediate file get dropped into the directory where you invoked the theme-d-link command. so like, wherever you were standing when you typed it. π«Ά
π OPTIONS π
-o,--output=OUTPUTFILEβ specify the compilation output file. tell her where to put the goods. π-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 or suffix the list with a colon in order to include the default Theme-D library path in the search path. (the colon is giving "and also the usual, pls" π)-l,--message-level=LEVELβ specify the message level of the compiler. the level has to be an integer number from0to3. value0means no output and value3the most verbose output. so like0is silent treatment,3is oversharing. π-n,--intermediate-file=INTFILEβ specify the intermediate filename.-i,--intermediate-language=LANGUAGEβ specify the intermediate language. valueLANGUAGEhas to be eithertree-il,tree-il-3.0,tree-il-2.2,scheme, orscheme-no-opt. when valuetree-ilis used the Tree-IL version for which Theme-D has been configured is used. β¨-x MODULEβ link (load) moduleMODULEinto the target program. the syntax ofMODULEis(sym1...symn)in double quotes. yes, quotes, don't forget em.--no-final-compilationβ do not compile the intermediate file withguild 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. so like, you can skip the weak ones but the strong ones are the main character and they stay. π--backtraceβ print backtrace on compilation error. for when things go wrong and you need the receipts.--pretty-printβ pretty print the pseudocode output. aesthetic first. π--no-verbose-errorsβ less information in the error messages.--verbose-typechecksβ more information for runtime type errors.--keep-intermediateβ keep the intermediate Tree-IL or Scheme file. by default the intermediate file is deleted. so if you wanna snoop, say so. π--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.--module-debug-outputβ print debug messages when a module body linkage is started and ended.--show-inst-numberβ show the numbers for instantiated expressions.--check-all-primitivesβ check that primitive procedure result values match the result types for all primitives, including those defined withunchecked-prim-proc. full audit energy, we love to see it.--duplicates=symbolsβ set the values passed todefault-duplicate-binding-handlerin the target program. if there are several symbols enclose them in quotes.--splitβ split the linker output.--split-dir=dirβ set the directory where to put the split linker output.--split-basename=nameβ split the basename for split linker output files.--guile-opt-level=levelβ set the optimization level for final guile compilation. the default is1.--extra-guild-options=optionsβ set extra guild options for the final compilation. if there are several options enclose the in quotes. (yes, the original says "enclose the in quotes", we're keeping it, it's iconic π)--no-inline-constructorsβ do not inline constructors in the linked code.--no-optimizationβ use the nonoptimized Guile backend. this option has no effect if the Tree-IL backend is used. so don't bother if you're on Tree-IL, bestie.--no-pair-class-optimizationβ do not optimize pair class typechecking.--no-proc-arg-optβ do not optimize procedure arguments by inlining.--unit-type=nameβ specify the source file unit type explicitly. the unit type has to be one ofproper-program,script,body, orinterface.--moduleβ link the file modularly to a Guile bytecode module.--pluginβ link the file modularly to a Theme-D plugin. this option implies--module. the file has to be a Theme-D module body. π--allow-dupl-foreign-classesβ do not give an error if the same foreign class is used to implement several Theme-D foreign class definitions.--guile-target-path=DIRSβ set the Guile library path for final compilation. the argumentDIRShas to be a colon-separated list of directories. you can prefix or suffix the list with a colon in order to include the default path in the search path.--empty-guile-target-pathβ setGUILE_LOAD_COMPILED_PATHto an empty string. normally the value ofGUILE_LOAD_COMPILED_PATHis not modified if no Guile target path is given.-M,--full-module-path=DIRSβ this option is equivalent to-m DIRS --guile-target-path=DIRS. two birds, one flag, iconic.--versionβ show the Theme-D version number and exit. π
π TARGET PLATFORMS π
the following intermediate languages are available:
tree-ilβ Guile Tree-IL 3.0.schemeβ Guile Scheme 3.0.scheme0β Guile Scheme 3.0 without optimizations.
π§ 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. so you can point her at your own config, your rules. π
π 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.gz
go read the girlies too, they're all connected. iykyk. π¦
ngl bestie, that's the whole page. every flag, every path, every colon, every quote β all of it, untouched. now go link something and make it everybody's problem. πβ¨
this lil love letter comes to you from GNU, dated 2022-04-25 β mwah, xoxo, go compile something gorgeous. π ππΈ
π¦ where this page comes from
- ubuntu resolute: theme-d-translator 7.2.4-1 Β· GFDL-1.3-or-later
- ubuntu stonking: theme-d-translator 7.3.3-2 Β· GFDL-1.3-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms