<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pure/core/module-batch.c, branch master</title>
<subtitle>Verified execution runtime unifying state, persistence, and replication.
</subtitle>
<id>http://git.yeowoo.org/pure/atom?h=master</id>
<link rel='self' href='http://git.yeowoo.org/pure/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/'/>
<updated>2026-10-11T10:49:52Z</updated>
<entry>
<title>Batch executor: the round's fewest-left marks at the end of Batch: put after spare_count they moved its large arrays and knapsack ran 7% slower at the same instructions (8.79 against 8.29 ms), at its end about 2% (8.45); research 139's afterword: 026 not taken heavily (the user's word), the one light cut made (a nested count loop's rounds sweeping only when few lanes are left: matmul 25.85 to 24.3 ms), the walk loops kept sweeping each round (held, BFS's batches ran out), and the stop; 041 runs of b21</title>
<updated>2026-10-11T10:49:52Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-10-11T10:49:52Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=338c6653e545e18178316975123d9789e6885d28'/>
<id>urn:sha1:338c6653e545e18178316975123d9789e6885d28</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Batch executor: a nested count loop's rounds sweep their lanes and masks back only when fewer are left than the most a round has taken and one (fresh and new_mask keep the fewest left; nested rounds' marks given back to the rounds around), else once after the loop as the last round did; matmul 3.6% fewer instructions, 4.5% fewer cycles (a sweep a k-round); a walk's rounds and a spread walk's chunks still sweep each: so held, BFS's batches ran out of lanes and went back to the executor (36.9 ms, the answers the same), what their filters and selections take not told by a round's fewest left; seeds 1 2 3 5 23 (default and PURE_SELECT=all), the fixed sources (also sanitized), the unit tests and ASan's pass</title>
<updated>2026-10-11T10:44:32Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-10-11T10:44:32Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=ce18bc417b4b329065b883a63553419e122e1939'/>
<id>urn:sha1:ce18bc417b4b329065b883a63553419e122e1939</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Batch executor, stage 5 of design 025: decide finds a kept round's bit once (an add of the key it asked, as a filter's is, takes the place found) and clears only the words of the bits it set (their places kept as it sets them): BFS 0.4% fewer instructions; seeds 1 2 3 5 23 (default and PURE_SELECT=all), the fixed sources (GRAPH's exists, memory and work faults where they were) and the unit tests pass</title>
<updated>2026-10-09T13:32:32Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-10-09T13:32:32Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=aa4edf2e592e96daa4475fbf6756b8630bb7e7c5'/>
<id>urn:sha1:aa4edf2e592e96daa4475fbf6756b8630bb7e7c5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Batch executor, stage 5 of design 025: the sums into cells at once from round 0 (sums_in_words): the rows and e's in four bytes first (vector code) up to the first round whose e is not a whole number below 2^32, then each round's sums in turn in integers for a one- or four-byte cell while it stays in its bytes, as a number for an eight-byte cell while finite; where one is not so the executor's way goes on from that round and sum (nothing faulted or widened before it); join 4.9% fewer cycles; SUMS_SOURCE in check.py (sixteen rows met again and again, a one-byte column widened mid-batch, a four-byte one past 2^32, a masked fraction), 7,912 rounds at once and 3,228 the other way, the same three ways; seeds 1 2 3 5 23 (default and PURE_SELECT=all), the fixed sources (also sanitized) and the unit tests pass</title>
<updated>2026-10-09T13:24:51Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-10-09T13:24:51Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=82b99bfaa673265778df511b36ab22f0563049c0'/>
<id>urn:sha1:82b99bfaa673265778df511b36ab22f0563049c0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Batch executor, stage 4 of design 025: a four-byte comparison counts its 1s in its own loop (TEST, a vector add in the same loop) and its value carries the count (ones), so the branch after it in every running lane needs not count them; seeds 1 2 3 5 23 (default and PURE_SELECT=all), the fixed sources and the unit tests pass</title>
<updated>2026-10-08T16:10:34Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-10-08T16:10:34Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=c38f9f11145445b4d4e3d284fd1256cc891bb3db'/>
<id>urn:sha1:c38f9f11145445b4d4e3d284fd1256cc891bb3db</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Batch executor, stage 4 of design 025: a column read at affine rows in memory's order in four or eight bytes is a view of the column itself (cells_at), no copy, read only while the pass runs; what outlives the pass (a local, a set's rows and value, an append's cells, a sum's rows and e, a filter's key, a read's rows) copies it (own); knapsack 4.0% fewer instructions, 6.6% fewer cycles; VIEW_SOURCE in check.py (a local holding a field the batch sets, a set from the same column in the order that overwrites what it reads, a set widening the column under a view), which differs and trips ASan's memcpy overlap when the copies are left out; seeds 1 2 3 5 23 (default and PURE_SELECT=all), the fixed sources (also sanitized) and the unit tests pass</title>
<updated>2026-10-08T16:04:12Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-10-08T16:04:12Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=ba35fb24dd8105f2b6492c103c4cb2471b15b715'/>
<id>urn:sha1:ba35fb24dd8105f2b6492c103c4cb2471b15b715</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Batch executor: a list's cells once a batch (cells_of, the first four lists its pass reads): no list changes while the pass runs (sets, appends and filters wait for its end, which reads its own); find and item_get read them there; matmul 2.3% fewer instructions (two finds a nested round), knapsack and BFS 0.4%; seeds 1 2 3 5 23 (default and PURE_SELECT=all), the fixed sources and the unit tests pass</title>
<updated>2026-10-08T15:19:29Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-10-08T15:19:29Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=e7760db551322810de7824f25a38e9f8f737b0ce'/>
<id>urn:sha1:e7760db551322810de7824f25a38e9f8f737b0ce</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Batch executor, stage 3 of design 025: a reduction starts with no lanes: while every step adds (or takes the least or most of) the same e in every lane, every lane's partial is one number and its count one count, made as each lane would make them; the first step that differs makes the lanes from them; fold takes n times the one number (whole numbers below 2^53, as the lanes' sums) or folds it in the rounds' order; sum0 6.09 to 1.01 ms; seeds 1 2 3 5 23 (default and PURE_SELECT=all), the fixed sources and the unit tests pass</title>
<updated>2026-10-08T15:07:59Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-10-08T15:07:59Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=38f54aca6491eddfc706a80649e49a592340c6ba'/>
<id>urn:sha1:38f54aca6491eddfc706a80649e49a592340c6ba</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Batch executor: select and deselect named select_arm and deselect_arm (POSIX's select in a build without -std=c17 refused the file)</title>
<updated>2026-10-08T15:00:29Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-10-08T15:00:29Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=4be994ba81e5902620550fd25e4a875ce0ba0b7d'/>
<id>urn:sha1:4be994ba81e5902620550fd25e4a875ce0ba0b7d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Batch executor, stage 3 of design 025: four-byte MUL (words_op): a product below 2^32 of whole numbers below it in four-byte lanes, past it the product's high half sends the lanes back to numbers as ADD's sum does (umull and umull2 over four lanes); matmul's products and sums stay in four bytes; seeds 1 2 3 5 23 (default and PURE_SELECT=all), the fixed sources and the unit tests pass</title>
<updated>2026-10-08T14:57:16Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-10-08T14:57:16Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=d371271c3fcf8ac527f2061ece9ba38f3e009e3e'/>
<id>urn:sha1:d371271c3fcf8ac527f2061ece9ba38f3e009e3e</id>
<content type='text'>
</content>
</entry>
</feed>
