ludic/selfhost/backend
Orkuncakilkaya 6a24b14f0e feat(lang): L5 generic records and functions
property Pool<T> { ... }, function first<T>(xs: []T) -> T, map<T, U> over fn
types; a type writes an instance as Pool<Thing>, nested as deep as needed. The
parser names an instance Pool$Thing and remembers its generic and arguments; the
checker takes the generic declarations out, infers a call's type arguments from
its arguments or its result's declared slot, and makes each instance once as an
ordinary record or function, checked like any other. Errors print Pool<Thing>.
An instance keeps its generic's module and export (L3). ludic-fmt keeps type
arguments together while spacing comparisons and shifts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 02:21:15 +03:00
..
game feat(lang): L4 type checker between parse and emit 2026-09-24 01:34:49 +03:00
stdlib feat(lang): functions are values (L2), and render3d takes its scene as callbacks 2026-09-24 00:27:26 +03:00
emit_addr.ludic feat(compiler): a slice index is checked against its length 2026-09-22 20:54:12 +03:00
emit_call.ludic feat(lang): L4 type checker between parse and emit 2026-09-24 01:34:49 +03:00
emit_core.ludic feat(lang): a name is defined once, a local once per block, and a result is always returned 2026-09-23 23:55:20 +03:00
emit_decl.ludic feat(lang): a name is defined once, a local once per block, and a result is always returned 2026-09-23 23:55:20 +03:00
emit_expr.ludic feat(lang): functions are values (L2), and render3d takes its scene as callbacks 2026-09-24 00:27:26 +03:00
emit_float.ludic feat(lang): L4 type checker between parse and emit 2026-09-24 01:34:49 +03:00
emit_fnval.ludic feat(lang): L4 type checker between parse and emit 2026-09-24 01:34:49 +03:00
emit_head.ludic carry: the runtime and render3d work Maroon Lake builds against 2026-09-23 15:55:02 +03:00
emit_intrin.ludic feat(windows): a Windows target for ludicc, and the compiler builds itself there 2026-09-13 01:59:41 +03:00
emit_intrin2.ludic carry: the runtime and render3d work Maroon Lake builds against 2026-09-23 15:55:02 +03:00
emit_mem.ludic refactor(selfhost): reorganise into concern-based subdirectories 2026-08-31 00:26:02 +03:00
emit_new.ludic feat(lang): L3 module scope - module, export, friend module 2026-09-24 00:52:12 +03:00
emit_stmt.ludic feat(lang): L4 type checker between parse and emit 2026-09-24 01:34:49 +03:00
emit_vis.ludic feat(lang): L5 generic records and functions 2026-09-24 02:21:15 +03:00