Skip to main content

Module value_runtime

Module value_runtime 

Source
Expand description

The value runtime a C program links when the exact extension reaches it: logicaffeine-data’s C ABI over the compiled value model (logos_rt_value_*, see logicaffeine_data::abi), built on demand as one static library, so both C backends compute with the compiler’s own values. A program the extension never reaches declares nothing and links nothing more than it did.

The library is a two-line crate over logicaffeine-data with its c-abi feature, built in release under a scratch directory of its own: path-depending on this checkout’s logicaffeine_data inside the monorepo, on the crates.io release of this compiler’s own version anywhere else. Each build’s archive is copied to a file named by its content, which is never written again, so a link always reads a whole archive however many processes build at once. It is built for the machine a program runs on (Target): the host for the C backends, RV64GC Linux for the RISC-V tier.

Structs§

Archive
The built library.

Enums§

Target
The machine a library is built for.

Functions§

archive
The library for the host, built once per process.
archive_for
The library for target, built once per process.
archive_link_args
The archive built for target and the system libraries it calls, as a link line names them.
link_args
What code puts on its link line after its own source: the value runtime’s archive and the system libraries the archive calls, when the program links it; nothing otherwise.
links
Whether the emitted C program code links the value runtime.