plum

#treesitter#compiler#wasm

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

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


74beeb4 — Peter John 2026-11-06T14:52:03+05:30
plans: simpler language sizes
docs/plans/2026-11-06-simpler-language.md CHANGED
@@ -140,7 +140,7 @@ e.g. `State(..s, ship.x: 1.0)` is `State(..s, ship: Ship(..s.ship, x: 1.0))`
140
140
  ### T8 std off return and while · Complexity 8 · Est. context 130k
141
141
  **Owns:** std/**
142
142
  **Components:** 2
143
- **LOC owned:** 3000
143
+ **LOC owned:** 2000
144
144
  **Tests:** fast
145
145
  **Consumes:** `self.items .= push(x)` means `self.items = self.items.push(x)` on a `mut` field; `State(..s, ship.x: 1.0)` updates a nested field without a temporary (T7)
146
146
  **Produces:** std uses no `return`, `while`, `break`, `continue` or local `=`; std provides `fold`, `each`, `find`, `repeatUntil` over `range` and collections
@@ -151,7 +151,7 @@ e.g. `grep -rE '\breturn\b|^\s*while ' std` finds nothing in code
151
151
  ### T9 examples and tests off return and while · Complexity 6 · Est. context 110k
152
152
  **Owns:** examples/**, tests/**, compiler/core/tests/**, compiler/checker/tests/**, compiler/wasm-codegen/tests/**, compiler/cli/tests/**, compiler/game/**
153
153
  **Components:** 2
154
- **LOC owned:** 2500
154
+ **LOC owned:** 1800
155
155
  **Tests:** fast
156
156
  **Consumes:** std uses no `return`, `while`, `break`, `continue` or local `=`; std provides `fold`, `each`, `find`, `repeatUntil` over `range` and collections (T8)
157
157
  **Produces:** no Plum source in examples, tests or Rust test strings uses the old forms, apart from tests of those forms themselves