| .. |
|
data
|
attributes: @Material(field) resolved as @Node is; @OneOf on a string field takes words, and every registry row's value is checked against them - words on another field, or constants on a string, is an error; reseeded
|
2026-09-29 19:13:32 +03:00 |
|
i18n
|
examples: text keys - lang/i18n (k"" and kn"" keys, == on them, a @Text Key field's derived key, @TextKey, a component's t('key', ...) and its one line of English left, en.po with a plural and descriptions, tr.po missing, fuzzy and extra) and rejected/i18n_keys (a key en.po lacks, a plural key without msgid_plural, a Key / string mix-up, a derived key en.po lacks, a template's missing t() key, hole counts and an undescribed split); their cases in ludic-dev test (added, not run)
|
2026-09-29 23:38:03 +03:00 |
|
i18n_nested
|
compiler: text keys below a row, trf padding and tr's cast (ECS's 26.4 gaps) - a @Text Key in a record nested in a row, or in each item of a list of them, is filled with its derived key <registry>.<row>.<field>.<i>.<field> as a top-level one is, and a @Text []Key a row leaves out takes <...>.0, .1, ... for as many as en.po has (so no .lres spells a key; the manifest and en.po are now read before the parse that fills the rows); field: null is no text; trf / trn's trailing "" literals are padding, not counted against the English's holes; and string(x) of a string or a Key is x itself to the escape analysis, no allocation site, so tr(key) passes arena strict (a template's lone hole still copies); examples/lang/i18n_nested and its feat_case (added, not run); LANGUAGE.md and the changeset; reseeded, bootstrap-cfree fixpoint holds
|
2026-09-30 00:41:05 +03:00 |
|
permap
|
tests: the map-scoped tables' example and rejected fixtures
|
2026-09-29 21:03:56 +03:00 |
|
aliases.ludic
|
feat(lang): L6 namespaces declared in Ludic - alias
|
2026-09-24 02:40:57 +03:00 |
|
alloc_fence.ludic
|
fence (25.1): every allocation goes through the fence - sites, frame judging, census, callers
|
2026-09-28 15:35:29 +03:00 |
|
alloc_fence_auto.ludic
|
fence (25.1): every allocation goes through the fence - sites, frame judging, census, callers
|
2026-09-28 15:35:29 +03:00 |
|
alloc_fence_declared.ludic
|
fence: declared bytes are never judged nor listed; the scan's sites sorted by bytes, as many as asked, and all to a file
|
2026-09-28 18:03:00 +03:00 |
|
alloc_fence_leak.ludic
|
fence (25.1c): the census reads the heap outside Ludic's blocks; blocks counted at malloc's own size
|
2026-09-28 15:38:13 +03:00 |
|
alloc_fence_rewarm.ludic
|
fence: declared but unbounded, and a rewarm that keeps the warm-up's deadline
|
2026-09-28 22:36:08 +03:00 |
|
alloc_fence_sites.ludic
|
fence: every runtime call is its line's site, and site 0 comes back when it returns
|
2026-09-29 00:40:28 +03:00 |
|
alloc_fence_unbounded.ludic
|
fence: declared but unbounded, and a rewarm that keeps the warm-up's deadline
|
2026-09-28 22:36:08 +03:00 |
|
annotations.ludic
|
feat(compiler): list literals, typed compound assignment, file:line diagnostics
|
2026-09-05 01:12:16 +03:00 |
|
arena_alias.ludic
|
escape (fix): kept memory is HEAP, so what is pushed through an alias of it is kept
|
2026-09-28 21:15:32 +03:00 |
|
arena_defaults.ludic
|
escape (fix): a node walked more than once is scratch only if every walk found it LOCAL
|
2026-09-28 17:17:33 +03:00 |
|
arena_fnval.ludic
|
escape (fix): a function taken as a value keeps what it returns, and an entry is walked
|
2026-09-28 20:10:18 +03:00 |
|
arena_pool.ludic
|
escape (fix): the arena took ludic.ui's pooled nodes - a generic's call and an unknown callee now keep what they are handed
|
2026-09-28 17:13:05 +03:00 |
|
attributes.ludic
|
attributes: @Material(field) resolved as @Node is; @OneOf on a string field takes words, and every registry row's value is checked against them - words on another field, or constants on a string, is an error; reseeded
|
2026-09-29 19:13:32 +03:00 |
|
checked.ludic
|
feat(lang): L4 type checker between parse and emit
|
2026-09-24 01:34:49 +03:00 |
|
defaults.ludic
|
feat(lang): L11 views and templates - the UI is markup, not code
|
2026-09-24 15:58:47 +03:00 |
|
detach.ludic
|
refactor(cli)!: split the contributor tool out of the ludic CLI
|
2026-09-05 23:15:12 +03:00 |
|
floats.ludic
|
wip(0.S3): packages and examples migrated again from their pre-0.S sources in one run
|
2026-09-25 15:31:34 +03:00 |
|
generics.ludic
|
feat(lang): L5 generic records and functions
|
2026-09-24 02:21:15 +03:00 |
|
int_min_literal.ludic
|
compiler: the most negative int is emitted as itself - itoa took its digits off -v, which overflows back to itself, so 0x80000000 in an int was written as a bare "-" (invalid IR); digits now come off v as it is, and the buffer holds a long's 20
|
2026-09-29 22:00:49 +03:00 |
|
json_free_edited.ludic
|
Json.free_all is safe on a parsed tree a migration and a loader have edited; sv_str keeps a copy
|
2026-09-29 13:43:24 +03:00 |
|
json_saves.ludic
|
runtime: Json.write_file, and Json.encode through a kept buffer
|
2026-09-28 15:32:36 +03:00 |
|
json_unicode.ludic
|
Json.parse decodes \uXXXX to UTF-8 - a surrogate pair joined, a lone surrogate or bad hex as U+FFFD - and \t \r \b \f, where it dropped the backslash and kept the hex as text; examples/lang/json_unicode checks it byte by byte
|
2026-09-29 21:07:10 +03:00 |
|
lifecycle.ludic
|
chore(repo): DX cleanup — categorise examples, text-diffable golden, build/ output (#27 #28 #30)
|
2026-08-30 18:54:21 +03:00 |
|
long_literals.ludic
|
wip(0.S3): packages and examples migrated again from their pre-0.S sources in one run
|
2026-09-25 15:31:34 +03:00 |
|
nested_templates.ludic
|
fix(lang): a template inside another's hole, and integer literals past 2^31 - 1
|
2026-09-25 08:10:46 +03:00 |
|
offline_rewards.ludic
|
chore(repo): DX cleanup — categorise examples, text-diffable golden, build/ output (#27 #28 #30)
|
2026-08-30 18:54:21 +03:00 |
|
operators.ludic
|
feat(compiler): list literals, typed compound assignment, file:line diagnostics
|
2026-09-05 01:12:16 +03:00 |
|
qdecl.ludic
|
feat(compiler): list literals, typed compound assignment, file:line diagnostics
|
2026-09-05 01:12:16 +03:00 |
|
reason.ludic
|
refactor(cli)!: split the contributor tool out of the ludic CLI
|
2026-09-05 23:15:12 +03:00 |
|
registry.ludic
|
feat(lang): L8 registries by declaration - registry and def
|
2026-09-24 13:34:51 +03:00 |
|
resources.ludic
|
feat(lang): L9 resource files - registry ... from
|
2026-09-24 14:00:20 +03:00 |
|
rng_demo.ludic
|
chore(repo): DX cleanup — categorise examples, text-diffable golden, build/ output (#27 #28 #30)
|
2026-08-30 18:54:21 +03:00 |
|
runtime_temps.ludic
|
runtime: Log, DateTime.format, Input.text, Path, Mime, Fs, Os and Text keep nothing per call
|
2026-09-28 13:55:49 +03:00 |
|
scenes.ludic
|
wip(0.S3): packages and examples migrated again from their pre-0.S sources in one run
|
2026-09-25 15:31:34 +03:00 |
|
schema_hash.ludic
|
tests: the full suite's seven failures on lang/foundations - one compiler fault and six stale expectations
|
2026-09-29 21:19:00 +03:00 |
|
string_temps.ludic
|
checker: a function named like a built-in a call always takes is refused at its declaration - function words(st, k) compiled and every call became words(n) with a pointer for n (invalid IR, far from the cause); the table is selfhost/check/check_builtins.ludic, emit_call's built-ins no find_fn guard lets a declared function take, and ludic-dev syntax --check holds it to emit_call both ways; every other built-in (buffer, floats, double, ...) yields to a declared function in the checker as it already did in codegen. string_temps' keep and cross_heap_test's keep renamed (hand, keep_cell); rejected/builtin_call_name and functions/builtin_yield with their cases (added, not run); reseeded, bootstrap-cfree fixpoint holds
|
2026-09-30 01:10:24 +03:00 |
|
strings.ludic
|
feat(compiler): list literals, typed compound assignment, file:line diagnostics
|
2026-09-05 01:12:16 +03:00 |
|
time_demo.ludic
|
chore(repo): DX cleanup — categorise examples, text-diffable golden, build/ output (#27 #28 #30)
|
2026-08-30 18:54:21 +03:00 |
|
toggle.ludic
|
chore(repo): DX cleanup — categorise examples, text-diffable golden, build/ output (#27 #28 #30)
|
2026-08-30 18:54:21 +03:00 |
|
value_list_regrow.ludic
|
frame keeps: a model's records filled in place, kept event numbers, list spares, Json.read_file
|
2026-09-29 12:22:13 +03:00 |