aboutsummaryrefslogtreecommitdiff
path: root/src/compiler/builtins.zc
Commit message (Collapse)AuthorAgeFilesLines
* analyzer: check borrow returns of forward-called functions at the unit's ↵Gravatar zinc 12 days1-1/+5
| | | | end; borrows clause for prototypes, definitions, externs and function types, checked against the body
* analyzer: use-after-end messages name the borrower, the owner and how the ↵Gravatar zinc 12 days1-1/+1
| | | | owner ended (freed, moved, .d parameter, push, global, reassignment), with fixtures
* actor: a declared actor without its own drop gets one that awaits owed ↵Gravatar zinc 13 days1-1/+3
| | | | replies and closes the endpoint; the handler reaches the struct through endpoint.state so the struct isn't shared; spawn hint skips mailbox structs
* destructors: hint: x: has drop and is live at spawn; the worker's copy drops ↵Gravatar zinc 13 days1-0/+13
| | | | it too, on x.spawn() of a mailbox struct for each live owned local with a drop; spec 6.15.4, lsp hint check
* destructors: nothing moves out of a value with a drop: pop on an array with ↵Gravatar zinc 13 days1-1/+8
| | | | a drop, or on an array field of a value with a drop, is error: a: can't move out of a value with drop (fields were already borrowed projections); spec 6.15.5, four conformance programs
* destructors: heap(v), drop(v, f) / v.drop(f) / v.drop = f, struct drop ↵Gravatar zinc 13 days1-0/+93
| | | | methods, collector drops after the sweep (once, resurrection), freed blocks forget their drop, temporaries drop at statement end with a hint, actor send check; o3: no collection inside a region (pending until the outermost exit), no drops set or ended inside o3; spec 3.11.6, 4.10.3-4, 6.15
* bounds: body scan, loop-entry hoisting, pointer proofs from requested size, ↵Gravatar zinc 13 days1-0/+3
| | | | --explain-checks v1 (non-o3 code)
* len: len on a char* is an error with typecheck off too (appendix b.2.14)Gravatar zinc 13 days1-1/+2
|
* enum: a member is defined as soon as it is declared, so later values can ↵Gravatar zinc 13 days1-2/+6
| | | | name it (appendix b.2.2)
* Merge branch 'main' into work/specGravatar zinc 13 days1-0/+1
|\
| * merge bounds checkingGravatar zinc 13 days1-0/+1
| |\
| | * bounds checking: port agent/bounds-checking onto main 0879d0a; unbounded ↵Gravatar zinc 13 days1-0/+1
| | | | | | | | | | | | main in o3call, o3 tests expect no check, boundsrules, bounds_fixed, bounds_heap and zc0unbounded tests
* | | include: written inside a function body is 'include is top level only' ↵Gravatar zinc 13 days1-0/+1
|/ / | | | | | | (appendix b.2.9)
* | merge: seven self-hosted compiler fixes from conformanceGravatar zinc 13 days1-1/+1
|\ \ | |/ |/|
| * memdebug: accept 'memdebug scrub;' (the check compared against rt.scrub); ↵Gravatar zinc 13 days1-1/+1
| | | | | | | | the scrub program reads the freed word through asm
* | line tables and backtraces: port agent/line-tables onto main, op 56 on the ↵Gravatar zinc 13 days1-1/+10
|/ | | | x86-64 jit, docs, measurements, tests; default genome reservation 0x68000
* split compiler.zc into files by phaseGravatar zinc 13 days1-0/+1423
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.