plum
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
|