aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* bounds checking: port agent/bounds-checking onto main 0879d0a; unbounded ↵Gravatar zinc 2026-10-1425-46/+274
| | | | main in o3call, o3 tests expect no check, boundsrules, bounds_fixed, bounds_heap and zc0unbounded tests
* merge line tablesGravatar zinc 2026-10-1431-48/+634
|\
| * merge main into work/line-tablesGravatar zinc 2026-10-14670-43/+7355
| |\ | |/ |/|
* | merge spec conformance suiteGravatar zinc 2026-10-14661-3/+6143
|\ \
| * | conformance: port the previous agent's suite, fix six expectations, add ↵Gravatar zinc 2026-10-14146-18/+864
| | | | | | | | | | | | sections 5 to 8 and appendix b, known.txt, zc0 skips, wire into test.sh
| * | agent/spec-conformance: unmerged work from previous sessionGravatar zinc 2026-10-14553-0/+5294
| | |
* | | xref self-test: a real write in a compiler copy, reject unknown options; ↵Gravatar zinc 2026-10-144-16/+42
| | | | | | | | | | | | runerr.sh runs every folder it is given
* | | merge xref report: baseline, --check, self-testGravatar zinc 2026-10-1410-32/+1178
|\ \ \ | |/ / |/| |
| * | xref: checked-in baseline, --check self-test hooked into the lsp section, todoGravatar zinc 2026-10-145-29/+702
| | |
| * | agent/xref-report: unmerged work from previous sessionGravatar zinc 2026-10-146-4/+477
|/ /
| * line tables and backtraces: port agent/line-tables onto main, op 56 on the ↵Gravatar zinc 2026-10-1431-48/+634
|/ | | | 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
|
* parity: clear links from earlier runs so a program's writes never reach the treeGravatar zinc 2026-10-141-0/+3
|
* Merge the defer statement; todo: tick it, add its follow-upsGravatar zinc 2026-10-1423-7/+514
|\
| * zc: add the defer statementGravatar zinc 2026-10-1423-6/+513
| | | | | | | | | | | | | | | | | | | | | | | | 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-1413-20/+135
|\ \ | | | | | | | | | void main; todo updated
| * | fix std hover, full capture terminator, bare static calls, void main in ↵Gravatar zinc 2026-10-1413-19/+133
| |/ | | | | | | | | | | | | | | | | | | | | | | | | 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
| |
* | jit_x64_test: run programs in a scratch directory so bareio's note stays out ↵Gravatar zinc 2026-10-141-4/+6
| | | | | | | | of the tree
* | Merge the x86-64 jit, phase 1; todo: tick it, add phase 2Gravatar zinc 2026-10-147-39/+668
|\ \
| * | x86-64 jit: zyi target, ZYNOO3, bench and test timeouts, docs; drop a stray fileGravatar zinc 2026-10-146-20/+33
| | |
| * | x86-64 jit: translate ordinary vm blocks to x86-64 on linux, o3 regions on ↵Gravatar zinc 2026-10-143-15/+625
| | | | | | | | | | | | the region interpreter
* | | 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-1429-10517/+10636
|\ \ | | | | | | | | | | | | 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-1429-10513/+10631
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | |
* | | Merge branch 'worktree-agent-ac140cf83750c2604' into ccr-0054c02e-dfdvndGravatar zinc 2026-10-143-2/+1095
|\ \ \
| * | | docs: add SPEC.md, the first written specification of zcGravatar zinc 2026-10-143-2/+1095
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reference for lexing, types, expressions (full precedence table), statements, declarations, the ownership analyzer and its messages, compile-time execution and the runtime contract, with appendices for the zc0 subset and for doc/implementation disagreements and bugs found while checking the rules against build/bin/zy. Pointers added to README.md and ONBOARD.md.
* | | | 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.
* | | | Merge branch 'worktree-agent-a0734822346ae18db' into ccr-0054c02e-dfdvndGravatar zinc 2026-10-146-52/+285
|\ \ \ \ | |_|/ / |/| | |
| * | | zc0: byte string types, u/m/d as names, enhancements in asmGravatar zinc 2026-10-146-52/+285
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | bstr locals, globals, parameters and returns are byte strings for + , the comparisons, indexing, slicing, len and put_s; b"..." globals; embed inside a function. u, m and d are ordinary names: a recast is the letter with the star touching it (u*x), tags .u .m .d are accepted on types and bare. an enhancement named inside asm { } emits its opcode. zc0's image of the genome and language server sources is unchanged.
* | | todo: tick the parity runner; zc0 follow-ups it foundGravatar zinc 2026-10-141-1/+3
| | |
* | | Merge branch 'worktree-agent-aaf6bc066598a6622' into ccr-0054c02e-dfdvndGravatar zinc 2026-10-147-3/+292
|\ \ \
| * | | parity: compare what zc0 and the self-hosted compiler printGravatar zinc 2026-10-147-3/+292
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | src/tools/parity.sh compiles each program of tests/programs, examples and examples/learn with zc0 (runtime, program, mkgenome, a microcore with the image embedded, kept under build/parity/) and runs it beside build/bin/zy < prog.zc, then compares stdout. what zc0 rejects is skipped and counted. tests/parity.known lists the differences that are by design (zc0 has no ownership analysis or memdebug checks). make parity runs it. tests/programs/parity_ops.zc pins operator precedence and associativity across every binary operator, unary operators, assignment and short-circuit order; its output matches a c compiler's.
* | | | 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
| | |
* | | Merge branch 'worktree-agent-a3354164c07827b2e' into ccr-0054c02e-dfdvndGravatar zinc 2026-10-1418-14/+326
|\ \ \
| * | | add c-style typedef and a built-in string aliasGravatar zinc 2026-10-1418-14/+326
| |/ / | | | | | | | | | | | | | | | | | | | | | typedef T name; binds name to the type record of T, at the top level or in a function (scoped to its block). string is a built-in alias for char*. A type name straight before , or ) in a parameter list is the parameter's name, so fn f(string) still works. The language server shows typedef T name; on hover and highlights typedef as a keyword.
* | / todo: tick struct constants and member typos; add follow-ups and the spec workGravatar zinc 2026-10-141-1/+7
| |/ |/|
* | Merge branch 'worktree-agent-a96a10dc1489688ea' into ccr-0054c02e-dfdvndGravatar zinc 2026-10-149-7/+173
|\ \
| * | constants inside structs, and typo suggestions for fields and static membersGravatar zinc 2026-10-149-7/+173
| |/ | | | | | | | | | | | | | | const NAME = e; inside a struct body declares a compile-time constant named Struct.NAME, reached as Struct.NAME or by bare name in the struct's methods. A misspelled field or Struct.name member now ends its error with '; did you mean 'name'?' on the member word, which the language server turns into a quick fix.
* | Merge std library docsGravatar zinc 2026-10-144-47/+145
|\ \
| * | document the standard library apiGravatar zinc 2026-10-144-47/+145
| |/ | | | | | | | | | | | | | | | | | | | | every public declaration in src/lib/std.zc has a comment directly above it, so the language server can show it. comments only; no code changed. the comments now match the bodies: Host.env and Bytes.env report the characters copied (at most n - 1), capture drops output past 256 characters, and Buf.set can raise the length past the current end. adds examples/std_tour.zc, which calls one or two functions from each group, and points the README standard-library section at it.
* | 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-147-1230/+8
|/ | | | | | | | | | | | - 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
|