<feed xmlns='http://www.w3.org/2005/Atom'>
<title>moon/zygotec/src/compiler/lex.zc, branch work/uninit-locals</title>
<subtitle> work-in-progress programming language.
</subtitle>
<id>https://git.downsta.ir/moon/zygotec/atom?h=work%2Funinit-locals</id>
<link rel='self' href='https://git.downsta.ir/moon/zygotec/atom?h=work%2Funinit-locals'/>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/'/>
<updated>2026-10-15T18:45:38+00:00</updated>
<entry>
<title>definite assignment: reading a local before it is initialized is a compile error (spec 4.1.5, b.1.9)</title>
<updated>2026-10-15T18:45:38+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-15T18:45:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=be43babc1886fc5efee898b2a3d0285012e511fb'/>
<id>urn:sha1:be43babc1886fc5efee898b2a3d0285012e511fb</id>
<content type='text'>
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, &amp;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
</content>
</entry>
<entry>
<title>duplicate case labels are an error (b.2.15); unterminated string literal reported where it starts (b.2.11); an unreachable droppable cycle drops whole in one collection (6.15.3)</title>
<updated>2026-10-15T14:59:55+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-15T14:59:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=e7fe081efaae893ed46548fdbc3bfa39b2879878'/>
<id>urn:sha1:e7fe081efaae893ed46548fdbc3bfa39b2879878</id>
<content type='text'>
</content>
</entry>
<entry>
<title>bool: normalising into a bool keeps an incompatible source type, so the return type check still fires (fixes typeerrors/ret.zc after b.2.6)</title>
<updated>2026-10-14T13:28:59+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-14T13:28:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=041c887fc081bbc9a40c3a7381866b9ff6902bc0'/>
<id>urn:sha1:041c887fc081bbc9a40c3a7381866b9ff6902bc0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>lexer: a block comment that is never closed is 'unterminated comment' (appendix b.2.11)</title>
<updated>2026-10-14T13:20:41+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-14T13:20:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=ccbc77c2d3fa348d0de6f32fc540468401e6880b'/>
<id>urn:sha1:ccbc77c2d3fa348d0de6f32fc540468401e6880b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>bool: a value stored into a bool is normalised to 0 or 1 (appendix b.2.6)</title>
<updated>2026-10-14T13:19:40+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-14T13:19:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=aadfdb87fdb42b42434358e643da8c98dd4647b2'/>
<id>urn:sha1:aadfdb87fdb42b42434358e643da8c98dd4647b2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>line tables and backtraces: port agent/line-tables onto main, op 56 on the x86-64 jit, docs, measurements, tests; default genome reservation 0x68000</title>
<updated>2026-10-14T12:22:01+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-14T12:22:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=7c54e48bca711a6596be4bb17fcaa4330b9928e3'/>
<id>urn:sha1:7c54e48bca711a6596be4bb17fcaa4330b9928e3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>split compiler.zc into files by phase</title>
<updated>2026-10-14T10:05:40+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-14T10:05:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=ce920b6ff47f32bc06dd27124e1b882f82f3d6ae'/>
<id>urn:sha1:ce920b6ff47f32bc06dd27124e1b882f82f3d6ae</id>
<content type='text'>
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.
</content>
</entry>
</feed>
