aboutsummaryrefslogtreecommitdiff
path: root/TODO.md
Commit message (Collapse)AuthorAgeFilesLines
* detach doc comments on internal bounds helpers (genome size); todo: reuse ↵Gravatar zinc 2026-10-141-1/+1
| | | | capture_scan in the body scanner
* todo: callee generation guard for direct o3 calls, region 474..692 and fib ↵Gravatar zinc 2026-10-141-1/+1
| | | | diagnosis; icon test with an o3 caller across find_replace
* todo: work/checks status, self-modifying region caveat, zyrdump off, next ↵Gravatar zinc 2026-10-141-2/+2
| | | | direct o3 calls
* todo: correct self-modifying region caveatGravatar zinc 2026-10-141-1/+1
|
* todo: sync open list with 2026-10-14 workGravatar zinc 2026-10-141-6/+19
|
* x86-64 o3 regions: header comment, readme, bench note and todoGravatar zinc 2026-10-141-2/+2
|
* merge work/jit2: x86-64 jit inline enhancementsGravatar zinc 2026-10-141-1/+2
|\
| * x86-64 jit: header comment and todo for inlined enhancementsGravatar zinc 2026-10-141-1/+2
| |
* | todo: zc0 gaps doneGravatar zinc 2026-10-141-1/+1
|/
* merge bounds checkingGravatar zinc 2026-10-141-1/+28
|\
| * bounds checking: constant loop bound proof works, plain-op fixed-array ↵Gravatar zinc 2026-10-141-1/+28
| | | | | | | | check, docs (readme, spec 4.15 and friends, server, vscode), conformance and test.sh fixes, todo
* | merge: memdebug obj_base via size classesGravatar zinc 2026-10-141-1/+1
|\ \
| * | memdebug: obj_base finds the header from the buddy size classes, not a ↵Gravatar zinc 2026-10-141-1/+1
| | | | | | | | | | | | 64-word scan; regression program
* | | merge: seven self-hosted compiler fixes from conformanceGravatar zinc 2026-10-141-2/+2
|\ \ \ | |/ / |/| |
| * | conformance: b.2.8 is documented behavior; keep the conformance run out of ↵Gravatar zinc 2026-10-141-2/+2
| | | | | | | | | | | | test.sh -q; todo notes for the seven fixes
* | | merge: llvm auto-build (opt-in on x86-64), mode stampGravatar zinc 2026-10-141-3/+10
|\ \ \ | |_|/ |/| |
| * | make: keep the x86-64 jit by default (LLVM=1 opts in), record the llvm mode ↵Gravatar zinc 2026-10-141-7/+10
| | | | | | | | | | | | so switching rebuilds zy, check llvm with a test link
| * | make: build zy with the llvm backend when an llvm with headers is found; ↵Gravatar zinc 2026-10-141-3/+7
| | | | | | | | | | | | NOLLVM=1 turns it off
* | | merge main into work/line-tablesGravatar zinc 2026-10-141-31/+22
|\ \ \ | | |/ | |/|
| * | merge spec conformance suiteGravatar zinc 2026-10-141-3/+2
| |\ \ | | |/ | |/|
| | * conformance: port the previous agent's suite, fix six expectations, add ↵Gravatar zinc 2026-10-141-3/+2
| | | | | | | | | | | | sections 5 to 8 and appendix b, known.txt, zc0 skips, wire into test.sh
| * | xref self-test: a real write in a compiler copy, reject unknown options; ↵Gravatar zinc 2026-10-141-3/+4
| | | | | | | | | | | | runerr.sh runs every folder it is given
| * | xref: checked-in baseline, --check self-test hooked into the lsp section, todoGravatar zinc 2026-10-141-28/+19
| |/
* / line tables and backtraces: port agent/line-tables onto main, op 56 on the ↵Gravatar zinc 2026-10-141-1/+23
|/ | | | x86-64 jit, docs, measurements, tests; default genome reservation 0x68000
* todo: record each agent's state at the end of the session and the merge orderGravatar zinc 2026-10-141-23/+170
|
* todo: test blocks, destructors and record/replay in flightGravatar zinc 2026-10-141-4/+7
|
* Merge the defer statement; todo: tick it, add its follow-upsGravatar zinc 2026-10-141-2/+2
|\
| * zc: add the defer statementGravatar zinc 2026-10-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | defer expr; and defer { ... } register code that runs when the enclosing block ends: at the end of the block, and at return, break and continue that leave it. the tokens are kept at the defer and compiled again at each exit (block_close, body, kw_return, kw_break, kw_continue), newest first, before the block's variables are released, so the analyzer sees a deferred rt.free(p) as the transfer of p where it runs. names mean what they meant at the defer; values are read when it runs. return, break and continue inside a deferred statement are errors, reported once. works in unchecked code and closures (own base per function context).
* | Merge four small fixes: std hovers, capture terminator, bare static calls, ↵Gravatar zinc 2026-10-141-5/+2
|\ \ | | | | | | | | | void main; todo updated
| * | fix std hover, full capture terminator, bare static calls, void main in ↵Gravatar zinc 2026-10-141-4/+0
| |/ | | | | | | | | | | | | | | | | | | | | | | | | run-only images - hover: a symbol from an embedded library source (tinyvm:std.zc, tinyvm:icon.zc) was looked up only in the document; look it up by its qualified name in the library source (hover_embedded_sym), and render a method found that way by its line (bs_hover). - std.capture: allocate one word more than the 256 it holds, so end() terminates inside the buffer. - a bare call to a static function of the enclosing struct resolves like a bare struct constant (mstruct is set for every non-generic struct's methods); the struct's own wins over a global. - run.zc declares main untyped (fn main();), so a run-only image accepts int, void or untyped main with both compilers.
* | todo: the spec verifier restarted from the first agent's partial workGravatar zinc 2026-10-141-3/+4
| |
* | Merge the x86-64 jit, phase 1; todo: tick it, add phase 2Gravatar zinc 2026-10-141-8/+14
|\ \
* | | todo: record the vision, priorities and settled feature decisions; add the ↵Gravatar zinc 2026-10-141-0/+94
| | | | | | | | | | | | items they imply
* | | todo: no zc0 structs; records become grouped, documented arrays; in-flight ↵Gravatar zinc 2026-10-141-10/+20
| |/ |/| | | | | list updated
* | todo: handoff section with state, conventions, in-flight work and ↵Gravatar zinc 2026-10-141-35/+96
| | | | | | | | architecture notes
* | todo: zc0 structs before the records refactorGravatar zinc 2026-10-141-1/+2
| |
* | Merge the compiler split into phase filesGravatar zinc 2026-10-141-2/+2
|\ \ | | | | | | | | | | | | also: ca_owners in the language server keeps the owner order in a fixed array instead of a heap list the analyzer rejected.
| * | split compiler.zc into files by phaseGravatar zinc 2026-10-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | src/compiler/compiler.zc is now twelve files under src/compiler/, listed in order in src/compiler/parts. cat of the parts in order is byte-identical to the old file, so every compiler and image except the language server's is unchanged. no function was edited. consumers read the list: the makefile, bootstrap-check, genmap (which still writes one compiler.zc into a generated map directory), tinyvm.bat, test.sh, test_win.ps1 and the lsp drivers. the language server embeds each part and serves them joined as the one document tinyvm:/compiler.zc.
* | | todo: tick the spec; list the bugs its appendix b foundGravatar zinc 2026-10-141-1/+2
| | |
* | | todo: tick zc0 byte strings and u/m/d; note zc0's remaining gapsGravatar zinc 2026-10-141-1/+2
|/ / | | | | | | parity now compares 60 programs with no unexpected difference.
* | todo: tick the parity runner; zc0 follow-ups it foundGravatar zinc 2026-10-141-1/+3
| |
* | todo: compiler file split, cross-reference report, local records, x86-64 jitGravatar zinc 2026-10-141-0/+4
|/
* todo: tick typedefs and the string aliasGravatar zinc 2026-10-141-2/+2
|
* todo: tick struct constants and member typos; add follow-ups and the spec workGravatar zinc 2026-10-141-1/+7
|
* todo: tick the markdown cleanup and onboarding checkGravatar zinc 2026-10-141-2/+2
|
* docs: remove temporary notes and fix onboarding driftGravatar zinc 2026-10-141-1/+1
| | | | | | | | | | | | - delete TASKLIST.md and docs/design/handoff.md; the handoff content lives in README.md - move docs/BOOTSTRAP-OWNERSHIP.md to docs/history/ and index it in docs/history/README.md - point ONBOARD.md, docs/BORROW.md and the ticked TODO.md item at the new path - ONBOARD.md section 9 no longer mentions TASKLIST.md - ONBOARD.md section 3 and 4 markers are now `// ...` (line comments lost their colon) verified from a clean build: make clean, make (fixpoint 376903 words), the section 0-7 commands (section 4 after the marker fix), and the rejection suites. make check was started but did not complete (stopped before it finished).
* todo: record the reverted unchecked trial and what it showedGravatar zinc 2026-10-141-1/+1
|
* todo: one sorted list of open work; library suggestions without naming librariesGravatar zinc 2026-10-141-12/+36
| | | | | | | | | | | | | | TODO.md ticks the items verified done (namespaces, actor and icon libraries and their coverage, the genome embed, the bootstrap ownership limits, the docs and fixtures sweep) and lists everything still open, including the newly requested language features, sorted easiest first. the compiler no longer names actor: file libraries for suggestions come from src/lib/modules.txt, and lib.name before its include reports the missing include. icon gains fixtures for reading globals while stepping and for begin_function on a non-function, and the suite checks that nothing the compiler reads by default mentions actors. bf.zc, the web sample and std's capture example use qualified runtime names; LEARN.md uses build/bin paths.
* todo: sync docs, examples and fixtures with the include format, and test ↵Gravatar Moon Flower 2026-10-141-0/+2
| | | | | | | | | | | 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.
* docs: record the two ownership gaps that block the bootstrapGravatar Moon Flower 2026-10-141-0/+1
| | | | | | | | | | | | | | | | | | | `make genome` cannot complete: the second bootstrap stage runs the lifetime checker over the compiler's own source, which reports 8 errors, and mkgenome then reads the diagnostics as an image. the two limits are that an owned value held in a local has no move into another local — every accepted move originates at a call, so the free-then-replace rule only applies when the replacement comes from a call result — and that a local cannot be lent to a global, so redirecting the output stream at a scratch buffer needs a module-level variable. neither limit accepts an unsafe program; both refuse correct ones, so this is a completeness gap rather than a soundness failure. document the affected code, the diagnostics, what was tried and how each attempt failed, and a proposal. add src/tools/bootstrap-check.sh, which rebuilds both bootstrap stages and prints the compiler's diagnostics on its own source instead of the word dump.