plum

#treesitter#compiler#wasm

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

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


02af96d — Peter John 2026-11-06T17:04:10+05:30
Simpler language: modules
1f77028 — Peter John 2026-11-06T16:42:31+05:30
Docs: game docs for plain games, one scene style
272d6bd — Peter John 2026-11-06T15:49:17+05:30
Simpler language: no inheritance
4bde697 — Peter John 2026-11-06T15:21:10+05:30
plans: simpler language file patterns
4745ae8 — Peter John 2026-11-06T15:20:27+05:30
Simpler language: plain games and one scene style
74beeb4 — Peter John 2026-11-06T14:52:03+05:30
plans: simpler language sizes
e7acf3c — Peter John 2026-11-06T14:51:56+05:30
Simpler language T1: baseline benchmark of master
8a00a46 — Peter John 2026-11-06T14:38:08+05:30
plans: a simpler language, approved, on its own branch
33fe838 — Peter John 2026-11-06T14:36:31+05:30
Report type errors inside string interpolation
2150594 — Peter John 2026-11-06T14:03:56+05:30
FBIP stage 1: pilot and verdict, and the simpler language plan
09c07b1 — Peter John 2026-11-06T13:37:40+05:30
plans: FBIP stage 1 owns
d61ff9f — Peter John 2026-11-06T13:36:25+05:30
fip fun: a compile-time guarantee of in-place updates
c3fa217 — Peter John 2026-11-06T13:14:05+05:30
FBIP stage 1: switch, stronger proof, Array.with, and fusion fixes
950794d — Peter John 2026-11-06T11:06:24+05:30
plans: top-level functions with receivers, module namespaces
04de243 — Peter John 2026-11-06T10:57:29+05:30
plans: FBIP stage 1, keep the chain
2606ba6 — Peter John 2026-11-06T10:54:54+05:30
plans: FBIP stage 1, T4 example
12f598b — Peter John 2026-11-06T10:53:22+05:30
plans: FBIP stage 1
eeaa05c — Peter John 2026-11-06T01:50:59+05:30
Game engine refactor: Game struct, main as the entry, plum run
e38cbb1 — Peter John 2026-11-05T23:55:13+05:30
plans: FBIP review plan, game engine refactor
ef329e5 — Peter John 2026-11-05T23:48:47+05:30
Move compiler/tests to tests at the top level
f822aa8 — Peter John 2026-11-05T23:28:10+05:30
Compiler cleanup phase 6: tests in Plum
938ecb2 — Peter John 2026-11-05T23:09:39+05:30
Compiler cleanup phase 5: file splits and type kinds
b883e37 — Peter John 2026-11-05T22:39:59+05:30
Docs: a short scene style guide, move internal notes out of the way
5ecf1ab — Peter John 2026-11-05T22:33:48+05:30
Simplify the README and rewrite the docs
2003250 — Peter John 2026-11-05T22:32:40+05:30
Check a closure's self-calls in the checker
824016e — Peter John 2026-11-05T22:02:40+05:30
Compiler cleanup phase 4: node ids, spans and typed codegen
baca938 — Peter John 2026-11-05T19:15:16+05:30
Move plum-tooling and scripts under compiler/
92943df — Peter John 2026-11-05T19:08:48+05:30
backlog: move plum-tooling and scripts under compiler/ before phase 4
bed1cc5 — Peter John 2026-11-05T19:07:24+05:30
plans: cleanup phase 4 (node ids, spans, typed codegen); backlog: FBIP behind a flag
803be1b — Peter John 2026-11-05T19:00:27+05:30
Move Rust crates under compiler/, rename std and examples
6fd238d — Peter John 2026-11-05T18:41:07+05:30
Io as a built-in primitive with extern methods
79df289 — Peter John 2026-11-05T18:15:57+05:30
AGENTS.md: use a fresh subagent once one nears 75% context; backlog order
086f1c8 — Peter John 2026-11-05T18:05:48+05:30
Compiler cleanup phase 3b: pass-list driver and Diagnostic errors
faa4d7e — Peter John 2026-11-05T17:32:36+05:30
Explicit function generics; single letters are plain names
949dabf — Peter John 2026-11-05T16:34:55+05:30
Build speed: one test binary per crate, editor assets only for dist builds
c929c25 — Peter John 2026-11-05T16:22:53+05:30
Language simplification run D3: remove the old error syntax
d7658cc — Peter John 2026-11-05T15:11:39+05:30
Language simplification run D2: port std, examples and tests to Option/Result
98b85f8 — Peter John 2026-11-05T14:27:42+05:30
Language simplification run D1: std Option/Result, postfix ? and ! unwrap
90983a5 — Peter John 2026-11-05T12:11:31+05:30
decisions: keep postfix ! as unwrap sugar; run D design and D1 plan
961bd21 — Peter John 2026-11-05T11:52:30+05:30
Language simplification run C: subtyping, no traits, no union enums
7a071c1 — Peter John 2026-11-05T10:53:44+05:30
decisions: single inheritance (one embedded struct = base), built in run C
cdfddc4 — Peter John 2026-11-05T10:50:07+05:30
decisions: run D uses Option/Result with postfix ? as the only sugar
66e079b — Peter John 2026-11-05T10:39:36+05:30
backlog: language ideas to discuss later (single inheritance, no init, one error form, Pony)
e7b65ce — Peter John 2026-11-05T10:22:15+05:30
AGENTS.md: push with repo-push after every commit
5b2fc6c — Peter John 2026-11-05T10:19:38+05:30
AGENTS.md: commit only, no pushing
ec85a75 — Peter John 2026-11-05T10:18:44+05:30
AGENTS.md: work directly on master, no worktrees
46c0025 — Peter John 2026-11-05T00:08:19+05:30
Language simplification run B: one product type, struct
5ec826e — Peter John 2026-11-04T23:54:42+05:30
docs: run B T5 owns fixtures
083e978 — Peter John 2026-11-04T23:48:21+05:30
docs: run B T5 owns
f5d1f61 — Peter John 2026-11-04T23:48:08+05:30
docs: run B T4 owns ctors.rs
f7e0ec7 — Peter John 2026-11-04T23:35:53+05:30
docs: run B T4 owns embeds/layout fixes
9fdeccd — Peter John 2026-11-04T23:27:05+05:30
docs: run B T3 owns checker cleanup
ad58efa — Peter John 2026-11-04T23:19:36+05:30
docs: run B T7 owns every isValue/isRecord site
7315244 — Peter John 2026-11-04T23:19:07+05:30
docs: run B T4 lists layout changes
dae0bfe — Peter John 2026-11-04T23:10:43+05:30
docs: run B T2 owns two tests
8ced458 — Peter John 2026-11-04T23:04:33+05:30
docs: run B T2 split
4299cfb — Peter John 2026-11-04T23:01:45+05:30
docs: language simplification run B plan
bbb2fc4 — Peter John 2026-11-04T22:56:28+05:30
docs: AGENTS.md: run cargo clean-all -y after each merged plan or phase
a5e4d01 — Peter John 2026-11-04T22:53:15+05:30
Language simplification run A: no generators, variadics, value enums or Seq; one loop form; list and map literals
2645871 — Peter John 2026-11-04T22:53:05+05:30
grammar: delete fun_star corpus (generators removed; T6)
7277762 — Peter John 2026-11-04T22:32:18+05:30
tests: delete generator-only test and fixture (T11)
c1f3c12 — Peter John 2026-11-04T22:29:40+05:30
docs: run A T11 owns README
22fdf41 — Peter John 2026-11-04T21:59:57+05:30
docs: run A T11 owns explicit
fa335e7 — Peter John 2026-11-04T21:59:39+05:30
std: delete Seq (generators removed; T4)
4aa831b — Peter John 2026-11-04T21:59:23+05:30
docs: run A T6 owns explicit
4630024 — Peter John 2026-11-04T21:44:53+05:30
docs: run A T4 owns
8a69d0e — Peter John 2026-11-04T21:36:28+05:30
docs: run A T10 owns List.plum
99e3949 — Peter John 2026-11-04T21:25:39+05:30
docs: run A T2 owns explicit
d31eccf — Peter John 2026-11-04T21:25:31+05:30
docs: run A T9 owns explicit
3854b3e — Peter John 2026-11-04T21:25:16+05:30
docs: run A T9 owns
3dc4412 — Peter John 2026-11-04T21:25:08+05:30
docs: run A owns after T2/T3
931d6a7 — Peter John 2026-11-04T21:20:22+05:30
docs: decide Option/Result enums replace error sets, T? and null (run D)
a277678 — Peter John 2026-11-04T21:12:14+05:30
docs: run A: one for form, no Seq
8d8a0e0 — Peter John 2026-11-04T20:58:19+05:30
docs: backlog: tree Map and constant map literals (later)
a9e4592 — Peter John 2026-11-04T20:49:52+05:30
docs: run A keeps the range keyword
784decf — Peter John 2026-11-04T20:45:59+05:30
docs: run A plan split
7873c08 — Peter John 2026-11-04T20:41:58+05:30
docs: language simplification run A plan
9855142 — Peter John 2026-11-04T20:37:32+05:30
docs: language simplification review plan
1b6d1fd — Peter John 2026-11-04T20:32:38+05:30
Merge branch 'superlite/compiler-cleanup-3a'
1597c83 — Peter John 2026-11-04T20:32:38+05:30
docs: backlog: decide whether traits are still needed (notes and benchmark evidence)
7444c01 — Peter John 2026-11-04T20:31:35+05:30
docs: language simplification scope (errors, =, generators, variadics, value enums, struct)
d47ae76 — Peter John 2026-11-04T20:26:16+05:30
Merge master into compiler-cleanup-3a
e8446dd — Peter John 2026-11-04T20:26:00+05:30
Compiler cleanup phase 3a: per-compile state, no fusion globals
06d3318 — Peter John 2026-11-04T20:26:00+05:30
docs: decide to remove traits and union enums (records with embedding + override instead)
68edfc2 — Peter John 2026-11-04T19:52:18+05:30
docs: kids' games review plan (queued last) and Balloon Pop draft
a269f58 — Peter John 2026-11-04T19:50:23+05:30
docs: phase 3a T1 split
28a3f9f — Peter John 2026-11-04T19:43:35+05:30
docs: compiler cleanup phase 3a plan
529a106 — Peter John 2026-11-04T19:25:01+05:30
Compiler cleanup phase 2b: one front end, one compile entry, no Expr::Paren
427da43 — Peter John 2026-11-04T19:08:08+05:30
docs: phase 2b T7 owns the tests it touched
d8f1135 — Peter John 2026-11-04T18:51:05+05:30
docs: backlog: move Rust crates under compiler/ after the refactor
ae151f9 — Peter John 2026-11-04T18:24:17+05:30
docs: phase 2b T2 owns list
5eab4c3 — Peter John 2026-11-04T18:14:29+05:30
docs: phase 2b plan split
567dd39 — Peter John 2026-11-04T18:08:00+05:30
docs: compiler cleanup phase 2b plan
bb462a8 — Peter John 2026-11-04T18:04:41+05:30
Merge compiler cleanup phase 2a
84d23ae — Peter John 2026-11-04T18:04:25+05:30
Compiler cleanup phase 2a: deterministic output, shared walker, generics in one place, plum-host
05b282c — Peter John 2026-11-04T17:50:21+05:30
docs: Elm/Roc-style error reporting for the self-hosted compiler
cc99b67 — Peter John 2026-11-04T17:36:20+05:30
docs: phase 2a T4 owns closure_spec_test
b8d0694 — Peter John 2026-11-04T17:36:17+05:30
docs: self-hosting design and groundwork review plan
a2a00dd — Peter John 2026-11-04T17:33:40+05:30
docs: plan for Io as a built-in primitive with extern methods
2d17b9a — Peter John 2026-11-04T17:14:12+05:30
docs: phase 2a T16 owns host lockfiles
ada2b0a — Peter John 2026-11-04T17:08:16+05:30
docs: phase 2a plan split (rename, generics, host tasks)
f198426 — Peter John 2026-11-04T17:03:00+05:30
docs: compiler cleanup phase 2a plan
8445080 — Peter John 2026-11-04T16:03:20+05:30
Compiler cleanup phase 1: dead code out, small duplicates merged, shared test-support crate
42452f8 — Peter John 2026-11-04T15:48:01+05:30
docs: compiler cleanup phase 1 plan; explicit function generics queued after phase 2
996aea8 — Peter John 2026-11-04T15:36:10+05:30
docs(plans): compiler cleanup plan re-verified on 217e404 (written by another session)
2ba2a03 — Peter John 2026-11-04T15:36:02+05:30
format: blank line after the module line
217e404 — Peter John 2026-11-04T15:26:24+05:30
Input step 3: typed messages for the functional scene; TRMC typing fix
ee3e4e6 — Peter John 2026-11-04T14:56:25+05:30
Input steps 1 and 2: shared Input with keys, onInput on actors
a86fb1c — Peter John 2026-11-04T14:39:29+05:30
Game scenes: methods on types instead of free functions; scene styles doc
18b7b69 — Peter John 2026-11-04T13:47:55+05:30
format: one argument per line for multi-line calls and field lists
7a61c06 — Peter John 2026-11-04T13:39:14+05:30
docs: backlog of planned and open items
68bc715 — Peter John 2026-11-04T13:36:35+05:30
Language restrictions: Io capability, per-field mut, pattern casing, own removed
188c69e — Peter John 2026-11-04T13:30:14+05:30
docs(plans): compiler cleanup and architecture review plan (written by another session)
6203667 — Peter John 2026-11-04T13:09:59+05:30
examples: consolidate 39 files into 25 topical ones (tests unchanged: 408); assets and tools move under games/
3af14d9 — Peter John 2026-11-04T13:00:00+05:30
Remove own: ownership checker, own-only tests and corpus; own_inplace tests become unique_inplace
0f66a6c — Peter John 2026-11-04T12:24:33+05:30
docs: plan example consolidation and games/assets move (T25)
126b62f — Peter John 2026-11-04T11:10:06+05:30
examples: mutable games move to games/imperative (T16), io-style entry points (T13)
cdb6abb — Peter John 2026-11-04T10:44:51+05:30
docs: after FBIP, record merges into an immutable struct with compiler-chosen boxing
87cdfdc — Peter John 2026-11-04T10:41:14+05:30
docs: queue native inline variants before FBIP; FBIP waits for a benchmark
4640b26 — Peter John 2026-11-04T10:22:57+05:30
docs: update/render component names; std imperative folder task
7eb0b59 — Peter John 2026-11-04T10:19:17+05:30
docs: component-style functional game in restrictions T14; decision record updated
ebcd25f — Peter John 2026-11-04T10:10:16+05:30
docs(plans): restrictions T11 benchmarks the three scene implementations against the own-era numbers
279200c — Peter John 2026-11-04T10:05:30+05:30
docs: record the November 2026 language and scene decisions
72f01b5 — Peter John 2026-11-04T10:04:32+05:30
docs(plans): language restrictions: per-field mut instead of mut record; FBIP is the next plan
60b292c — Peter John 2026-11-04T09:50:09+05:30
docs(plans): language restrictions: Io capability instead of io fun
b3aeaba — Peter John 2026-11-04T09:40:55+05:30
plum: --no-fusion and --explain-fusion flags replace the env vars
2c0b727 — Peter John 2026-11-03T23:51:15+05:30
Supercompiler: fusion of pure producer/consumer pairs, uniqueness and cell reuse
5a6af08 — Peter John 2026-11-03T23:38:00+05:30
docs(plans): language restrictions review plan (immutable records + mut record, io effects, pattern casing, fusion before lowering, expression-bodied candidates)
aff71b3 — Peter John 2026-11-03T22:51:52+05:30
Functional scenes at feature parity: Anim, Ui, tagged hit-testing
2060bf0 — Peter John 2026-11-03T21:58:35+05:30
empty_record_embed e2e test: use xs.at(i) so the embedded source parses
9d0ff39 — Peter John 2026-11-03T21:55:51+05:30
Move the pure and functional scene styles into their own folders
d1c02f3 — Peter John 2026-11-03T21:55:51+05:30
codegen_tests: account for closure specialisation copies
53de7e3 — Peter John 2026-11-03T21:43:41+05:30
Pure scene graph on enums: Node record + Kind enum, Custom(actor: Actor)
f5ce2ba — Peter John 2026-11-03T21:20:05+05:30
docs(plans): state/view parity review plan; pure-scene-enums plan notes
58b6f33 — Peter John 2026-11-03T20:51:15+05:30
docs(plans): supercompiler: uniqueness inference stage to test whether own is needed
ad3ec48 — Peter John 2026-11-03T20:37:53+05:30
docs(plans): pure scene enums: Custom(actor: Actor), no Msg; ownership fix task
7aa0d3b — Peter John 2026-11-03T20:34:45+05:30
docs(plans): pure scene enums: game kinds stay records in a union enum
8dead74 — Peter John 2026-11-03T20:34:10+05:30
docs(plans): pure scene graph on enums review plan
f2156fc — Peter John 2026-11-03T20:24:50+05:30
hosts: start the wasmtime GC heap at 64 MiB
8d9b551 — Peter John 2026-11-03T20:22:49+05:30
docs(plans): supercompiler review plan
651acd8 — Peter John 2026-11-03T19:17:08+05:30
Closure specialisation; allocation-free actions; direct scene traversal
5993bb7 — Peter John 2026-11-03T19:09:47+05:30
trmc_test: guard that std List.map stays within 3x of a build with a presized GC heap
1973db0 — Peter John 2026-11-03T19:04:02+05:30
trmc_test: count struct.new in specialised copies too
e04834f — Peter John 2026-11-03T18:37:07+05:30
Unboxed variants, enum init, List -> Slice, std cons List
fa4cd74 — Peter John 2026-11-03T18:28:51+05:30
forms: regression test for for-range over a type with fun* items
614ddf5 — Peter John 2026-11-03T18:02:43+05:30
Tail calls round 2: closure and error-union tail calls, single-pass TRMC, fast dev GC
c576196 — Peter John 2026-11-03T17:45:53+05:30
docs(plans): tail calls round 2 plans; post-tail-call benchmark rows
184c054 — Peter John 2026-11-03T16:59:10+05:30
Tail calls: self tail calls as loops, return_call, tail modulo cons; break depth fix
265296b — Peter John 2026-11-03T16:54:24+05:30
codegen: regression tests for break/continue inside match arms in loops
d169ae7 — Peter John 2026-11-03T16:45:22+05:30
tail calls: wire trmc::rewrite into typedSource; plum-core test dev-deps
861d398 — Peter John 2026-11-03T16:08:41+05:30
tail calls: plan; default FnCall.tail at construction sites; run markTailCalls in typedSource
775bbeb — Peter John 2026-11-03T15:44:05+05:30
Recursive state/view; fix param reassignment codegen; own record docs
95ccbed — Peter John 2026-11-03T15:27:26+05:30
own record: ownership checker, in-place spread codegen, scene on own; state/view Orb Run
748c4d4 — Peter John 2026-11-03T14:50:51+05:30
own: carry isOwn through trait and embed lowering
e16e8d6 — Peter John 2026-11-03T14:42:42+05:30
own: default isOwn/ownSelf at AST construction sites
2aabaea — Peter John 2026-11-03T14:40:50+05:30
docs(plans): own record phase B review and machine plan
fd0d216 — Peter John 2026-11-03T14:21:53+05:30
Pure scene graph, phase A (std/game PureScene, Actions, SceneTree, SceneInput)
59d923d — Peter John 2026-11-03T16:47:41+05:30
Functional-style gaps: typed closures, fn return types, tail calls
c881a9f — Peter John 2026-11-03T15:39:59+05:30
docs(plans): functional-style gaps review plan
3e4d318 — Peter John 2026-11-03T15:31:42+05:30
examples: functional.plum operations as enum methods; loops section
05f8c38 — Peter John 2026-11-03T15:22:34+05:30
refresh-editors: install native binaries as new files
9117837 — Peter John 2026-11-03T15:21:52+05:30
docs(plans): remove outdated and unbuilt plans; fix stale status lines
8c62a9b — Peter John 2026-11-03T15:17:15+05:30
docs(plans): delete shelved enum/union split plan
38ccb88 — Peter John 2026-11-03T15:16:06+05:30
Inline record variants and = match bodies
e369b75 — Peter John 2026-11-03T14:34:52+05:30
docs(plans): inline variants + = match plans; enum/union split shelved
7e14e71 — Peter John 2026-11-03T14:17:10+05:30
Record embedding and override
e465385 — Peter John 2026-11-03T12:10:24+05:30
examples: Orb Run World functions become World methods
f8a1532 — Peter John 2026-11-03T11:52:16+05:30
docs(plans): enum/union split review plan (parked)
fa1a952 — Peter John 2026-11-03T11:41:01+05:30
Record constructors from the header and init; field defaults removed
b8db58f — Peter John 2026-11-03T10:26:25+05:30
Field defaults on struct, record and trait fields
f151e94 — Peter John 2026-11-02T21:47:29+05:30
std/Json: encode/decode via toJson/fromJson; static calls on type parameters
959b318 — Peter John 2026-11-02T20:47:51+05:30
docs(plans): Orb Run scene review plan
9cfafea — Peter John 2026-11-02T20:47:29+05:30
game_scene: keep animating at game over
ab19e82 — Peter John 2026-11-02T20:45:48+05:30
examples: Orb Run on the scene graph (game_scene.plum); README immediate vs scene
b03ab64 — Peter John 2026-11-02T20:32:36+05:30
docs(plans): traits machine plan and run log
ee042db — Peter John 2026-11-02T20:32:04+05:30
vscode grammar: highlight trait
7ae62f5 — Peter John 2026-11-02T20:31:27+05:30
T8: docs and examples
670cb84 — Peter John 2026-11-02T20:31:27+05:30
T7: editor support
aa923a9 — Peter John 2026-11-02T20:24:55+05:30
T10: box-free trait layout (wasm-gc subtyping)
538b1ee — Peter John 2026-11-02T20:19:57+05:30
T10: box-free trait layout (wasm-gc subtyping)
3c9dcee — Peter John 2026-11-02T20:04:16+05:30
T9: Scene on trait Actor
a1704af — Peter John 2026-11-02T19:50:25+05:30
T8: docs and examples
4306b97 — Peter John 2026-11-02T19:49:59+05:30
T5: field access through a trait
add63b7 — Peter John 2026-11-02T19:49:59+05:30
T4: checker trait rules
808db73 — Peter John 2026-11-02T19:49:16+05:30
T6: codegen and run tests
fe4959d — Peter John 2026-11-02T19:47:30+05:30
T4: checker trait rules
ed7f16c — Peter John 2026-11-02T19:46:13+05:30
T5: field access through a trait
818e0d0 — Peter John 2026-11-02T19:44:08+05:30
T7: editor support
f50415c — Peter John 2026-11-02T19:43:04+05:30
T2: trait lowering
d83c36b — Peter John 2026-11-02T19:40:47+05:30
T2: trait lowering
5bb1d4c — Peter John 2026-11-02T19:37:19+05:30
T3: formatter and highlighting
134a034 — Peter John 2026-11-02T19:36:23+05:30
T1: grammar and parser
6b983a7 — Peter John 2026-11-02T19:20:27+05:30
checker: infer field-assignment statements in closure bodies
8805ee9 — Peter John 2026-11-02T18:41:53+05:30
docs(plans): closure field-assignment fix review plan
303db6d — Peter John 2026-11-02T18:37:49+05:30
checker test: cover plum-std/game in the unresolved-infer-vars sweep
532b997 — Peter John 2026-11-02T18:33:22+05:30
Move the game-engine std modules (Game, Scene, Color, Vec2) to plum-std/game; LSP std index is recursive
db32e90 — Peter John 2026-11-02T18:28:00+05:30
README: Scene z-index, sortChildren, culling and the layer recipe
4c5b5ce — Peter John 2026-11-02T18:27:53+05:30
web-test: stress_world fixture (20k y-sorted sprites, culling) and benchmark results
e0be96f — Peter John 2026-11-02T18:24:45+05:30
scene demo: y-sorted, culled crowd of walkers with toFront on click
34c3f06 — Peter John 2026-11-02T18:21:33+05:30
std/Scene: z-index, toFront/toBack, stable in-place sortChildren, and Scene2D-style culling areas
23627d9 — Peter John 2026-11-02T18:18:04+05:30
docs(plans): scene z-index, sortChildren and culling review plan
6d64a1a — Peter John 2026-11-02T17:56:05+05:30
Game bridge: instantiate plum.wasm without WebAssembly.Module.imports (Safari); web-test --browser webkit, --expect-unsupported-webgpu, --no-module-introspection
bcca2f1 — Peter John 2026-11-02T17:42:31+05:30
plum_bridge: render-target textures are premultiplied (unpremultiply on sample, premultiplied clear), bound the bind-group cache; rendertarget fixture covers a translucent target
a2bf62b — Peter John 2026-11-02T17:37:36+05:30
README, benchmark and docs/game.png for the renderer features
f28e296 — Peter John 2026-11-02T17:32:06+05:30
Orb Run: additive orb glow; scene demo: minimap rendered into a texture
bd86de6 — Peter John 2026-11-02T17:31:11+05:30
textureCreate, renderTarget, blendMode (Blend) in std/Game, the bridge and the headless runner; rendertarget fixture; web-test --expect-pixel
93abedf — Peter John 2026-11-02T17:27:08+05:30
plum_bridge: SDF glyph atlas text through the normal batch; text_sizes fixture
2c424c4 — Peter John 2026-11-02T17:25:03+05:30
plum_bridge: HiDPI backing store and GPU device-loss recovery; web-test --dpr and --lose-device
73a13f5 — Peter John 2026-11-02T17:23:10+05:30
plum_bridge: 16 texture slots per draw call (per-vertex slot, switch over 16 bindings)
225328f — Peter John 2026-11-02T17:19:23+05:30
web-test: report GPU draw calls per frame (draws); interleave fixture with 8 generated textures
e3bef5b — Peter John 2026-11-02T17:11:59+05:30
docs(plans): renderer features review plan
1140b98 — Peter John 2026-11-02T17:01:16+05:30
README: browser-only games flow, std/Scene guidance, headless runner, browser check
4f8f99a — Peter John 2026-11-02T17:00:46+05:30
web-test: always the own renderer, --assets passthrough; benchmark outcome note; regenerate docs/game.png
dc07fdf — Peter John 2026-11-02T16:59:41+05:30
plum game: serve the web build on 127.0.0.1 and open the browser; -o writes a static build
2fde91e — Peter John 2026-11-02T16:58:35+05:30
plum-game: drop macroquad, Pixi and the command buffer; headless wasmtime runner, canonical gpu bridge
41368e0 — Peter John 2026-11-02T16:32:19+05:30
web-test README: document phase split
8f2248b — Peter John 2026-11-02T16:32:09+05:30
Add per-frame phase split to web measurement; rewrite renderer benchmark with gpu/cmd/scene matrix
32ce1ab — Peter John 2026-11-02T16:18:53+05:30
Add std/Scene (Plum scene graph), SceneCmd, scene example and stress fixtures
2c0eaf2 — Peter John 2026-11-02T16:17:17+05:30
Add the gpu web renderer: own WebGPU batcher with a command-buffer decoder
f0fb26c — Peter John 2026-11-02T16:17:02+05:30
Merge branch 'superlite/render-mem' into superlite/render-experiments
acaaac5 — Peter John 2026-11-02T16:16:50+05:30
Add Mem linear-memory primitive and GameCmd command-buffer game API
e5298a5 — Peter John 2026-11-02T16:14:58+05:30
docs(plans): record browser-only/WebGPU-only rulings
298c125 — Peter John 2026-11-02T16:11:22+05:30
plum-game: command-buffer decoder, native cmd mode, PLUM_GAME_MEASURE timing
bf83574 — Peter John 2026-11-02T16:07:39+05:30
docs(plans): render experiments spec (batcher, command buffer, Plum scene graph)
1bebbf9 — Peter John 2026-11-02T15:53:20+05:30
Add a PixiJS web renderer (plum game --web --renderer pixi) and a benchmark
9b45c3f — Peter John 2026-11-02T15:39:26+05:30
Report an unclosed delimiter at its opener; hint suggests a bare return body
1ac13cd — Peter John 2026-11-02T15:34:17+05:30
Report parse errors at the offending token with a hint for `()`, in the loader and LSP
a9b50e3 — Peter John 2026-11-02T15:01:35+05:30
docs(README): playwright-rs browser check
ad7c5e8 — Peter John 2026-11-02T15:01:27+05:30
style: cargo fmt
2a4119c — Peter John 2026-11-02T15:01:16+05:30
Add plum-game/web-test: playwright-rs browser check for web game builds
14c8c85 — Peter John 2026-11-02T15:01:04+05:30
Game host: sound (load/play/loop/stop/volume), example music and effects, quick start docs
9389e9f — Peter John 2026-11-02T14:46:44+05:30
Move sprite generator out of the asset dir, reject symlinks escaping the asset root, discard-target test
3ac7d50 — Peter John 2026-11-02T14:42:36+05:30
Add Orb Run example game with generated sprite sheet; generic Games docs
d5a9f81 — Peter John 2026-11-02T14:42:36+05:30
Game host: generic texture/file/circle API, remove KaM decoders and viewer
bee4356 — Peter John 2026-11-02T14:32:15+05:30
Discarding a non-Unit call result is a compile error; add '_ := expr' discard
0ec364b — Peter John 2026-11-02T14:11:51+05:30
docs(plans): game host milestone 1 plan, progress and incidents
f82e1e2 — Peter John 2026-11-02T14:10:32+05:30
T7: incidental files
1163e3e — Peter John 2026-11-02T14:10:32+05:30
T4: native host: Backend, wasmtime binding, macroquad, recorder
908c08d — Peter John 2026-11-02T14:08:35+05:30
T7: incidental files
63a5080 — Peter John 2026-11-02T14:08:35+05:30
T5: web bridge + `plum game` + README
79646b4 — Peter John 2026-11-02T14:04:34+05:30
T5: web bridge + `plum game` + README
f77dbea — Peter John 2026-11-02T14:04:34+05:30
T4: native host: Backend, wasmtime binding, macroquad, recorder
5617070 — Peter John 2026-11-02T14:02:19+05:30
T7: incidental files
8ffa113 — Peter John 2026-11-02T14:02:19+05:30
T5: web bridge + `plum game` + README
da83c16 — Peter John 2026-11-02T13:57:57+05:30
fix(kam): size the minimap colours up front; Array.push returns a new array
b858611 — Peter John 2026-11-02T13:57:47+05:30
T4: native host: Backend, wasmtime binding, macroquad, recorder
43b65ab — Peter John 2026-11-02T13:56:10+05:30
T4: native host: Backend, wasmtime binding, macroquad, recorder
f689ac7 — Peter John 2026-11-02T13:51:37+05:30
T6: KaM map viewer (P1)
8dc69a5 — Peter John 2026-11-02T13:49:37+05:30
T7: incidental files
7cf0f18 — Peter John 2026-11-02T13:49:37+05:30
T1: export fun + Str bridge
1e95168 — Peter John 2026-11-02T13:45:48+05:30
T2: std Game API + import stubs
010dcc3 — Peter John 2026-11-02T13:44:15+05:30
T3: plum-game crate + KaM asset decoders
eb0d128 — Peter John 2026-11-02T13:33:33+05:30
style: cargo fmt --all
ba979cb — Peter John 2026-11-02T13:33:33+05:30
tooling: editor refresh copies queries/syntaxes; rebuild LSP on core/checker changes
5a35689 — Peter John 2026-11-02T12:31:15+05:30
pascal-case-consts: PascalCase constants, always Type.Name
17bcbee — Peter John 2026-11-02T12:01:07+05:30
tooling: indent after an unfinished if/else/while/for/match/test or = header
f392348 — Peter John 2026-11-02T11:57:28+05:30
tooling: LSP offers and auto-imports std namespaces; queries cover struct/record/match
3a89871 — Peter John 2026-11-02T11:51:44+05:30
docs(README): planned performance work
bd87167 — Peter John 2026-11-02T11:45:17+05:30
docs: Buffer stays as the string builder
a6df794 — Peter John 2026-11-02T11:45:01+05:30
feat: zero-copy Str views; remove ByteSlice and []Byte
f60e57a — Peter John 2026-11-02T11:30:15+05:30
feat: packed Array[Byte]; List views via slice(i, j)
e7e7156 — Peter John 2026-11-02T11:25:56+05:30
docs: simplify slices design to List views + zero-copy Str
f0da60c — Peter John 2026-11-02T11:22:40+05:30
docs: slices + List design (Option B, copying sub-slice append, error-union get)
6d21ab6 — Peter John 2026-11-02T10:51:33+05:30
refactor(std): no free functions; every std function is a static
a039616 — Peter John 2026-11-02T10:41:03+05:30
feat: a fun without self is a static; Type.f() and x.f() are checked
afc0334 — Peter John 2026-11-01T23:26:02+05:30
fix: bare generic type name inside its own methods compiles (applyOwnGenerics pre-pass)
3910d54 — Peter John 2026-11-01T23:19:05+05:30
test: restore coverage for 8 behaviors found uncovered after dedupe
a9d88ec — Peter John 2026-11-01T23:13:23+05:30
test: dedupe checker Rust tests (246 -> 61), rejection cases as table tests (146 rows)
e91520f — Peter John 2026-11-01T23:09:45+05:30
test: dedupe codegen Rust tests (152 -> 82); drop unused greetForInterpolationTest
d849deb — Peter John 2026-11-01T23:07:45+05:30
test: dedupe core/cli Rust tests (144 -> 106), table-driven formatter/loader cases
cfed449 — Peter John 2026-11-01T23:05:13+05:30
examples: one file per concept, visitors removed, game_loop added; duplicate Plum tests removed (434 -> 375)
b84196a — Peter John 2026-11-01T22:58:29+05:30
fix: reject == on functions and Unit
7a7fd58 — Peter John 2026-11-01T22:57:09+05:30
feat: Byte struct fields; assert report falls back without toStr; plum test runs only the named files' tests; MapPoint test moved out of std
cf9073a — Peter John 2026-11-01T22:49:06+05:30
perf: Map is an insertion-ordered open-addressing hash table (dense entries + probe index), grows at 75%
69bec11 — Peter John 2026-11-01T22:47:00+05:30
test: struct-of-arrays probe tests from review
609556f — Peter John 2026-11-01T22:44:34+05:30
perf: Array[struct] stored as struct-of-arrays (one native array per leaf), no per-element boxing
36d9946 — Peter John 2026-11-01T22:44:09+05:30
docs: README restructure - one owner per example/rule, types sections reordered
9cc75c2 — Peter John 2026-11-01T22:42:05+05:30
docs: merge duplicated README passages
25dce5c — Peter John 2026-11-01T22:39:21+05:30
docs/test: Array[T] value arrays are unboxed (i64/f64/i32); stale anyref comment fixed
f47709e — Peter John 2026-11-01T22:25:35+05:30
refactor: remove PlumType::TStr; Str is an ordinary named type
872454e — Peter John 2026-11-01T22:20:50+05:30
perf: bytesEqual intrinsic for Str.eq
35ca120 — Peter John 2026-11-01T22:18:05+05:30
refactor: Str + and == are ordinary Plum methods; concat/eq wasm helpers removed
d959708 — Peter John 2026-11-01T22:10:50+05:30
refactor: byteToStr in Plum; Int interpolation via Int.toStr; int_to_string wasm helper removed
3deb646 — Peter John 2026-11-01T22:02:52+05:30
refactor: Bool.parse and Bool.toStr live in primitive Bool; builtin Bool.toStr removed
b58be93 — Peter John 2026-11-01T21:53:58+05:30
docs(plans): progress log through Str/Json/Array follow-ups
1552a6c — Peter John 2026-11-01T21:53:58+05:30
test: Str edge cases from final review
142a4b5 — Peter John 2026-11-01T21:48:09+05:30
perf: Str wraps an exact-length []Byte directly (was Str{Buffer{arr,len}})
bfc8f08 — Peter John 2026-11-01T21:42:35+05:30
perf: Str methods linear loops; plain-string replace/replaceAll/search/deburr; drop regex stubs
dc1369f — Peter John 2026-11-01T21:39:34+05:30
perf: Json parser/escaper loops instead of per-char recursion; parseString returns Str
78eed27 — Peter John 2026-11-01T21:38:06+05:30
refactor: real CheckCtx field for primitive generics
cb2b505 — Peter John 2026-11-01T21:34:20+05:30
feat: annotated local declarations (name: Type := value)
3c73b0b — Peter John 2026-11-01T21:26:50+05:30
feat: Array[T] is a generic primitive, not a fake single-variant enum; legacy exemption removed
305282b — Peter John 2026-11-01T21:09:49+05:30
docs(plans): union enums Phase B done
4659312 — Peter John 2026-11-01T21:08:17+05:30
fix: member values fall back to their enum's methods
b61c94e — Peter John 2026-11-01T21:03:49+05:30
docs: dop_visitor header describes record members
fcb3865 — Peter John 2026-11-01T21:01:26+05:30
T9: drop Json legacy exemption
748850d — Peter John 2026-11-01T21:01:25+05:30
T9: Json + README
acc2f1f — Peter John 2026-11-01T20:55:22+05:30
fix: exhaustiveness through union member sub-patterns
401e713 — Peter John 2026-11-01T20:52:26+05:30
T8: migrate inline payload variants to record members; legacy syntax errors on
a1aafdc — Peter John 2026-11-01T20:48:14+05:30
T7 review: Bool is a builtin union member; unions + try/for/test regression tests
6580245 — Peter John 2026-11-01T20:41:46+05:30
T7: checker unions.rs (restorePlan, optional/err member wrap)
77038a2 — Peter John 2026-11-01T20:41:40+05:30
T7: pipeline wiring + e2e
ef6dc10 — Peter John 2026-11-01T20:34:39+05:30
T5 coerce test + T6 review fixes: narrowing pending scoped per && operand and per item, for-clause bind shadows
e9976f3 — Peter John 2026-11-01T20:34:14+05:30
T5: checker auto-dispatch
348b356 — Peter John 2026-11-01T20:32:18+05:30
fix: parser union tests use raw parse
d12d5e1 — Peter John 2026-11-01T20:31:54+05:30
T4/T6/T3-review: granted-file follow-ups (checker fixture, union_lower mod, review tests)
e02a80a — Peter John 2026-11-01T20:31:34+05:30
T6: applyPlan rewrite
8a21edd — Peter John 2026-11-01T20:31:34+05:30
T4: checker patterns + narrowing
7df4164 — Peter John 2026-11-01T18:28:00+05:30
T3: checker coercions
9568089 — Peter John 2026-11-01T18:24:18+05:30
T2: parseSource resolves union members
1ecfcf4 — Peter John 2026-11-01T18:24:09+05:30
T2: resolve + plan recorder
4b2d950 — Peter John 2026-11-01T18:21:30+05:30
T1: grammar + parser
019d1f0 — Peter John 2026-11-01T18:19:00+05:30
docs(plans): union enums Phase B machine plan
9336364 — Peter John 2026-11-01T17:39:18+05:30
docs(plans): struct/record Phase A done
4b9435d — Peter John 2026-11-01T17:37:29+05:30
T1: core syntax + lowering
141b67a — Peter John 2026-11-01T17:36:38+05:30
T3: record migration
8c874f6 — Peter John 2026-11-01T17:35:46+05:30
fix: lsp keywords and README snippet for struct/record
0c55384 — Peter John 2026-11-01T17:35:19+05:30
T2: tooling queries
2a01e74 — Peter John 2026-11-01T17:33:29+05:30
T1: core syntax + lowering
be00b92 — Peter John 2026-11-01T17:31:34+05:30
T4: README
c56df83 — Peter John 2026-11-01T17:31:34+05:30
docs(plans): struct/record + union enums review plan, Phase A machine plan
b960153 — Peter John 2026-11-01T17:15:42+05:30
docs(plans): review residuals done
69aa8c3 — Peter John 2026-11-01T17:14:13+05:30
fix: recovered call failures don't reposition errors; const-shaped patterns on non-enums rejected
8de89b9 — Peter John 2026-11-01T17:07:32+05:30
fix: digit type and variant names (E1, A1) parse
69225da — Peter John 2026-11-01T17:06:45+05:30
fix: checker errors point at the failing call, not the fn header
6270408 — Peter John 2026-11-01T17:04:10+05:30
fix: checker reports unknown methods on static consts
cfca60a — Peter John 2026-11-01T17:03:41+05:30
fix: name the file in positioned type errors
1a37013 — Peter John 2026-11-01T17:02:25+05:30
fix: positioned integer-literal overflow error
150ffe9 — Peter John 2026-11-01T16:47:05+05:30
docs(plans): map literal done — progress, rulings, incidents
5887f56 — Peter John 2026-11-01T16:43:44+05:30
T1: review — assert desugared Pair call carries the pair's position
00caf49 — Peter John 2026-11-01T16:43:14+05:30
T3: Map("a" => 1) examples + README
3f6f3f5 — Peter John 2026-11-01T16:41:53+05:30
T1: pair syntax + desugar — `k => v` is sugar for Pair(k, v), any key expression
c3ccbc9 — Peter John 2026-11-01T16:39:48+05:30
T2: review — negative Int keys + duplicates regression test
8ef7e9a — Peter John 2026-11-01T16:38:57+05:30
T2: Map.init variadic
11faab6 — Peter John 2026-11-01T16:38:57+05:30
docs(plans): map literal constructor plan
b0d445d — Peter John 2026-11-01T16:31:14+05:30
docs(plans): review residuals plan (approved)
287a0ad — Peter John 2026-11-01T16:23:21+05:30
fix: optional reassign/field-store coercion, reject optional==value, keep literal-overflow errors through the loader merge
cdcccba — Peter John 2026-11-01T16:04:55+05:30
feat: pattern if (if/else if/while/inline with Pattern := expr, guards)
d60eb64 — Peter John 2026-11-01T15:46:48+05:30
docs(plans): pattern if
429d331 — Peter John 2026-11-01T15:46:37+05:30
chore: remove .recall session history
c8e9c42 — Peter John 2026-10-30T19:20:30+05:30
docs: refresh README, plans and example descriptions for current language
b911c78 — Peter John 2026-10-27T20:03:29+05:30
feat!: optionals (null, ?:, if/while binding), try prefix replaces postfix ?, literal overflow error
bb358d8 — Peter John 2026-10-27T18:10:58+05:30
docs(plans): optionals (null, ?:, if/while binding), try prefix, literal overflow fix
1c1bfe8 — Peter John 2026-10-27T18:10:16+05:30
feat!: primitive namespaces and built-in APIs, associated consts and statics, Number removed
bc54190 — Peter John 2026-10-27T17:49:04+05:30
docs(plans): primitive namespaces/built-in APIs, associated consts, Number removed
ff759b0 — Peter John 2026-10-27T17:48:08+05:30
chore: audit docs, comments and editor support against the current language
6463f46 — Peter John 2026-10-27T12:20:32+05:30
fix: catch return error.X instead of a special catch-default rule; unique catch binders
ed902fe — Peter John 2026-10-27T12:08:07+05:30
feat!: error.Name values, error sets (error X = A | B, X!T), fail removed
f4469d9 — Peter John 2026-10-27T11:44:39+05:30
docs(plans): error-sets plan approved
d03136b — Peter John 2026-10-27T11:17:47+05:30
docs(plans): Zig error values/sets — error.Name, return, error X = A | B, X!T
4b3b2c3 — Peter John 2026-10-27T10:39:59+05:30
feat!: inline if expression replaces the ternary; postfix ? binds tight
0dc0e16 — Peter John 2026-10-27T00:48:57+05:30
fix: error sets don't split GC types; match arms must be in the error set
745232b — Peter John 2026-10-27T00:41:32+05:30
fix(errors): fail Missing is the absent value in a T? slot; nested error unions as success values
1636946 — Peter John 2026-10-27T00:23:30+05:30
feat!: Zig-style errors, step E4: migrate std/examples/docs/tests, delete Try/tag unions/payload tags/??/? |e|; T? is !T [Missing]; fail/? file path in AST
a8f2482 — Peter John 2026-10-26T23:46:13+05:30
feat(codegen): Zig-style error unions: !T multi-value lowering, fail/?/!/catch/?., boxed heap slots, nullable interop
5b4ec0a — Peter John 2026-10-26T22:05:21+05:30
feat(checker): Zig-style error unions: !T sets, fail/catch/?/!, error-set inference; unambiguous pinned-set syntax
405c23f — Peter John 2026-10-26T21:52:27+05:30
feat!: lowercase true/false bool literals; True/False removed
0240835 — Peter John 2026-10-26T21:44:49+05:30
feat(syntax): Zig-style errors grammar: !T, postfix !, catch, fail; remove legacy syntax hints
958912f — Peter John 2026-10-26T21:44:47+05:30
docs(plans): task B — lowercase true/false literals
8f886ad — Peter John 2026-10-26T21:37:55+05:30
docs(plans): no hints for obsolete syntax; migrate everything in E4
7b55840 — Peter John 2026-10-26T21:32:19+05:30
feat!: every for is 'for x := range src'; Int.until/to/downTo replace global range
1d27d50 — Peter John 2026-10-26T21:25:42+05:30
docs(plans): pre-task R uses Go-style for x := range src
0aa74fb — Peter John 2026-10-26T21:20:45+05:30
docs(editors): iteration cheat sheet, value enum docs; highlight/LSP for for/extend/Seq
06dbe56 — Peter John 2026-10-26T21:20:19+05:30
docs(plans): pre-task R — n.times()/a.until(b)/to/downTo replace range
b0ca30b — Peter John 2026-10-26T21:14:16+05:30
docs(plans): Zig-style errors — ?, !, catch, fail; no tag unions or Try
8e2c15f — Peter John 2026-10-26T21:08:46+05:30
feat!: typed for lowering, fun* methods, entries(), extend, Seq[T]
378ab1a — Peter John 2026-10-26T20:31:02+05:30
refactor(std): drop closure iteration methods from List and Map
72527fb — Peter John 2026-10-26T20:20:49+05:30
refactor: move range into std/Iter, delete std/Range
ec115b0 — Peter John 2026-10-26T18:56:27+05:30
fix: stateful host RNG; evaluate assert operands once in test blocks
fa26fde — Peter John 2026-10-26T18:47:39+05:30
fix(editors): highlight value/extern in VS Code; complete value in LSP
966bdab — Peter John 2026-10-26T16:22:27+05:30
docs(plans): zig-generics build log
2dd6150 — Peter John 2026-10-26T16:13:11+05:30
feat!: fun* iterators with *T and yield; closure-free chaining; range in std
523050a — Peter John 2026-10-26T15:52:51+05:30
docs(plans): T9 addendum — *T sequence params and closure-free chaining
094fd48 — Peter John 2026-10-26T15:41:36+05:30
docs(plans): T9 fun* iterators with *T and yield; range moves to std
3ca3f26 — Peter John 2026-10-26T15:41:35+05:30
fix: branch review fixes for generics, forms and auto-wrap
d6ce6f6 — Peter John 2026-10-26T15:17:15+05:30
fix(lsp): handle block param types in local var inference
081a24a — Peter John 2026-10-26T15:17:02+05:30
feat: inline fun for-forms with block params; std Iter forms; guard fix
f359218 — Peter John 2026-10-26T15:00:09+05:30
feat: for <binders> := <source>, <clauses> with plain iteration
80110ec — Peter John 2026-10-26T14:46:23+05:30
test(loader): fix duplicate const fixtures
54233aa — Peter John 2026-10-26T14:44:33+05:30
feat(loader): clear error for duplicate top-level constants with both locations
85ed0b1 — Peter John 2026-10-26T14:41:12+05:30
fix: fn-field nested call args, heap-valued consts, value-enum nested patterns and field assign through heap fields
5308f5f — Peter John 2026-10-26T14:38:28+05:30
docs(plans): T8 = for x := form(...) iteration forms + inline user forms
8d065f8 — Peter John 2026-10-26T14:29:07+05:30
feat: value enum — single-constructor, copy-semantics value types
99f93a2 — Peter John 2026-10-26T14:25:58+05:30
docs(plans): T8 on hold pending user approval
1de3be3 — Peter John 2026-10-26T14:09:33+05:30
feat(std): Array.filled, Grid, Set, Deque, Heap, seeded Random; typed consts
12fd11a — Peter John 2026-10-26T14:00:20+05:30
feat: T ! [A, B] error sugar, T? nullable sugar, auto Ok/Err wrapping
743bd76 — Peter John 2026-10-26T13:53:37+05:30
docs(plans): queue T8 near-free closures (inline non-escaping literals)
b952f81 — Peter John 2026-10-26T13:41:57+05:30
feat: fn-typed enum fields (record of functions); closures capture called fn params
2485578 — Peter John 2026-10-26T12:19:51+05:30
docs(plans): T7 adds T ! [A, B] error sugar with auto Ok/Err wrapping
6929b8b — Peter John 2026-10-26T12:14:31+05:30
docs(plans): queue T7 nullable sugar T? = Try[T, [Missing]]
ad8b044 — Peter John 2026-10-26T12:13:42+05:30
feat: duck-typed operators; README for Zig-style generics; results
774e6d8 — Peter John 2026-10-26T12:11:35+05:30
docs(plans): value types are a single-constructor value enum, not a struct keyword
f1d676e — Peter John 2026-10-26T12:04:14+05:30
feat!: remove traits, generic bounds and the boxed/typeId runtime
0c02603 — Peter John 2026-10-26T11:48:56+05:30
fix(checker): strict missing methods on builtin receivers; exact call sites
3f7586e — Peter John 2026-10-26T11:44:55+05:30
feat(codegen)!: one compiled copy per generic instantiation, unboxed
a261b90 — Peter John 2026-10-26T11:15:58+05:30
feat(checker): duck-typed generics checked per instantiation
ac67871 — Peter John 2026-10-26T11:04:01+05:30
feat: narrow Int to i32 at extern boundaries; remove Bool.plum
b7a5ee8 — Peter John 2026-10-26T10:54:33+05:30
docs(plans): zig-generics plan approved to run
1164924 — Peter John 2026-10-26T10:52:35+05:30
docs(plans): fix wasm i32 wording in game plan
74c9190 — Peter John 2026-10-26T10:52:24+05:30
docs(plans): keep Int/Float as i64/f64; narrow Int to i32 at extern boundaries
34b61a0 — Peter John 2026-10-26T10:45:12+05:30
docs(plans): game plan becomes browser-first simplified KaM port
bbcbddc — Peter John 2026-10-26T10:38:51+05:30
docs(plans): native lowercase wasm types only (i32/i64/f32/f64/bool), Bytes for packed storage
d115ac5 — Peter John 2026-10-26T10:34:33+05:30
docs(plans): mark game plan T1/T4 superseded
bf5c846 — Peter John 2026-10-26T10:34:24+05:30
docs(plans): draft Zig-style generics + sized numbers plan; link from game plan
09f6b34 — Peter John 2026-10-26T10:24:18+05:30
docs(plans): draft game engine plan (macroquad host, sized numbers, structs, SIMD)
b3bb7b5 — Peter John 2026-10-26T10:24:18+05:30
feat!: Bool is a built-in i32 primitive
2dcaa4b — Peter John 2026-10-26T10:10:57+05:30
docs(plans): erased-generics build log
eb7b5d4 — Peter John 2026-10-26T10:10:01+05:30
test: permanent erased-generics probes; drop stale monomorphization comments
16cd722 — Peter John 2026-10-26T10:06:07+05:30
docs: how generics compile (erasure, boxing at edges, dyn traits); results
7d25f15 — Peter John 2026-10-26T10:03:07+05:30
refactor!: delete the monomorphizer; List on Array; reject bare generic types
55dceee — Peter John 2026-10-25T22:50:52+05:30
feat(codegen)!: compile erased generics; stop monomorphizing
6c41056 — Peter John 2026-10-25T19:30:30+05:30
feat: trait names as types with typeId-header dyn dispatch
9fbf75a — Peter John 2026-10-25T19:14:57+05:30
fix(checker): reject generic T returned as a concrete type; resolve typedSource vars
eaf49cb — Peter John 2026-10-25T19:10:46+05:30
feat(checker): check generics structurally on the original source; add typedSource
dd5f31d — Peter John 2026-10-25T18:54:12+05:30
feat(checker): structural TApp/TParam types with substitute/instantiate
cf9e06f — Peter John 2026-10-25T17:43:07+05:30
fix(checker): enforce enum variant exhaustiveness in match (recursive through payloads)
b5abd9a — Peter John 2026-10-25T17:31:17+05:30
docs(readme): handling errors with match, crashing and safe navigation sections
45a1469 — Peter John 2026-10-25T17:31:17+05:30
fix(checker): enforce tag exhaustiveness inside variant payloads (Err(Tag) arms)
09d918f — Peter John 2026-10-25T17:27:30+05:30
docs(examples): multi-branch match error handling in error_propagation
4ac8d64 — Peter John 2026-10-25T17:25:35+05:30
docs(examples): replace Option-like example enums with Parcel/Reading
811569c — Peter John 2026-10-25T16:57:29+05:30
docs(plans): Roc-style error handling design, plan and build log
d94bce0 — Peter John 2026-10-25T16:57:08+05:30
fix(codegen): Try/?? wording in error messages; add numeric/deep/state probes
6e346ab — Peter John 2026-10-25T16:50:16+05:30
chore: drop stale Option/Result references from comments and tests
f0eddab — Peter John 2026-10-25T16:45:02+05:30
fix(checker): resolve Ok/Err args from the expected type; tags win over same-named variants
82b552d — Peter John 2026-10-25T16:30:41+05:30
docs(examples): migrate examples, LSP, editor syntax and README to Try + tags
a3ab768 — Peter John 2026-10-25T16:25:50+05:30
fix(monomorphize): resolve a closure's own generic from cb's declared return
dc3b104 — Peter John 2026-10-25T16:22:25+05:30
fix(syntax): elvis binds tighter than comparison; accept _ closure params
45dada4 — Peter John 2026-10-25T16:17:50+05:30
feat(std)!: replace Option/Result with Try and structural error tags
0f2502c — Peter John 2026-10-25T16:08:43+05:30
feat(hosts): link plum::crash host import (prints to stderr, then traps)
8336a15 — Peter John 2026-10-25T16:08:35+05:30
fix(codegen): crash import detection ignores string literals; add tag probe tests
29ad747 — Peter John 2026-10-25T16:06:45+05:30
feat(codegen): $Tag runtime representation, tag patterns, ? rewrap, crash import
f9467e7 — Peter John 2026-10-25T16:02:16+05:30
fix(checker): refutable payload patterns don't cover a tag in exhaustiveness
9c5f64a — Peter John 2026-10-25T16:00:23+05:30
feat(checker): structural tag-union types and Roc-style ? checking
dfe35c7 — Peter John 2026-10-25T15:56:39+05:30
feat(syntax): tag-union types, ?? default, crash stmt, ? |e| error mapping
a473b02 — Peter John 2026-09-18T11:05:35+05:30
build: add release binary tooling (cross, R2 upload, versioned README links)
6fc9e6d — Peter John 2026-09-11T19:23:58+05:30
feat: add plum-lsp language server with diagnostics and completion
ce5dd16 — Peter John 2026-09-08T19:12:41+05:30
docs(examples): drop unnecessary braces from numeric literal method calls
43e5250 — Peter John 2026-09-08T15:22:00+05:30
feat: add Groovy/Kotlin-style safe navigation operator (?.)
b5f5be1 — Peter John 2026-09-08T15:03:28+05:30
feat(cli): fix stale Helix grammar path and embed a precompiled grammar .so
2236941 — Peter John 2026-09-08T14:18:04+05:30
docs: add plum CLI install instructions to README
900c685 — Peter John 2026-09-08T13:24:28+05:30
docs(editor): update README and VSCode syntax for type removal + new operators
ec5336f — Peter John 2026-09-08T13:13:12+05:30
feat(lang): add elvis `?:` operator
af1776b — Peter John 2026-09-08T12:57:14+05:30
feat(lang): add postfix `?` error-propagation operator
5f2f962 — Peter John 2026-09-08T12:01:22+05:30
feat(lang): remove type/class entirely, enum is the only declaration form
6e5d12f — Peter John 2026-09-07T15:28:24+05:30
fix(http): rebuild emptyHeaders on Map's real init(), not its old fields
13507fa — Peter John 2026-09-07T15:28:19+05:30
feat(class/enum): mutable fields + Gleam-style spread update
f13d4c2 — Peter John 2026-09-07T10:30:59+05:30
fix: repair binary literals corrupted in plum-examples/basics.plum
984357b — Peter John 2026-09-05T21:35:44+05:30
rename folders
ca5fd6f — Peter John 2026-09-05T21:28:50+05:30
feat(number): add Number enum, migrate Int/Float methods, fix Float interpolation
b1c3ec8 — Peter John 2026-09-05T15:21:03+05:30
improve enum
29313cb — Peter John 2026-09-05T13:28:55+05:30
refactor(stdlib): move libs/std to top-level plum-std, gate Int/Float/Str imports
61ab95d — Peter John 2026-09-04T21:39:53+05:30
docs: trim README to a concise language feature tour
b548244 — Peter John 2026-09-04T21:34:47+05:30
fix(format): preserve blank lines in class/enum bodies, closure body spacing
287b97c — Peter John 2026-09-04T21:23:50+05:30
feat(plum): reserve brackets for generics, enum variant payloads use parens
5e995b7 — Peter John 2026-09-04T21:13:18+05:30
docs: reformat README code blocks to match real plum format output
cc77764 — Peter John 2026-09-04T20:55:50+05:30
docs: update README for Bool/Str import-gating and stdlib additions
98bcd99 — Peter John 2026-09-04T20:50:43+05:30
chore: fix stale Bool/Str doc comments and test fixture breakage
a968899 — Peter John 2026-09-04T20:46:39+05:30
remove website
c0bab65 — Peter John 2026-09-04T20:45:40+05:30
remove test
b79d463 — Peter John 2026-09-04T20:44:49+05:30
remove docs
73b5e55 — Peter John 2026-09-04T20:39:27+05:30
feat(plum): make Bool an ordinary import-gated enum, no hardcoded prelude
b7071c9 — Peter John 2026-09-04T19:42:10+05:30
refactor(libs/std): rename files to match their primary class name
73e4ff1 — Peter John 2026-09-04T19:31:38+05:30
feat(plum): make Str a real class instead of a special-cased primitive
ea9b8c1 — Peter John 2026-09-04T17:05:20+05:30
feat(plum): add generic Array[T] primitive, rewrite Map as a real hash table
8de13fd — Peter John 2026-09-04T15:54:32+05:30
feat(plum-core): enforce imports-first, tests-grouped-last file ordering
3e580db — Peter John 2026-09-04T15:54:25+05:30
feat(examples): convert dop_visitor to enum syntax, add OOP trait counterpart
9682cec — Peter John 2026-09-04T15:12:26+05:30
feat(plum-cli): colored test output, actual/expected values on failure
a9a0147 — Peter John 2026-09-04T14:56:44+05:30
feat(plum): remove expect, unify on assert, Spock-style test tree output
3a2119e — Peter John 2026-09-04T14:06:41+05:30
feat(plum): named enum variant fields, self-methods on enums/classes, inline match formatting
a577529 — Peter John 2026-09-03T20:39:58+05:30
feat(plum): let match destructure a plain class like an enum variant
710607b — Peter John 2026-09-03T20:20:17+05:30
refactor(libs/std): move Duration's unit constructors to static methods
bf629a2 — Peter John 2026-09-03T19:47:08+05:30
feat(plum): trait conformance checking, Stringable->ToStr, finish str.plum
4a2384c — Peter John 2026-09-03T19:08:24+05:30
feat(plum): class init() constructors, bare-variant enum sugar, match guards
04d2270 — Peter John 2026-09-03T15:31:57+05:30
fix(tree-sitter-plum): a ternary as a closure's inline body now parses correctly
accb2b1 — Peter John 2026-09-03T14:49:22+05:30
fix(plum-checker): substitute a generic method's own extra generics in its body; ship Map.map
5a9e763 — Peter John 2026-09-03T14:25:26+05:30
feat(libs/std): ship List.chunk/partition; add List.toStr; root-cause the last self-nesting bug
cde99bd — Peter John 2026-09-03T14:06:30+05:30
fix(plum-checker): stop the self-nesting generic-method stack overflow
c4ee6ec — Peter John 2026-09-02T21:21:38+05:30
test(libs/std): add Map test coverage; document two new compiler gaps found attempting Map.map
2ec05c8 — Peter John 2026-09-02T19:57:50+05:30
feat(libs/std): complete os/time/uuid, add Option/Result generics; fix several monomorphization/parser bugs
a43f3af — Peter John 2026-08-29T17:12:19+05:30
improvements
a271f34 — Peter John 2026-08-27T19:20:16+05:30
improvements
ecd2178 — Peter John 2026-08-10T13:23:00+05:30
docs: update README known-gaps and close out wasm-gc migration plan
02b3582 — Peter John 2026-08-10T13:20:39+05:30
feat(libs/std): implement List's add/set/removeAt/remove/clear/reverse on wasm-gc
0e39618 — Peter John 2026-08-10T12:51:35+05:30
feat(plum-wasm-codegen): migrate structs, enums, strings, and closures to wasm-gc
5ef4579 — Peter John 2026-08-10T11:10:35+05:30
feat(plum-wasm-codegen): add wasm-gc type-section emitter (unconsumed) and GC-enabled test Engine
408b9c0 — Peter John 2026-08-10T10:25:26+05:30
test: add scripts/test-examples.sh, an end-to-end examples smoke test
ab7ef72 — Peter John 2026-08-10T10:23:59+05:30
fix(tooling): update VSCode TextMate grammar for fun keyword, drop dead <Receiver> pattern
c5fd1a5 — Peter John 2026-08-10T10:19:06+05:30
fix(examples): remove basics.plum's unused, nonexistent 'std/io' import
3d6f280 — Peter John 2026-08-09T22:04:58+05:30
style: rename all Rust function/method names from snake_case to camelCase
508207a — Peter John 2026-08-09T21:58:44+05:30
style(libs/std): rename camelCase params to snake_case (os.plum, http.plum)
7056de2 — Peter John 2026-08-09T21:15:39+05:30
test(plum-checker): fix remaining <Receiver>-syntax test fixtures missed in the sweep
41e0859 — Peter John 2026-08-09T21:12:47+05:30
docs: update methods section for nested-only method declaration syntax
58b01fc — Peter John 2026-08-09T21:11:35+05:30
feat(libs/std): migrate remaining stdlib methods off <Receiver> syntax
805d96d — Peter John 2026-08-09T21:07:14+05:30
test: migrate plum-checker/plum-wasm-codegen fixtures off <Receiver> syntax
2b8194c — Peter John 2026-08-09T21:03:00+05:30
refactor(plum-core): drop dead receiver-vs-return-type disambiguation from parse_fn
6b5d9db — Peter John 2026-08-09T21:01:06+05:30
feat(grammar): remove top-level <Receiver> method annotation syntax
d2640d2 — Peter John 2026-08-09T19:04:08+05:30
feat(plum-wasm-codegen): compile enum discriminant-value construction and field access
4fda634 — Peter John 2026-08-09T18:54:49+05:30
feat(plum-checker): validate enum discriminant values, enable field access on them
fbfbd7b — Peter John 2026-08-09T18:47:56+05:30
feat(plum-core): parse enum discriminant-value declarations
8554271 — Peter John 2026-08-09T18:45:49+05:30
feat(grammar): add enum discriminant-value declarations
9d5550e — Peter John 2026-08-09T18:44:04+05:30
test: confirm nested type/enum methods behave identically to top-level ones
4df1312 — Peter John 2026-08-09T18:38:33+05:30
feat(plum-core): lift nested type/enum methods into top-level Fn items
f047082 — Peter John 2026-08-09T18:37:28+05:30
feat(grammar): allow methods nested inside type/enum bodies
b48d3a3 — Peter John 2026-08-09T18:35:29+05:30
test: migrate embedded plum fixtures to `fun` keyword syntax
0fe3528 — Peter John 2026-08-09T18:35:27+05:30
feat(libs/std,examples,test): migrate to `fun`-prefixed function syntax
c06ddba — Peter John 2026-08-09T18:35:20+05:30
feat(grammar): add `fun` keyword to function/method declarations
22e190c — Peter John 2026-07-25T16:06:12+05:30
docs: add design spec for wasm-gc migration in codegen
3971d41 — Peter John 2026-07-25T13:26:27+05:30
remove stuff
608d862 — Peter John 2026-07-24T12:38:06+05:30
feat(grammar): add subject-less guard-clause match arms
9b6a86a — Peter John 2026-07-24T12:31:23+05:30
docs: add implementation plan for nested method declarations
cb48db9 — Peter John 2026-07-24T12:30:18+05:30
docs: add implementation plan for enum discriminant values
1bc8c44 — Peter John 2026-07-24T12:26:46+05:30
docs: add implementation plan for guard-clause match arms
c664d4f — Peter John 2026-07-24T12:22:08+05:30
docs: add design specs for enum discriminant values and nested methods
c3f68dd — Peter John 2026-07-24T12:05:52+05:30
docs: add design spec for guard-clause match arms
0bb6882 — Peter John 2026-07-24T11:49:51+05:30
feat(examples): migrate types.plum, functions.plum, match.plum generics to bracket syntax
f92e171 — Peter John 2026-07-24T11:45:33+05:30
feat(libs/std): migrate stdlib generics to bracket syntax
d958617 — Peter John 2026-07-24T11:41:06+05:30
test(plum-wasm-codegen): migrate test fixtures to bracket generics syntax
30ae945 — Peter John 2026-07-24T11:36:01+05:30
test(plum-checker): migrate test fixtures to bracket generics syntax
a2eaba8 — Peter John 2026-07-24T11:27:40+05:30
feat(plum-checker,plum-wasm-codegen): recognize uppercase generic params, use Type instead of ReturnType
0d64aff — Peter John 2026-07-24T11:23:34+05:30
fix(plum-core): derive trait method return type from type-kind child, not the wrong 'returns' field
2ccae10 — Peter John 2026-07-24T11:18:44+05:30
fix(plum-core): stop return type from being mistaken for method receiver
be16cd8 — Peter John 2026-07-24T11:09:03+05:30
feat(plum-core): parse bracket generics, drop ReturnType in favor of Type
8f91d27 — Peter John 2026-07-24T11:03:43+05:30
feat(grammar): migrate generics to bracket syntax with uppercase letters
13fd165 — Peter John 2026-07-24T10:46:43+05:30
docs: add implementation plan for bracket generics syntax migration
4079c0e — Peter John 2026-07-24T10:27:49+05:30
docs: add design spec for bracket generics syntax migration
18c860c — Peter John 2026-07-24T07:42:28+05:30
docs: add implementation plan for wiring up List's methods
abb8959 — Peter John 2026-07-24T07:39:14+05:30
docs: note List() explicit-fields fix in list-methods spec
0ec0f63 — Peter John 2026-07-24T07:36:45+05:30
docs: add design spec for wiring up List's remaining methods
5a9d357 — Peter John 2026-07-23T21:32:31+05:30
docs: cross-file import resolution is no longer a known gap
4670182 — Peter John 2026-07-23T21:30:47+05:30
fix(libs/std): list.plum imports std/option instead of relying on unresolved cross-file references
1a9a65c — Peter John 2026-07-23T21:27:56+05:30
feat(plum-cli): resolve import via --lib-path using the new loader
8a7f6ad — Peter John 2026-07-23T21:23:15+05:30
feat(plum-core): add load_and_merge cross-file import loader
2172082 — Peter John 2026-07-23T21:09:28+05:30
docs: correct cross-file-imports spec scope; add implementation plan
6dfb06a — Peter John 2026-07-23T20:40:37+05:30
docs: add design spec for cross-file import resolution
8b7c249 — Peter John 2026-07-23T20:10:28+05:30
docs: variadic parameters are no longer a known gap
da1c377 — Peter John 2026-07-23T20:06:30+05:30
feat(plum-wasm-codegen): compile for-v-in-variadic-param iteration
d6b1f95 — Peter John 2026-07-23T19:57:54+05:30
feat(plum-wasm-codegen): compile variadic call sites into a length-prefixed buffer
4a494a8 — Peter John 2026-07-23T19:52:22+05:30
feat(plum-checker): type-check variadic call arity and for-in-variadic iteration
d0981fb — Peter John 2026-07-23T19:47:56+05:30
feat(plum-checker,plum-wasm-codegen): add PlumType::TVariadic representation
515004d — Peter John 2026-07-23T19:45:10+05:30
docs: add implementation plan for variadic parameters
64b1d3c — Peter John 2026-07-23T19:33:45+05:30
docs: add design spec for variadic parameters
7aa55a8 — Peter John 2026-07-23T18:59:50+05:30
docs: field/attribute assignment is no longer a known gap
01f9be3 — Peter John 2026-07-23T18:56:23+05:30
feat(plum-wasm-codegen): compile obj.field = value assignment targets
47abc49 — Peter John 2026-07-23T18:50:33+05:30
feat(plum-checker): type-check obj.field assignment targets
3d79c9f — Peter John 2026-07-23T18:45:42+05:30
feat(plum-core): parse obj.field assignment targets into AssignTarget::Field
391c8e4 — Peter John 2026-07-23T18:41:41+05:30
feat(tree-sitter-plum): add field_target rule for obj.field = value assignment
0750af7 — Peter John 2026-07-23T18:10:53+05:30
docs: add implementation plan for field/attribute assignment targets
aa52629 — Peter John 2026-07-23T18:04:17+05:30
docs: add design spec for field/attribute assignment targets
35af6cf — Peter John 2026-07-23T17:55:25+05:30
feat: close closures/match/interpolation known gaps in codegen
ab4f826 — Peter John 2026-07-21T10:53:09+05:30
fix editor
8eeb785 — Peter John 2026-07-21T10:20:44+05:30
fix editor
141de54 — Peter John 2026-07-21T10:13:36+05:30
fix
09bd581 — Peter John 2026-07-21T02:00:46+05:30
docs: note nested-closure limitation in Known Gaps
6341c74 — Peter John 2026-07-21T00:12:38+05:30
docs+test: closures complete; add example and update README
4ba0db3 — Peter John 2026-07-20T22:22:15+05:30
feat(plum-wasm-codegen): compile closure literals and closure calls via a function table
db00bd9 — Peter John 2026-07-20T21:52:28+05:30
feat(plum-wasm-codegen): add wasm function table + element section support
d1ea2ff — Peter John 2026-07-20T21:46:46+05:30
feat(plum-checker): infer closure literal types; type-check fn(...)-typed params
d7e5ff4 — Peter John 2026-07-20T21:40:35+05:30
feat(plum-core): parse closure literals and fn(...) type annotations
906b92e — Peter John 2026-07-20T21:29:37+05:30
feat(tree-sitter-plum): wire closure literals into expression position; add fn(...) type syntax
038eebd — Peter John 2026-07-20T21:25:13+05:30
docs: add implementation plan for closures
83ce3b8 — Peter John 2026-07-20T21:19:28+05:30
docs: scope closures spec to ordinary-argument call syntax, not trailing-closure
4f1f2b6 — Peter John 2026-07-20T21:06:10+05:30
docs: add design spec for closures
b6a9042 — Peter John 2026-07-20T20:16:17+05:30
test(plum-wasm-codegen): cover same bare-generic-enum-param function at multiple instantiations
2216237 — Peter John 2026-07-20T20:11:29+05:30
feat(plum-checker): support multiple concrete instantiations of the same generic enum
e698d53 — Peter John 2026-07-20T20:06:27+05:30
docs: revise generic-enum plan with bare-generic-typed-param fix as Task 1
84e946f — Peter John 2026-07-20T20:03:11+05:30
docs: amend generic-enum spec with bare-generic-typed-param fix
aedebc1 — Peter John 2026-07-20T19:28:05+05:30
docs: add implementation plan for generic-enum multi-instantiation
32da118 — Peter John 2026-07-20T19:07:02+05:30
docs: add design spec for generic-enum multi-instantiation support
6613e6d — Peter John 2026-07-20T16:32:34+05:30
test(plum-checker): mark slow recursion-guard test as ignored by default
2e28ecc — Peter John 2026-07-20T16:22:48+05:30
test+docs: generics monomorphization complete; extend examples, update known gaps
c273ea5 — Peter John 2026-07-20T16:01:25+05:30
fix(plum-checker): stop masking type errors in specializations; resolve generic enum instantiation
22140cf — Peter John 2026-07-20T15:43:06+05:30
feat(plum-checker): monomorphize generic classes/functions/methods/enums before checking and codegen
1b220d2 — Peter John 2026-07-20T15:24:15+05:30
feat(plum-checker): core generics specialization primitives
34f159a — Peter John 2026-07-20T15:14:56+05:30
docs: add implementation plan for generics monomorphization
a10644c — Peter John 2026-07-20T15:07:50+05:30
docs: extend generics monomorphization spec to cover generic enums
ea186e4 — Peter John 2026-07-20T14:59:56+05:30
docs: add design spec for generics monomorphization
f1e33d7 — Peter John 2026-07-20T13:40:09+05:30
docs: add implementation plan for tail-position and grammar gap fixes
87b54a9 — Peter John 2026-07-20T13:33:14+05:30
docs+test: restore examples/match.plum to idiomatic bare-tail style; tail-position gap fixed
3254688 — Peter John 2026-07-20T13:27:12+05:30
fix(plum-wasm-codegen): propagate a value through tail-position match/if without explicit return
aeaba6f — Peter John 2026-07-20T13:13:45+05:30
fix(tree-sitter-plum): allow a full expression as a body's trailing statement
1ccf9bd — Peter John 2026-07-20T12:59:58+05:30
docs: add design spec for grammar trailing-statement and tail-position gaps
42d88a3 — Peter John 2026-07-20T12:15:01+05:30
fix(plum-checker): reject a name declared as both a class and an enum variant
5e131a3 — Peter John 2026-07-20T12:14:54+05:30
fix(plum-wasm-codegen): guard constructor-pattern match against payload-free sibling values
3fc279f — Peter John 2026-07-20T12:04:10+05:30
docs: note tail-position match/if return-value gap in Known Gaps
fe36a46 — Peter John 2026-07-20T12:01:31+05:30
docs+test: general enum support is complete; update known gaps and example
8ecbf56 — Peter John 2026-07-20T11:47:23+05:30
feat(plum-wasm-codegen): compile general enum match patterns (tags + constructors)
380a51c — Peter John 2026-07-20T11:43:17+05:30
feat(plum-wasm-codegen): compile general enum variant construction
0c09f5d — Peter John 2026-07-20T11:38:04+05:30
fix(plum-checker): rewrite bare_enum_tag test to avoid unrelated grammar limitation
7ac1d37 — Peter John 2026-07-20T11:33:47+05:30
feat(plum-checker): general enum variant tags, field types, and construction checks
a65c75b — Peter John 2026-07-20T11:25:34+05:30
fix(tree-sitter-plum): document fn_argument_list/class_argument_list conflict rationale
96ec67f — Peter John 2026-07-20T11:22:20+05:30
feat(tree-sitter-plum): allow positional variant-construction calls
2cee306 — Peter John 2026-07-19T22:34:02+05:30
docs: add implementation plan for general enum support
6a8cfe6 — Peter John 2026-07-19T22:25:02+05:30
docs: add design spec for general enum support in checker/codegen
660674c — Peter John 2026-07-19T22:17:37+05:30
fix(tree-sitter-plum): remove Nil/try/except, allow inline match bodies
222801d — Peter John 2026-07-19T22:03:42+05:30
docs: document the currently-implemented language syntax in README
0e1801a — Peter John 2026-07-19T21:52:28+05:30
test: add example programs covering the language's current syntax
12537c4 — Peter John 2026-07-19T21:52:11+05:30
fix(plum-wasm-codegen): assert/todo trap, tail-position If also diverges
5d8ada1 — Peter John 2026-07-19T21:40:57+05:30
feat(plum-wasm-codegen): class/method codegen, strings, match lowering
d1a4183 — Peter John 2026-07-19T21:40:36+05:30
feat(plum-checker): class/method/self/match type checking
f502d22 — Peter John 2026-07-19T21:40:20+05:30
fix(tree-sitter-plum): fix match/generics/identifier/attribute grammar bugs
1e3672d — Peter John 2026-07-19T19:37:07+05:30
fix: address code review findings — bool literals, export policy, test hardening
50effc5 — Peter John 2026-07-19T19:31:02+05:30
feat(plum-cli): add compile subcommand wiring checker and codegen
e71210a — Peter John 2026-07-19T19:27:47+05:30
test(plum-wasm-codegen): add factorial and give42 codegen tests
bb8ca38 — Peter John 2026-07-19T19:25:17+05:30
feat(plum-wasm-codegen): implement WasmModule, CompileCtx and compile_source
729d7cb — Peter John 2026-07-19T19:17:31+05:30
test(plum-checker): add error-case tests for type checker
7c8e1b1 — Peter John 2026-07-19T19:15:29+05:30
fix(plum-checker): use plum_type_from_ast for return type in first pass
30f1008 — Peter John 2026-07-19T19:14:09+05:30
feat(plum-checker): implement type checker with unification
03e5a61 — Peter John 2026-07-19T19:11:09+05:30
feat(plum-checker): add type definitions
1daab8d — Peter John 2026-07-19T19:09:16+05:30
chore: scaffold plum-checker and plum-wasm-codegen crates
58682e1 — Peter John 2026-07-19T18:59:30+05:30
docs: add wasm codegen + type checker implementation plan
78b9e89 — Peter John 2026-07-19T18:52:54+05:30
docs: add wasm codegen + type checker design spec
62ecfff — Peter John 2026-07-19T17:43:01+05:30
fix: restore | operator spacing, add format_source_with_opts, reject --stdin --check
c465715 — Peter John 2026-07-19T17:38:56+05:30
chore: remove old root src/ after workspace migration
cca230e — Peter John 2026-07-19T17:36:59+05:30
feat: add plum-cli binary with format subcommand
35bca24 — Peter John 2026-07-19T17:34:24+05:30
test: add integration tests for format_source
7bbcc54 — Peter John 2026-07-19T17:32:24+05:30
feat: implement format_source wrapping topiary-core
fcd5c0a — Peter John 2026-07-19T17:29:43+05:30
fix: use body-anchored indent annotations instead of per-construct = tokens
bd217f8 — Peter John 2026-07-19T17:27:40+05:30
fix: correct node names and indentation annotations in format.scm
b29055c — Peter John 2026-07-19T17:24:33+05:30
feat: add Topiary format.scm formatting rules for Plum
0a830c8 — Peter John 2026-07-19T17:22:28+05:30
refactor: restructure as Cargo workspace, add plum-core skeleton
889886f — Peter John 2026-07-19T17:15:37+05:30
docs: add CLI formatter implementation plan
d2781a5 — Peter John 2026-07-19T16:18:06+05:30
docs: add CLI and formatter design spec
2c5c010 — Peter John 2025-04-19T12:37:33+05:30
add cmake
e9b4405 — pyrossh 2024-12-30T13:29:21+05:30
more stuff
0d8e2ab — pyrossh 2024-12-18T21:48:44+05:30
add cargo pkg
58cc293 — pyrossh 2024-12-18T16:44:58+05:30
finish syntax
59e3de6 — pyrossh 2024-12-18T10:45:39+05:30
fix traits
1910cfc — pyrossh 2024-12-18T10:34:12+05:30
fix tests
5b84889 — pyrossh 2024-12-18T10:24:09+05:30
fix assign
9e7927c — pyrossh 2024-12-18T10:17:06+05:30
fix tests
4aca0b2 — pyrossh 2024-12-18T00:40:00+05:30
improve highlights
d357000 — pyrossh 2024-12-17T16:07:07+05:30
add helix
9fa731a — pyrossh 2024-12-17T15:26:22+05:30
cleanup
0d43379 — pyrossh 2024-12-17T15:08:34+05:30
improve string
08530fa — pyrossh 2024-12-17T14:41:34+05:30
improve
c05610c — pyrossh 2024-12-17T13:04:14+05:30
improve lang
419a88f — pyrossh 2024-12-13T22:54:16+05:30
improce code
267c262 — pyrossh 2024-12-12T14:28:36+05:30
get string working
d322d05 — pyrossh 2024-12-12T13:31:25+05:30
add better syntax
5de508e — pyrossh 2024-12-11T14:00:50+05:30
changes
63acee9 — pyrossh 2024-12-02T13:19:30+05:30
fix README.md
f7c51fa — pyrossh 2024-12-02T13:17:30+05:30
fix README
ca33da0 — pyrossh 2024-12-02T13:15:40+05:30
fix LICENSE
fa31ba4 — pyrossh 2024-11-24T19:17:28+05:30
some changes
fd085d9 — pyrossh 2024-11-22T21:00:27+05:30
new rules
f997bee — pyrossh 2024-11-18T11:11:03+05:30
fix parser
afb772e — pyrossh 2024-11-12T22:46:21+05:30
improve syntax
5f5d99d — Peter John 2024-11-10T22:54:26+05:30
new syntax
1675049 — Peter John 2024-11-05T11:25:58+05:30
new syntax
2a44b7e — Peter John 2024-10-27T22:32:37+05:30
more syntax
e2157e4 — Peter John 2024-10-07T10:16:13+05:30
improve grammar
2634d00 — Peter John 2024-08-30T13:19:01+05:30
improve grammar
efe15db — Peter John 2024-08-25T15:50:44+05:30
improve grammar
fc68ba7 — Peter John 2024-08-17T22:38:01+05:30
assign works
5d12d71 — Peter John 2024-08-17T16:59:50+05:30
update tree-sitter and grammar
cdc4739 — Peter John 2024-08-15T21:37:53+05:30
update readme
4bd2c1c — Peter John 2024-08-15T21:36:27+05:30
add vscode/treesitter
08174b8 — Peter John 2024-04-26T20:21:47+05:30
Update readme.md
fc566dd — pyrossh 2024-04-26T09:36:53+05:30
updates
e6e9e7c — pyrossh 2024-03-09T22:29:39+05:30
improve
f7bd316 — pyrossh 2024-03-01T12:19:38+05:30
add docs
22a1eb0 — pyrossh 2024-02-28T21:58:19+05:30
update readme
90e6cd4 — pyrossh 2024-02-26T13:02:18+05:30
updates
f9f376c — pyrossh 2024-02-26T11:04:04+05:30
update
5ff7fdd — pyrossh 2024-02-26T10:34:03+05:30
update
c3ac9ba — pyrossh 2024-02-25T19:09:30+05:30
improve readme
af78b68 — pyrossh 2024-02-24T22:21:06+05:30
update
e502e58 — pyrossh 2024-02-24T16:26:38+05:30
add more code
19b8452 — pyrossh 2024-02-23T12:09:48+05:30
improve syn
c725b92 — pyrossh 2024-02-20T22:17:49+05:30
update
66f4a64 — pyrossh 2024-02-20T20:07:50+05:30
improve
4786888 — pyrossh 2024-02-17T17:57:58+05:30
add naming convention
1f7d137 — pyrossh 2024-02-17T10:51:55+05:30
lang changes
58ce289 — pyrossh 2024-02-12T23:18:21+05:30
docs
6fd1e28 — pyrossh 2024-02-10T13:10:33+05:30
docs
33c6437 — pyrossh 2024-02-10T13:07:34+05:30
docs
de232c4 — pyrossh 2024-02-10T12:18:50+05:30
docs
68c4568 — pyrossh 2024-02-10T01:27:17+05:30
docs
7aecb8c — pyrossh 2024-02-08T23:20:22+05:30
docs
ed5fe02 — pyrossh 2024-02-07T23:12:14+05:30
docs
c8e4165 — pyrossh 2024-02-07T22:55:46+05:30
docs
86286be — pyrossh 2024-02-07T11:45:38+05:30
cleanup
dc1e5ef — pyrossh 2024-02-07T11:41:32+05:30
add static functions on records
6a5b4e2 — pyrossh 2024-02-07T11:39:40+05:30
increment spec
de2c04c — pyrossh 2024-01-31T11:39:41+05:30
add methods
b012729 — pyrossh 2024-01-29T12:11:42+05:30
new syn
0e69b5b — pyrossh 2024-01-29T10:33:00+05:30
spec
7b112e2 — pyrossh 2024-01-25T12:15:50+05:30
improve fn example
c772e73 — pyrossh 2024-01-17T09:00:22+05:30
improve syn
ddac811 — pyrossh 2024-01-05T10:04:33+05:30
langium
ba60f69 — pyrossh 2023-06-26T19:09:35+05:30
update
4c1e0a7 — pyrossh 2023-06-26T19:08:29+05:30
update readme
9dc4cfe — pyrossh 2023-06-26T18:46:10+05:30
update
47e9b71 — Peter John 2023-05-03T20:01:24+05:30
Fix pipes
27426a3 — Peter John 2023-05-01T13:56:23+05:30
fix tests
e69a5b5 — Peter John 2023-04-30T23:12:11+05:30
add const expressions
512f582 — Peter John 2023-04-30T15:07:07+05:30
get more expressions working
694b4a5 — Peter John 2023-04-28T22:28:33+05:30
Add functions
46223cc — Peter John 2023-04-28T00:00:05+05:30
new spec
fddcfa8 — Peter John 2023-04-21T11:03:23+05:30
Add bindings and queries
0d22fe3 — Peter John 2023-04-21T00:00:46+05:30
update grammar
273d01a — Peter John 2023-04-20T10:40:47+05:30
remove windows support
3152e7c — Peter John 2023-04-20T10:33:04+05:30
make fns work
30158b0 — Peter John 2023-04-19T22:57:37+05:30
new grammar
a6ba4f6 — Peter John 2022-11-13T22:00:30+05:30
add menu example
ca4e97c — Peter John 2022-11-11T22:32:15+05:30
improve grammar
3fcabcb — Peter John 2022-11-10T19:23:55+05:30
remove indentation
21ed651 — Peter John 2022-11-07T23:36:34+05:30
split class tests
54c4365 — Peter John 2022-11-07T23:33:51+05:30
update names
12ed161 — Peter John 2022-11-07T23:07:50+05:30
add enums
e832171 — Peter John 2022-11-07T01:04:41+05:30
intitial commit