aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Moon Flower <moonflower@elhenney.local> 2026-10-14 09:06:36 +0330
committerGravatar Moon Flower <moonflower@elhenney.local> 2026-10-14 09:06:36 +0330
commit964011358602b1c65866c71f1b0e3327442651eb (patch)
tree4c255b90caf731488d24b587b7d319f317264158
parentfix: emit rt.put_c from the brainfuck translator (diff)
todo: sync docs, examples and fixtures with the include format, and test actor and icon
two items. first, documentation, examples, learn entries, history notes and expected-output fixtures still carry bare runtime builtin names from before the namespace work; the suite gates the snippets it exercises but not the rest. second, actor and icon each need their own accept, reject and regression coverage once they land, including the constraint that no actor code is reachable from the compiler by default.
-rw-r--r--TODO.md2
1 files changed, 2 insertions, 0 deletions
diff --git a/TODO.md b/TODO.md
index 51e3cca..ee308e8 100644
--- a/TODO.md
+++ b/TODO.md
@@ -143,3 +143,5 @@
- [ ] implement and integrate `src/lib/icon.zc` with structured runtime syntax transformations, template matching, execution inspection and stepping, with explicit contracts and comprehensive tests.
- [ ] change the producer of the genome header (`build/core/genome.h`) to emit a c translation unit that embeds the compiler, core and runtime zc sources with a `#embed` directive instead of concatenating them into a 1.5 mb generated header; keep the `.zc` sources as the single source of truth and extend the fixpoint check in `make genome` so it still verifies the emitted genome without materializing a header at all.
- [ ] close the two ownership completeness limits that stop the compiler compiling itself, so `make genome` completes from a clean checkout: allow an owned value held in a local to move into another local when the destination's previous owner is released in the same statement list, and allow a global to hold a bounded borrow of a local so an output stream can be redirected at a scratch buffer without a module-level variable. also give `rt.code_blocks = m*block;` a supported spelling and fix the `only a named owned object can be recast` diagnostic, which does not describe the real constraint. written up in `docs/BOOTSTRAP-OWNERSHIP.md`, which also records a verified partial fix that removes five of the eight current errors.
+- [ ] bring documentation, examples, learn entries, history notes and test fixtures in line with the include and namespace format and the other language changes made alongside it: qualify runtime built-ins as `rt.put_s`, `rt.put_n`, `rt.put_c`, `rt.eof` and `rt.get_c`, require the explicit `include` each module needs, and remove the remaining bare builtin names so every shipped sample, every documented snippet and every expected-output fixture compiles and runs against the current compiler. the learn guide and `README.md` snippets are checked by the suite, so they are the gate, but the prose and the non-exercised samples are not.
+- [ ] add accept, reject and regression coverage for the actor and icon libraries once each is finished: for actors, syntax activation through the include-time extension, spawn/recv/send across input and output types, multiple instances of one actor, parallel execution, implicit `this`, and confirmation that no actor code is reachable from the compiler or anything it reads by default; for icon, find/replace over real syntax, undeclaring names, changing types, adding and rewriting blocks, evaluating parts of an expression, and stepping execution while reading locals and globals, including the failure cases for each.