speckl/compiler
Scott Scoble 84b8962d22 fix(speckl): Rust generator — Date type, record structs, event enum (cycle 73)
Three defects found by deep-inspecting the Rust output against the
product spec (FederatedMeetupProduct.speckdl):

1. Date type undefined in Rust — emitted as 'Date' which doesn't exist.
   Fixed: Date maps to u64 (Unix timestamp) in both the primitive map
   and the ident fallback path.

2. Interface records (Money, Ticket, Order, etc.) not emitted as Rust
   structs — only events were emitted. The TS backend has the same gap.
   Fixed: record-kind interfaces now emit as Rust structs.

3. Decision log typed as Vec<FirstEventName> instead of an enum union.
   Fixed: emit a SpeckName_Event enum with one variant per event type,
   type the decision log as Vec<SpeckName_Event>.

57/57 tests pass. Both specs generate clean Rust output.
2026-06-29 17:14:12 -07:00
..
__tests__ test(speckl): lock in List<T> in interface record fields (cycle 73) 2026-06-29 12:15:47 -07:00
dist fix(speckl): error on unrecognized lines in service blocks (D3, cycle 73) 2026-06-29 14:01:58 -07:00
node_modules TS generator: fix #12 (5 expression patterns) + #11 (opaque record types) 2026-05-11 10:16:15 -07:00
out/speckl-compile feat(compiler): self-hosting spec + generator multi-enum support 2026-05-03 14:42:03 -07:00
specs feat(compiler): self-hosting spec + generator multi-enum support 2026-05-03 14:42:03 -07:00
src fix(speckl): Rust generator — Date type, record structs, event enum (cycle 73) 2026-06-29 17:14:12 -07:00
test-output TS generator: fix #12 (5 expression patterns) + #11 (opaque record types) 2026-05-11 10:16:15 -07:00
test-output-rust/TigerBeetleLedger feat(rust): Rust codegen backend (speckl#24) 2026-05-09 23:24:40 -07:00
.gitignore Add .gitignore for compiler dependencies and build artifacts 2026-04-29 15:12:37 -07:00
.last-build fix: add dist-check guard + List<T> type parsing + state machine examples 2026-05-05 03:11:53 -07:00
check-dist.sh fix: add dist-check guard + List<T> type parsing + state machine examples 2026-05-05 03:11:53 -07:00
package-lock.json WASM E2E test: Speckl specs compile to runnable WebAssembly 2026-05-03 13:13:55 -07:00
package.json WASM E2E test: Speckl specs compile to runnable WebAssembly 2026-05-03 13:13:55 -07:00
tsconfig.json Add SpeckDL compiler scaffold 2026-04-29 15:12:08 -07:00