aboutsummaryrefslogtreecommitdiff
path: root/src/compiler/lex.zc
Commit message (Collapse)AuthorAgeFilesLines
* definite assignment: reading a local before it is initialized is a compile ↵Gravatar zinc 12 days1-1/+1
| | | | | | error (spec 4.1.5, b.1.9) track linited per local alongside the ownership state; snapshots, exit records and joins carry it, and a join keeps a local set only when every reaching path set it. x = e, a declaration initializer, &x (out-parameter), a full array initializer, or using an aggregate as an address set a local; field and element writes do not set the aggregate. while/for bodies that may run zero times do not count; do/while does. compiler, runtime, std, actor and lsp sources initialize the locals the rule flagged; zc0 accepts = {} brace lists (zeroed). tests: tests/errors/uninit_*.zc, tests/conformance/4-statements/uninit_*.zc
* duplicate case labels are an error (b.2.15); unterminated string literal ↵Gravatar zinc 12 days1-2/+4
| | | | reported where it starts (b.2.11); an unreachable droppable cycle drops whole in one collection (6.15.3)
* bool: normalising into a bool keeps an incompatible source type, so the ↵Gravatar zinc 13 days1-1/+2
| | | | return type check still fires (fixes typeerrors/ret.zc after b.2.6)
* lexer: a block comment that is never closed is 'unterminated comment' ↵Gravatar zinc 13 days1-0/+2
| | | | (appendix b.2.11)
* bool: a value stored into a bool is normalised to 0 or 1 (appendix b.2.6)Gravatar zinc 13 days1-0/+5
|
* line tables and backtraces: port agent/line-tables onto main, op 56 on the ↵Gravatar zinc 13 days1-2/+27
| | | | x86-64 jit, docs, measurements, tests; default genome reservation 0x68000
* split compiler.zc into files by phaseGravatar zinc 13 days1-0/+652
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.