<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Zig on tsvinc</title>
		<link>https://tsvinc.dev/tags/zig/</link>
		<description>Recent content in Zig on tsvinc</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<lastBuildDate>Fri, 16 Oct 2026 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://tsvinc.dev/tags/zig/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>The engine got credit for the quant</title>
				<link>https://tsvinc.dev/posts/engine-got-credit-for-the-quant/</link>
				<pubDate>Fri, 16 Oct 2026 00:00:00 +0000</pubDate>
				<guid>https://tsvinc.dev/posts/engine-got-credit-for-the-quant/</guid>
				<description>&lt;p&gt;&lt;em&gt;Assumes you&#39;ve served a GGUF through llama.cpp and know what a quant is.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Two inference engines ran the same 17-gigabyte GGUF through the same nine Zig agent runs, and each finished with 7 PASS, 1 PARTIAL, 1 FAIL. A tie is a boring result. This one was the most useful number of the week, because the evening before, one of those engines had been beating the other 7 to 3.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Zig needed context, not time</title>
				<link>https://tsvinc.dev/posts/zig-needed-context-not-time/</link>
				<pubDate>Thu, 15 Oct 2026 00:00:00 +0000</pubDate>
				<guid>https://tsvinc.dev/posts/zig-needed-context-not-time/</guid>
				<description>&lt;p&gt;&lt;em&gt;Assumes you&#39;ve driven a coding agent against a local llama.cpp server and know what context compaction is.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;When an agent run dies at the wall clock, the obvious diagnosis is that it was slow, and the obvious fix is a longer wall. Four 27B models on a Zig task were hitting a one-hour limit in about half their runs at 64k context, so twelve runs of the test-first prompt got four hours instead.&lt;/p&gt;</description>
			</item>
			<item>
				<title>The deadlock test can&#39;t see a half-held lock</title>
				<link>https://tsvinc.dev/posts/deadlock-test-half-held-lock/</link>
				<pubDate>Tue, 13 Oct 2026 00:00:00 +0000</pubDate>
				<guid>https://tsvinc.dev/posts/deadlock-test-half-held-lock/</guid>
				<description>&lt;p&gt;&lt;em&gt;Assumes you have written a two-account transfer under per-account locks, and know what a mutation test is.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;At 128k context and a four-hour budget, four 27B local models ran a Zig ledger task 36 times through OpenCode. All 36 passed all 15 hidden core tests. All 36 had written their own concurrency test with real threads, because the prompt asked for one.&lt;/p&gt;&#xA;&lt;p&gt;Then the scorer removed the second account lock from each &lt;code&gt;transfer&lt;/code&gt; and ran everything again. The hidden suite failed on every mutant it could score. The models&#39; own suites failed in 4 of 11 scoreable spec runs, 0 of 9 clean review runs, and 6 of 9 test-first runs.&lt;/p&gt;</description>
			</item>
			<item>
				<title>I blamed OpenCode; a 2-bit model passed Zig in it</title>
				<link>https://tsvinc.dev/posts/blamed-opencode-flash-next/</link>
				<pubDate>Mon, 12 Oct 2026 00:00:00 +0000</pubDate>
				<guid>https://tsvinc.dev/posts/blamed-opencode-flash-next/</guid>
				<description>&lt;p&gt;&lt;em&gt;Assumes you&#39;ve driven a coding agent against a local llama.cpp server and know what MoE and a Q2 quant are.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;OpenCode has two features that look bad in a Zig agent run at 64k context.&lt;/p&gt;&#xA;&lt;p&gt;The first is auto-compaction. When the conversation fills the window, OpenCode summarizes it and carries on from the summary. OpenCode&#39;s config docs describe the default as compacting &amp;quot;when context is full&amp;quot;. On a Zig task, that window fills with compiler errors, test files and stress-test output, and a summary can only keep so much of it.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Zig&#39;s defer ends at the closing brace</title>
				<link>https://tsvinc.dev/posts/zig-defer-ends-at-closing-brace/</link>
				<pubDate>Mon, 12 Oct 2026 00:00:00 +0000</pubDate>
				<guid>https://tsvinc.dev/posts/zig-defer-ends-at-closing-brace/</guid>
				<description>&lt;p&gt;&lt;em&gt;Assumes you have guarded a critical section with a mutex and &lt;code&gt;defer unlock&lt;/code&gt; in Go.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Moving money between two accounts under per-account locks has one famous trap, and it is the order. Lock A then B in one thread, B then A in another, and the two transfers deadlock. The textbook answer is to sort the IDs and always lock the lower one first. It is in every concurrency chapter.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
