| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |\ \ \
| | |/
| |/| |
|
| | |\ \
| | |/
| |/| |
|
| | | |
| | |
| | |
| | | |
check, docs (readme, spec 4.15 and friends, server, vscode), conformance and test.sh fixes, todo
|
| | | |
| | |
| | |
| | | |
main in o3call, o3 tests expect no check, boundsrules, bounds_fixed, bounds_heap and zc0unbounded tests
|
| | |\ \ |
|
| | | |/
| | |
| | |
| | | |
64-word scan; regression program
|
| | | |
| | |
| | |
| | | |
programs agree with spec 3.4.3
|
| | | |
| | |
| | |
| | | |
(spec 1.6.3)
|
| | | |
| | |
| | |
| | | |
hex, wrapping (appendix b.1.11)
|
| | | | |
|
| | | |
| | |
| | |
| | | |
(appendix b.2.5)
|
| | | |
| | |
| | |
| | | |
(appendix b.2.9)
|
| | | |
| | |
| | |
| | | |
b.2.7)
|
| | | |
| | |
| | |
| | | |
definition (appendix b.2.4)
|
| | | |
| | |
| | |
| | | |
twice' (appendix b.2.3)
|
| | | | |
|
| | | | |
|
| |/ /
| |
| |
| | |
trace line
|
| |\ \
| |/
|/| |
|
| | |
| |
| |
| | |
test.sh -q; todo notes for the seven fixes
|
| | |
| |
| |
| | |
when it has fields (spec 4.7.3)
|
| | |
| |
| |
| | |
the scrub program reads the freed word through asm
|
| | |
| |
| |
| | |
yields 0 (typecheck off, spec 4.8.3)
|
| | | |
|
| | |
| |
| |
| | |
(int*)s indexes words
|
| | |
| |
| |
| | |
(spec 1.6.3)
|
| | |
| |
| |
| | |
function's first statement is reported
|
| |\| |
|
| | |\ |
|
| | | |
| | |
| | |
| | | |
sections 5 to 8 and appendix b, known.txt, zc0 skips, wire into test.sh
|
| | | | |
|
| | | |
| | |
| | |
| | | |
runerr.sh runs every folder it is given
|
| | | | |
|
| | |/ |
|
| |/
|
|
| |
x86-64 jit, docs, measurements, tests; default genome reservation 0x68000
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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).
|
| |\ \
| | |
| | |
| | | |
void main; todo updated
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| | |
of the tree
|
| |\ \
| |/
|/| |
|
| | | |
|
| | |
| |
| |
| | |
the region interpreter
|
| |\ \
| | |
| | |
| | |
| | | |
also: ca_owners in the language server keeps the owner order in a fixed
array instead of a heap list the analyzer rejected.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| |\ \ \
| |/ /
|/| | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| |\ \ \
| |_|/
|/| | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| |\ \ \
| |_|/
|/| | |
|