aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* merge line tablesGravatar zinc 13 days31-48/+634
|\
| * merge main into work/line-tablesGravatar zinc 13 days670-43/+7355
| |\ | |/ |/|
* | merge spec conformance suiteGravatar zinc 13 days661-3/+6143
|\ \
| * | conformance: port the previous agent's suite, fix six expectations, add ↵Gravatar zinc 13 days146-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 13 days553-0/+5294
| | |
* | | xref self-test: a real write in a compiler copy, reject unknown options; ↵Gravatar zinc 13 days4-16/+42
| | | | | | | | | | | | runerr.sh runs every folder it is given
* | | merge xref report: baseline, --check, self-testGravatar zinc 13 days10-32/+1178
|\ \ \ | |/ / |/| |
| * | xref: checked-in baseline, --check self-test hooked into the lsp section, todoGravatar zinc 13 days5-29/+702
| | |
| * | agent/xref-report: unmerged work from previous sessionGravatar zinc 13 days6-4/+477
|/ /
| * line tables and backtraces: port agent/line-tables onto main, op 56 on the ↵Gravatar zinc 13 days31-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 13 days1-23/+170
|
* todo: test blocks, destructors and record/replay in flightGravatar zinc 13 days1-4/+7
|
* parity: clear links from earlier runs so a program's writes never reach the treeGravatar zinc 13 days1-0/+3
|
* Merge the defer statement; todo: tick it, add its follow-upsGravatar zinc 13 days23-7/+514
|\
| * zc: add the defer statementGravatar zinc 13 days23-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 13 days13-20/+135
|\ \ | | | | | | | | | void main; todo updated
| * | fix std hover, full capture terminator, bare static calls, void main in ↵Gravatar zinc 13 days13-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 13 days1-3/+4
| |
* | jit_x64_test: run programs in a scratch directory so bareio's note stays out ↵Gravatar zinc 13 days1-4/+6
| | | | | | | | of the tree
* | Merge the x86-64 jit, phase 1; todo: tick it, add phase 2Gravatar zinc 13 days7-39/+668
|\ \
| * | x86-64 jit: zyi target, ZYNOO3, bench and test timeouts, docs; drop a stray fileGravatar zinc 13 days6-20/+33
| | |
| * | x86-64 jit: translate ordinary vm blocks to x86-64 on linux, o3 regions on ↵Gravatar zinc 13 days3-15/+625
| | | | | | | | | | | | the region interpreter
* | | todo: record the vision, priorities and settled feature decisions; add the ↵Gravatar zinc 13 days1-0/+94
| | | | | | | | | | | | items they imply
* | | todo: no zc0 structs; records become grouped, documented arrays; in-flight ↵Gravatar zinc 13 days1-10/+20
| |/ |/| | | | | list updated
* | todo: handoff section with state, conventions, in-flight work and ↵Gravatar zinc 13 days1-35/+96
| | | | | | | | architecture notes
* | todo: zc0 structs before the records refactorGravatar zinc 13 days1-1/+2
| |
* | Merge the compiler split into phase filesGravatar zinc 13 days29-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 13 days29-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 13 days1-1/+2
| | |
* | | Merge branch 'worktree-agent-ac140cf83750c2604' into ccr-0054c02e-dfdvndGravatar zinc 13 days3-2/+1095
|\ \ \
| * | | docs: add SPEC.md, the first written specification of zcGravatar zinc 13 days3-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 13 days1-1/+2
| | | | | | | | | | | | | | | | parity now compares 60 programs with no unexpected difference.
* | | | Merge branch 'worktree-agent-a0734822346ae18db' into ccr-0054c02e-dfdvndGravatar zinc 13 days6-52/+285
|\ \ \ \ | |_|/ / |/| | |
| * | | zc0: byte string types, u/m/d as names, enhancements in asmGravatar zinc 13 days6-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 13 days1-1/+3
| | |
* | | Merge branch 'worktree-agent-aaf6bc066598a6622' into ccr-0054c02e-dfdvndGravatar zinc 13 days7-3/+292
|\ \ \
| * | | parity: compare what zc0 and the self-hosted compiler printGravatar zinc 13 days7-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 13 days1-0/+4
| |_|/ |/| |
* | | todo: tick typedefs and the string aliasGravatar zinc 13 days1-2/+2
| | |
* | | Merge branch 'worktree-agent-a3354164c07827b2e' into ccr-0054c02e-dfdvndGravatar zinc 13 days18-14/+326
|\ \ \
| * | | add c-style typedef and a built-in string aliasGravatar zinc 13 days18-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 13 days1-1/+7
| |/ |/|
* | Merge branch 'worktree-agent-a96a10dc1489688ea' into ccr-0054c02e-dfdvndGravatar zinc 13 days9-7/+173
|\ \
| * | constants inside structs, and typo suggestions for fields and static membersGravatar zinc 13 days9-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 13 days4-47/+145
|\ \
| * | document the standard library apiGravatar zinc 13 days4-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 13 days1-2/+2
| |
* | docs: remove temporary notes and fix onboarding driftGravatar zinc 13 days7-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 13 days1-1/+1
|
* todo: one sorted list of open work; library suggestions without naming librariesGravatar zinc 13 days14-38/+148
| | | | | | | | | | | | | | 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.