From 9e59c7a6d017ac569b7d8479ce60a1e27cd74add Mon Sep 17 00:00:00 2001 From: Apocky Date: Fri, 15 May 2026 10:36:30 -0700 Subject: [PATCH] =?UTF-8?q?=C2=A7=20pr-gamma/iccombs-toy-harness=20?= =?UTF-8?q?=E2=97=90=20TOY=20=E2=8A=90=20U-K-prelude=20(=C2=AC=20PD-bindin?= =?UTF-8?q?g)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lands the iccombs experimental demo-harness per IMPL_06_CORRIGENDUM § U-K-prelude : cssl-iccombs-toy-elab : surface λ-calculus → cssl-hgraph + grade-context + toy effect-row cssl-lower-iccombs : LINEAR fragment → cssl-iccombs interaction net (Lafont/Mackie SIC) cssl-iccombs-toy-cli : S-exp frontend + bin cssl-iccombs-toy INVARIANTS (per corrigendum) : ✗ NOT a production elaborator (production = cssl-hir per Wave U-B revised) ✗ NOT a production driver (production = csslc) ✗ NOT a PD-discipline gate (PD = cssl-caps + cssl-effects + cssl-ifc per Wave U-G revised) ✓ doc-headers + Cargo descriptions + bin-name carry TOY warning + corrigendum link GATES : cargo check ✓ · cargo test ✓ · cargo clippy --all-targets ✓ (3 toy crates + their deps) Stacks on : pr-beta/foundation-baseline (depends on cssl-cas + cssl-hgraph + cssl-grades + cssl-iccombs) --- compiler-rs/Cargo.lock | 29 + .../crates/cssl-iccombs-toy-cli/Cargo.toml | 22 + .../crates/cssl-iccombs-toy-cli/src/lib.rs | 255 +++++++++ .../crates/cssl-iccombs-toy-cli/src/main.rs | 101 ++++ .../crates/cssl-iccombs-toy-elab/Cargo.toml | 18 + .../crates/cssl-iccombs-toy-elab/src/lib.rs | 498 ++++++++++++++++++ .../crates/cssl-lower-iccombs/Cargo.toml | 17 + .../crates/cssl-lower-iccombs/src/lib.rs | 228 ++++++++ 8 files changed, 1168 insertions(+) create mode 100644 compiler-rs/crates/cssl-iccombs-toy-cli/Cargo.toml create mode 100644 compiler-rs/crates/cssl-iccombs-toy-cli/src/lib.rs create mode 100644 compiler-rs/crates/cssl-iccombs-toy-cli/src/main.rs create mode 100644 compiler-rs/crates/cssl-iccombs-toy-elab/Cargo.toml create mode 100644 compiler-rs/crates/cssl-iccombs-toy-elab/src/lib.rs create mode 100644 compiler-rs/crates/cssl-lower-iccombs/Cargo.toml create mode 100644 compiler-rs/crates/cssl-lower-iccombs/src/lib.rs diff --git a/compiler-rs/Cargo.lock b/compiler-rs/Cargo.lock index f7ae3be..790397c 100644 --- a/compiler-rs/Cargo.lock +++ b/compiler-rs/Cargo.lock @@ -2055,6 +2055,26 @@ dependencies = [ name = "cssl-iccombs" version = "0.1.0" +[[package]] +name = "cssl-iccombs-toy-cli" +version = "0.1.0" +dependencies = [ + "cssl-cas", + "cssl-iccombs", + "cssl-iccombs-toy-elab", + "cssl-lower-iccombs", +] + +[[package]] +name = "cssl-iccombs-toy-elab" +version = "0.1.0" +dependencies = [ + "cssl-cas", + "cssl-grades", + "cssl-hgraph", + "thiserror 1.0.69", +] + [[package]] name = "cssl-ifc" version = "0.1.0" @@ -2117,6 +2137,15 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "cssl-lower-iccombs" +version = "0.1.0" +dependencies = [ + "cssl-iccombs", + "cssl-iccombs-toy-elab", + "thiserror 1.0.69", +] + [[package]] name = "cssl-macros" version = "0.1.0" diff --git a/compiler-rs/crates/cssl-iccombs-toy-cli/Cargo.toml b/compiler-rs/crates/cssl-iccombs-toy-cli/Cargo.toml new file mode 100644 index 0000000..c1a1c36 --- /dev/null +++ b/compiler-rs/crates/cssl-iccombs-toy-cli/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "cssl-iccombs-toy-cli" +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +authors.workspace = true +description = "TOY S-exp frontend + driver for the iccombs demo-harness (Wave U-D + IMPL_06_CORRIGENDUM). NOT the production driver — production driver = csslc." +repository.workspace = true + +[[bin]] +name = "cssl-iccombs-toy" +path = "src/main.rs" + +[dependencies] +cssl-iccombs-toy-elab = { path = "../cssl-iccombs-toy-elab" } +cssl-cas = { path = "../cssl-cas" } +cssl-iccombs = { path = "../cssl-iccombs" } +cssl-lower-iccombs = { path = "../cssl-lower-iccombs" } + +[lints] +workspace = true diff --git a/compiler-rs/crates/cssl-iccombs-toy-cli/src/lib.rs b/compiler-rs/crates/cssl-iccombs-toy-cli/src/lib.rs new file mode 100644 index 0000000..781eab5 --- /dev/null +++ b/compiler-rs/crates/cssl-iccombs-toy-cli/src/lib.rs @@ -0,0 +1,255 @@ +#![forbid(unsafe_code)] +#![doc = "cssl-iccombs-toy-cli — TOY S-expression frontend for the iccombs demo.\n\n\ +⚠ TOY per `specs/Upgrade/impl/IMPL_06_CORRIGENDUM.csl`. NOT the production parser\n\ +(real parser = cssl-parse, real driver = csslc). This crate exists ONLY to feed\n\ +the iccombs harness (cssl-iccombs-toy-elab + cssl-lower-iccombs + cssl-iccombs-toy bin).\n\n\ +Grammar (recursive S-exp) :\n\ + term := atom | list\n\ + atom := identifier | `()`\n\ + list := `(` head args `)`\n\ + head := `lam` body\n\ + | `let` value body\n\ + | `app` fn arg\n\ + | `op`