Some checks are pending
Lean Action CI / build (push) Waiting to run
Implements the cells-spec vision: a computation space that preserves auditability, correctness, interactivity. Phase 1 (Lean kernel + naga-IR Rust backend) is closed; foundation hypothesis stack (Selection H1+H2, Subobject H3, Trace H5, Obs.Ctx C2, Cubical.Trace) landed. Highlights: - Cubical-HoTT syntax + value/eval/readback in Lean - naga-IR pipeline (no GLSL string crosses FFI; 17/17 probes pass) - Honesty audit: every non-transport (sealed cells, vertex shader, Y-flip, presentation conventions) is documented as such - Polymorphic Trace α as free monoid; Cubical.Trace gives CTerm → Trace CTerm by structural fold (homomorphism = definition) - Selection as Huet zipper; Subobject as Boolean algebra over WCell - All theorems proven; the proof IS the implementation See STATUS.md for the resume guide. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
26 lines
864 B
Rust
26 lines
864 B
Rust
//! Build script: compile shim.c exposing Lean's inline runtime helpers.
|
|
|
|
fn main() {
|
|
let target = std::env::var("TARGET").unwrap_or_default();
|
|
if target.starts_with("wasm32") {
|
|
return;
|
|
}
|
|
|
|
let lean_include = std::env::var("LEAN_INCLUDE").unwrap_or_else(|_| {
|
|
let prefix = std::process::Command::new("lean")
|
|
.arg("--print-prefix")
|
|
.output()
|
|
.expect("failed to run `lean --print-prefix`; set LEAN_INCLUDE instead");
|
|
let prefix = String::from_utf8(prefix.stdout).unwrap();
|
|
format!("{}/include", prefix.trim())
|
|
});
|
|
|
|
cc::Build::new()
|
|
.file("shim.c")
|
|
.include(&lean_include)
|
|
.flag("-Wno-unused-parameter")
|
|
.compile("topolei_canvas_shim");
|
|
|
|
println!("cargo:rerun-if-changed=shim.c");
|
|
println!("cargo:rerun-if-env-changed=LEAN_INCLUDE");
|
|
}
|