aboutsummaryrefslogtreecommitdiff
path: root/src/compiler/types.zc
Commit message (Collapse)AuthorAgeFilesLines
* analyzer: check borrow returns of forward-called functions at the unit's ↵Gravatar zinc 12 days1-1/+31
| | | | end; borrows clause for prototypes, definitions, externs and function types, checked against the body
* o3: an o3 function called from normal code as a receiver method (run.method) ↵Gravatar zinc 13 days1-1/+3
| | | | enters and leaves the region and fattens its result, like a direct call; spec 4.10.3, o3_receiver_method_enter.zc
* bounds checking: port agent/bounds-checking onto main 0879d0a; unbounded ↵Gravatar zinc 13 days1-4/+5
| | | | main in o3call, o3 tests expect no check, boundsrules, bounds_fixed, bounds_heap and zc0unbounded tests
* fix std hover, full capture terminator, bare static calls, void main in ↵Gravatar zinc 13 days1-2/+4
| | | | | | | | | | | | | 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 13 days1-0/+1003
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.