<feed xmlns='http://www.w3.org/2005/Atom'>
<title>moon/zygotec/tests/programs, 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>fix: bytes test read one byte past the fixed map into the heap</title>
<updated>2026-10-15T14:44:02+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-15T14:44:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=4fb4dffa202bb7a09eb2c0c2784f28eb11137f04'/>
<id>urn:sha1:4fb4dffa202bb7a09eb2c0c2784f28eb11137f04</id>
<content type='text'>
rt.MW is the end of the fixed map (PW) since the growing heap landed; the
heap starts right there, so ld16(addr_b(rt.MW)-1) read the heap's first
byte: 0 on the default map by luck, 0x40 on the small map (16384).
Probe the real byte-op bound instead: core answers syscall(9,10) with the
host reservation MW; micro ports, whose bound is their memory size, fall
back to syscall(9,0).
</content>
</entry>
<entry>
<title>analyzer: check borrow returns of forward-called functions at the unit's end; borrows clause for prototypes, definitions, externs and function types, checked against the body</title>
<updated>2026-10-15T06:26:19+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-15T06:26:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=6bbac2edf7c50dac4d755a364b6dfd16471284d7'/>
<id>urn:sha1:6bbac2edf7c50dac4d755a364b6dfd16471284d7</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>x86-64 jit: inline new_k, recycle_leaf and own fast paths, in o3 regions and plain blocks</title>
<updated>2026-10-15T04:00:53+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-15T04:00:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=63ff1aacf764e692a7a29a7c0043278f637f1dbb'/>
<id>urn:sha1:63ff1aacf764e692a7a29a7c0043278f637f1dbb</id>
<content type='text'>
a call to rt.new_k / rt.recycle_leaf with a constant class, or to rt.own,
does its class-list pop or push (or owner store) inline and goes on after
the call; an empty list, memdebug, a held range, a block outside memory, a
translated word or a type/class mismatch takes the ordinary call. in a
region this replaces the o3_invoke round trip. o3 frees of leaf objects now
use recycle_leaf too (new_k stamps the type inside o3 since b86db60).
ZYNOFASTALLOC=1 turns it off; ZYPERFMAP=1 writes a perf map of translated code.
tests/programs/o3_freelist.zc: reuse, zeroing, an empty list, untyped
neighbours, memdebug; jit vs ZYNOFASTALLOC vs ZYO3INTERP.
</content>
</entry>
<entry>
<title>prover: do not restore length facts after a call-loop</title>
<updated>2026-10-15T01:55:58+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-15T01:55:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=a6e52065bb7eaee3bbef5a1c3f879c616e3d24bc'/>
<id>urn:sha1:a6e52065bb7eaee3bbef5a1c3f879c616e3d24bc</id>
<content type='text'>
Restoring undirtied lafacts when the body might free was wrong: push can
grow an array without dirtying its name, so a[99] after push warned against
a stale length 0. Keep the old lafact_keep rule; reorder explain_prover so
the constant/affine cases run before the touch() loops.
</content>
</entry>
<entry>
<title>prover: len/cross-array/fixed-new/affine proofs; keep facts past call loops</title>
<updated>2026-10-15T01:53:36+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-15T01:53:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=fe43cc41876ffdb3e714de8efc8a2907d456b5db'/>
<id>urn:sha1:fe43cc41876ffdb3e714de8efc8a2907d456b5db</id>
<content type='text'>
Rebased the prover WIP onto main. lafact_keep restores undirtied allocation
facts even when the loop body might free (so a later touch() no longer drops
every length fact). proven_p uses ptr_still so an outer call keeps the check.
entry_fact still supplies the size for the "might free" explain reason.
bounds_prover.zc and explain_prover.zc land with test.sh coverage.
</content>
</entry>
<entry>
<title>wip: prover gaps (inline len bound, cross-array, rt.new depth, fixed new, affine i*n+k); unbuilt and untested</title>
<updated>2026-10-15T01:47:02+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-14T17:16:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=a1d546cc74a72abc4973bf96f72bbd529320d711'/>
<id>urn:sha1:a1d546cc74a72abc4973bf96f72bbd529320d711</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>genmap: default genome reservation 0x70000 words (the genome had 197 words left); the map constants in rt.zc and the README table move by 0x8000; gc.zc's reclaim bound is 900 (937 with the heap higher, 952 before) and the run-only section rewrites whatever its number</title>
<updated>2026-10-14T23:10:51+00:00</updated>
<author>
<name>zinc</name>
<email>zinc@downsta.ir</email>
</author>
<published>2026-10-14T23:04:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.downsta.ir/moon/zygotec/commit/?id=4ff9e3b89fa1dca5d5981a22e5d41ac5f36ad11d'/>
<id>urn:sha1:4ff9e3b89fa1dca5d5981a22e5d41ac5f36ad11d</id>
<content type='text'>
</content>
</entry>
</feed>
