aboutsummaryrefslogtreecommitdiff
path: root/src/compiler/expr.zc
Commit message (Collapse)AuthorAgeFilesLines
* merge bounds checkingGravatar zinc 2026-10-141-12/+67
|\
| * bounds checking: constant loop bound proof works, plain-op fixed-array ↵Gravatar zinc 2026-10-141-6/+8
| | | | | | | | check, docs (readme, spec 4.15 and friends, server, vscode), conformance and test.sh fixes, todo
| * bounds checking: port agent/bounds-checking onto main 0879d0a; unbounded ↵Gravatar zinc 2026-10-141-11/+64
| | | | | | | | main in o3call, o3 tests expect no check, boundsrules, bounds_fixed, bounds_heap and zc0unbounded tests
* | merge: seven self-hosted compiler fixes from conformanceGravatar zinc 2026-10-141-3/+4
|\ \ | |/ |/|
| * casts: a cast clears the byte-string flag unless the type is bstr, so ↵Gravatar zinc 2026-10-141-0/+1
| | | | | | | | (int*)s indexes words
| * unary: u*x, m*x, d*x are not recasts when the tag names a visible local ↵Gravatar zinc 2026-10-141-1/+1
| | | | | | | | (spec 1.6.3)
| * capture_scan: restore panic after the dry scan, so a bad literal in a ↵Gravatar zinc 2026-10-141-2/+2
| | | | | | | | function's first statement is reported
* | line tables and backtraces: port agent/line-tables onto main, op 56 on the ↵Gravatar zinc 2026-10-141-1/+3
|/ | | | x86-64 jit, docs, measurements, tests; default genome reservation 0x68000
* fix std hover, full capture terminator, bare static calls, void main in ↵Gravatar zinc 2026-10-141-1/+3
| | | | | | | | | | | | | 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.
* split compiler.zc into files by phaseGravatar zinc 2026-10-141-0/+1912
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.