<feed xmlns='http://www.w3.org/2005/Atom'>
<title>moon/zygotec/src/lib, 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:58:06+00:00</updated>
<entry>
<title>uninit: track aggregate fills per part, sticky computed-index fills, &amp;a[k] and method calls set the aggregate; fix test/example hits; docs</title>
<updated>2026-10-15T18:58:06+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-15T18:58:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=5a4dc62a79af6135c7050e81a82dbfdfb0a7d4e0'/>
<id>urn:sha1:5a4dc62a79af6135c7050e81a82dbfdfb0a7d4e0</id>
<content type='text'>
</content>
</entry>
<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>std.Io.print/println take any mix of printable arguments (compiler expands per type); docs, conformance</title>
<updated>2026-10-15T11:30:36+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-15T11:30:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=a5a5029a80a14be46c244b5bcca63e5e2cd9026f'/>
<id>urn:sha1:a5a5029a80a14be46c244b5bcca63e5e2cd9026f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>std: add std.Io (print, println, nl, put_*, put_f, get_c, eof, read, getline) with test, learn example and docs</title>
<updated>2026-10-15T06:12:25+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-15T06:12:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=de4da84ca3159ad0ebcf13729716be5f4d7bbc2a'/>
<id>urn:sha1:de4da84ca3159ad0ebcf13729716be5f4d7bbc2a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>actor: a declared actor without its own drop gets one that awaits owed replies and closes the endpoint; the handler reaches the struct through endpoint.state so the struct isn't shared; spawn hint skips mailbox structs</title>
<updated>2026-10-14T23:21:54+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-14T23:21:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=fc89e5ea115d6da2217b52a87ba8eb73c207e916'/>
<id>urn:sha1:fc89e5ea115d6da2217b52a87ba8eb73c207e916</id>
<content type='text'>
</content>
</entry>
<entry>
<title>std: File, the first user of drops: std.Host.open(path, mode) returns an owned std.File (or null) with write and read, and its drop closes the descriptor; Host.writefile is built on it; file_drop.zc, learn and readme</title>
<updated>2026-10-14T23:16:57+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-14T23:16:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=54d316a531ddb8e293711761e4f29e93d282599c'/>
<id>urn:sha1:54d316a531ddb8e293711761e4f29e93d282599c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>explain-checks: the record writer moves to src/lib/explain.zc, embedded and compiled only in that mode; the genome keeps the call sites and a hook</title>
<updated>2026-10-14T16:34:08+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-14T16:33:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=6a7fe0898a2bde8abd3c28697e28c9fc0cb1e7b2'/>
<id>urn:sha1:6a7fe0898a2bde8abd3c28697e28c9fc0cb1e7b2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>bounds checking: port agent/bounds-checking onto main 0879d0a; unbounded main in o3call, o3 tests expect no check, boundsrules, bounds_fixed, bounds_heap and zc0unbounded tests</title>
<updated>2026-10-14T12:28:58+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-14T12:28:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=d55b5fdf92a674a6495878f97a09e95bafdcba3f'/>
<id>urn:sha1:d55b5fdf92a674a6495878f97a09e95bafdcba3f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix std hover, full capture terminator, bare static calls, void main in run-only images</title>
<updated>2026-10-14T10:38:17+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-14T10:38:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=93340f97dce404a008f489729df144ace53528ab'/>
<id>urn:sha1:93340f97dce404a008f489729df144ace53528ab</id>
<content type='text'>
- 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.
</content>
</entry>
<entry>
<title>document the standard library api</title>
<updated>2026-10-14T09:32:37+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-14T09:32:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=35adc61f0b3d9e5748102df77655b90fa29eeb36'/>
<id>urn:sha1:35adc61f0b3d9e5748102df77655b90fa29eeb36</id>
<content type='text'>
every public declaration in src/lib/std.zc has a comment directly above it,
so the language server can show it. comments only; no code changed. the
comments now match the bodies: Host.env and Bytes.env report the characters
copied (at most n - 1), capture drops output past 256 characters, and Buf.set
can raise the length past the current end.

adds examples/std_tour.zc, which calls one or two functions from each group,
and points the README standard-library section at it.
</content>
</entry>
</feed>
