plum

#treesitter#compiler#wasm

git clone https://git.pyrossh.dev/plum

A statically typed, imperative programming language inspired by rust, python


2dcaa4b — Peter John 2026-10-26T10:10:57+05:30
docs(plans): erased-generics build log
docs/plans/2026-10-25-erased-generics.progress.md ADDED
@@ -0,0 +1,17 @@
1
+ - start cf9e06f3c64fb5fe2d51a2d87291c5ac9d5c90a0 (erased-generics)
2
+ - unblocked: dispatched T1 at 18:49:15; waiting on fixes: none
3
+ - Ruling: T0 skipped - test-cmd.json reused from roc-errors run - cost: none
4
+ - Ruling: Map stays Plum std code on List/Array intrinsics (user chose built-in collections) - hand-written wasm hash table adds lots of codegen for no gain once Map isn't specialized - cost: Map slightly slower than a native one
5
+ - T1 dd5f31d
6
+ - tests fast passed=1 failed=0 skipped=0 seconds=13.4
7
+ - T2 eaf49cb; Ruling: locals may shadow top-level fns (side effect of T2) - cost: a typo'd local could hide a fn
8
+ - review T2 9fbf75a; residual: unconstrained vars default to Unit in typedSource (watch in T4); free fns can't declare bounds (grammar)
9
+ - T3 6c41056; Ruling: builtin ids 0-15 reserved (Str=5, Buffer=6 fixed so hosts need no lookup) - cost: none
10
+ - T4 55dceee; Ruling: uniform anyref closure ABI (no thunks) - cost: primitive closure args box per call
11
+ - review T4: no fixes; open: bare generic type in signature unsound (folded into T5); generic fn returning a closure unparseable (-> fn(Int) -> Int), left out of scope
12
+ - T5 dispatched 09:51:10
13
+ - NOTE (user: defer): grammar can't express a fn type as a return type (-> fn(Int) -> Int); generic fn returning a closure unparseable
14
+ - T5 7d25f15; Ruling: List stays Plum code over the Array intrinsic (not its own intrinsic) - matches 'compiler owns representations, std owns what Plum can express' - cost: one extra indirection per List op
15
+ - NOTE: closure capturing a fn-typed param fails 'unknown function cb' (pre-existing codegen bug, open)
16
+ - NOTE: follow-up plan = built-in Bool only (user)
17
+ - T6 16cd722