Expand description
Injected compiler-plugin boundary.
Compiler plugins are loaded and driven by the compiler (lumenc), but the
compile pipeline they hook into (load_ir, compile_app, hot reload)
lives in the runtime crate, which links no plugin loader for the same
reason it links no parser (see crate::source_parser): the dependency
would run the wrong way. The chain is injected instead:
- The CLI, the Rust SDK, and the C-ABI dev paths hand a
CompilerPluginstoRunOptions, built bylumencfrom the app’s[[plugins]]declarations. - The dev source-load path and hot reload call it.
- The precompiled-artifact path already carries the transformed tree and ignores this hook.
Errors are Strings that already name the failing plugin; a hook error
fails the compile with it.
Structs§
- NoCompiler
Plugins - The empty chain: every hook is a no-op. What every path without a
[[plugins]]declaration runs. - Runtime
Compiler Plugins - The injected chain, stashed as a resource beside
crate::source_parser::RuntimeParserso a hot reload reruns the same hooks without reloading the plugin libraries.
Traits§
- Compiler
Plugins - The loaded compiler-plugin chain of one app. Implemented in
lumencover thelumenc-pluginloader; every hook runs the declared plugins inlumen.tomlorder.