<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: healeycodes</title><link>https://news.ycombinator.com/user?id=healeycodes</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 29 Oct 2026 19:06:54 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=healeycodes" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Decompiling Fast Food Tycoon 2: Drawing the World]]></title><description><![CDATA[
<p>Article URL: <a href="https://healeycodes.com/decompiling-fast-food-tycoon-2-drawing-the-world">https://healeycodes.com/decompiling-fast-food-tycoon-2-drawing-the-world</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=50223739">https://news.ycombinator.com/item?id=50223739</a></p>
<p>Points: 207</p>
<p># Comments: 42</p>
]]></description><pubDate>Sat, 24 Oct 2026 18:17:57 +0000</pubDate><link>https://healeycodes.com/decompiling-fast-food-tycoon-2-drawing-the-world</link><dc:creator>healeycodes</dc:creator><comments>https://news.ycombinator.com/item?id=50223739</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50223739</guid></item><item><title><![CDATA[What Makes LLM Tokenization Slow?]]></title><description><![CDATA[
<p>Article URL: <a href="https://healeycodes.com/what-makes-llm-tokenization-slow">https://healeycodes.com/what-makes-llm-tokenization-slow</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49533844">https://news.ycombinator.com/item?id=49533844</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 02 Sep 2026 09:24:42 +0000</pubDate><link>https://healeycodes.com/what-makes-llm-tokenization-slow</link><dc:creator>healeycodes</dc:creator><comments>https://news.ycombinator.com/item?id=49533844</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49533844</guid></item><item><title><![CDATA[New comment by healeycodes in "Adding Go's Defer to the TypeScript Compiler"]]></title><description><![CDATA[
<p>Cool! I kinda feel like these should be built-in. But this looks useful for closing the DX gap here.</p>
]]></description><pubDate>Mon, 03 Aug 2026 05:35:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=49151588</link><dc:creator>healeycodes</dc:creator><comments>https://news.ycombinator.com/item?id=49151588</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49151588</guid></item><item><title><![CDATA[New comment by healeycodes in "Adding Go's Defer to the TypeScript Compiler"]]></title><description><![CDATA[
<p>Reasonably? Yes. Could probably be made to work well.<p><pre><code>  $ bat 2.ts
  ───────────────
     1 │ function one() {
     2 │   let x = 1;
     3 │   defer (() => { throw new Error("thrown from one!"); })()
     4 │   x = 2;
     5 │ }
     6 │ one();
  ─────┴─────────

  $ node 2.js
  ~/healeycodes-typescript-go/2.js:29
            throw _errors_1[0];
            ^

  Error: thrown from one!
      at _callee_1 (/Users/andrew/Documents/GitHub/healeycodes-typescript-go/2.js:9:46)
      at /Users/andrew/Documents/GitHub/healeycodes-typescript-go/2.js:10:33
      at one (/Users/andrew/Documents/GitHub/healeycodes-typescript-go/2.js:22:31)
      at Object.<anonymous> (/Users/andrew/Documents/GitHub/healeycodes-typescript-go/2.js:34:1)
      at Module._compile (node:internal/modules/cjs/loader:1830:14)
      at Object..js (node:internal/modules/cjs/loader:1961:10)
      at Module.load (node:internal/modules/cjs/loader:1553:32)
      at Module._load (node:internal/modules/cjs/loader:1355:12)
      at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
      at Module.executeUserEntryPoint [as runMain (node:internal/modules/run_main:154:5)

  Node.js v24.15.0</code></pre></p>
]]></description><pubDate>Mon, 03 Aug 2026 05:31:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=49151570</link><dc:creator>healeycodes</dc:creator><comments>https://news.ycombinator.com/item?id=49151570</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49151570</guid></item><item><title><![CDATA[New comment by healeycodes in "Adding Go's Defer to the TypeScript Compiler"]]></title><description><![CDATA[
<p>Author here. I find try/finally verbose and vulnerable to mistakes. For me, it adds "function noise".</p>
]]></description><pubDate>Mon, 03 Aug 2026 05:21:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=49151517</link><dc:creator>healeycodes</dc:creator><comments>https://news.ycombinator.com/item?id=49151517</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49151517</guid></item><item><title><![CDATA[Adding Go's Defer to the TypeScript Compiler]]></title><description><![CDATA[
<p>Article URL: <a href="https://healeycodes.com/adding-defer-to-the-typescript-compiler">https://healeycodes.com/adding-defer-to-the-typescript-compiler</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49147853">https://news.ycombinator.com/item?id=49147853</a></p>
<p>Points: 21</p>
<p># Comments: 29</p>
]]></description><pubDate>Sun, 02 Aug 2026 20:12:39 +0000</pubDate><link>https://healeycodes.com/adding-defer-to-the-typescript-compiler</link><dc:creator>healeycodes</dc:creator><comments>https://news.ycombinator.com/item?id=49147853</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49147853</guid></item><item><title><![CDATA[New comment by healeycodes in "A Tiny Compiler for Data-Parallel Kernels"]]></title><description><![CDATA[
<p>You're right that my post's algo does not handle this case (it's more of a toy to explain the basic cases).<p>> When I read Allan and Kennedy my impression was that vectorising arbitrary imperative code is a much harder problem than designing a language that only allows for vectorisable constructs to be expressed in the first place.<p>Yeah, I buy this.<p>> In my example that would produce different code, requiring a multiplication:<p><pre><code>  lambda i: table[(phase0 + i*inc) % TABLE_LEN]
</code></pre>
I think some compilers may lower this without the multiplication.. (e.g. turning it back into an induction variable) but with floats they may not be allowed to, since repeated addition and "phase0 + i*inc" are not strictly equal.</p>
]]></description><pubDate>Sat, 27 Jun 2026 05:04:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=48695306</link><dc:creator>healeycodes</dc:creator><comments>https://news.ycombinator.com/item?id=48695306</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48695306</guid></item><item><title><![CDATA[A Tiny Compiler for Data-Parallel Kernels]]></title><description><![CDATA[
<p>Article URL: <a href="https://healeycodes.com/a-tiny-compiler-for-data-parallel-kernels">https://healeycodes.com/a-tiny-compiler-for-data-parallel-kernels</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48673115">https://news.ycombinator.com/item?id=48673115</a></p>
<p>Points: 52</p>
<p># Comments: 5</p>
]]></description><pubDate>Thu, 25 Jun 2026 13:32:12 +0000</pubDate><link>https://healeycodes.com/a-tiny-compiler-for-data-parallel-kernels</link><dc:creator>healeycodes</dc:creator><comments>https://news.ycombinator.com/item?id=48673115</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48673115</guid></item><item><title><![CDATA[New comment by healeycodes in "Building a Shell"]]></title><description><![CDATA[
<p>Editing the current line works because I brought in <a href="https://man7.org/linux/man-pages/man3/readline.3.html" rel="nofollow">https://man7.org/linux/man-pages/man3/readline.3.html</a> towards the end so I could support editing, tab completion, and history.<p>IIRC readline uses a `char *` internally since the length of a user-edited line is fairly bounded.</p>
]]></description><pubDate>Tue, 17 Mar 2026 13:08:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=47412143</link><dc:creator>healeycodes</dc:creator><comments>https://news.ycombinator.com/item?id=47412143</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47412143</guid></item><item><title><![CDATA[New comment by healeycodes in "Building a Shell"]]></title><description><![CDATA[
<p>Author here, and yeah, I agree. I skipped writing a parser altogether and just split on whitespace and `|` so that I could get to the interesting bits.<p>For side-projects, I have to ask myself if I'm writing a parser, or if I'm building something else; e.g. for a toy programming language, it's way more fun to start with an AST and play around, and come back to the parser if you really fall in love with it.</p>
]]></description><pubDate>Tue, 17 Mar 2026 11:31:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=47411255</link><dc:creator>healeycodes</dc:creator><comments>https://news.ycombinator.com/item?id=47411255</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47411255</guid></item><item><title><![CDATA[Building a Shell]]></title><description><![CDATA[
<p>Article URL: <a href="https://healeycodes.com/building-a-shell">https://healeycodes.com/building-a-shell</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47398749">https://news.ycombinator.com/item?id=47398749</a></p>
<p>Points: 13</p>
<p># Comments: 1</p>
]]></description><pubDate>Mon, 16 Mar 2026 13:28:09 +0000</pubDate><link>https://healeycodes.com/building-a-shell</link><dc:creator>healeycodes</dc:creator><comments>https://news.ycombinator.com/item?id=47398749</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47398749</guid></item><item><title><![CDATA[A Fair, Cancelable Semaphore in Go]]></title><description><![CDATA[
<p>Article URL: <a href="https://healeycodes.com/a-fair-cancelable-semaphore-in-go">https://healeycodes.com/a-fair-cancelable-semaphore-in-go</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46344643">https://news.ycombinator.com/item?id=46344643</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 21 Dec 2025 13:20:53 +0000</pubDate><link>https://healeycodes.com/a-fair-cancelable-semaphore-in-go</link><dc:creator>healeycodes</dc:creator><comments>https://news.ycombinator.com/item?id=46344643</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46344643</guid></item><item><title><![CDATA[Solving NYT's Pips Puzzle]]></title><description><![CDATA[
<p>Article URL: <a href="https://healeycodes.com/solving-nyt-pips-puzzle">https://healeycodes.com/solving-nyt-pips-puzzle</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45626933">https://news.ycombinator.com/item?id=45626933</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 18 Oct 2025 12:48:50 +0000</pubDate><link>https://healeycodes.com/solving-nyt-pips-puzzle</link><dc:creator>healeycodes</dc:creator><comments>https://news.ycombinator.com/item?id=45626933</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45626933</guid></item><item><title><![CDATA[Compiling a Forth]]></title><description><![CDATA[
<p>Article URL: <a href="https://healeycodes.com/compiling-a-forth">https://healeycodes.com/compiling-a-forth</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45491470">https://news.ycombinator.com/item?id=45491470</a></p>
<p>Points: 70</p>
<p># Comments: 9</p>
]]></description><pubDate>Mon, 06 Oct 2025 13:52:50 +0000</pubDate><link>https://healeycodes.com/compiling-a-forth</link><dc:creator>healeycodes</dc:creator><comments>https://news.ycombinator.com/item?id=45491470</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45491470</guid></item><item><title><![CDATA[Icepath: A 2D Programming Language]]></title><description><![CDATA[
<p>Article URL: <a href="https://healeycodes.com/icepath-a-2d-programming-language">https://healeycodes.com/icepath-a-2d-programming-language</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44985642">https://news.ycombinator.com/item?id=44985642</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 22 Aug 2025 15:14:54 +0000</pubDate><link>https://healeycodes.com/icepath-a-2d-programming-language</link><dc:creator>healeycodes</dc:creator><comments>https://news.ycombinator.com/item?id=44985642</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44985642</guid></item><item><title><![CDATA[New comment by healeycodes in "Counting Words at SIMD Speed"]]></title><description><![CDATA[
<p>Author here, one of the fastest improvements I've seen is @cloud11665's idea here: <a href="https://x.com/cloud11665/status/1955958965046595699" rel="nofollow">https://x.com/cloud11665/status/1955958965046595699</a></p>
]]></description><pubDate>Sun, 17 Aug 2025 07:18:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=44929584</link><dc:creator>healeycodes</dc:creator><comments>https://news.ycombinator.com/item?id=44929584</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44929584</guid></item><item><title><![CDATA[Counting Words at SIMD Speed]]></title><description><![CDATA[
<p>Article URL: <a href="https://healeycodes.com/counting-words-at-simd-speed">https://healeycodes.com/counting-words-at-simd-speed</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44887643">https://news.ycombinator.com/item?id=44887643</a></p>
<p>Points: 58</p>
<p># Comments: 15</p>
]]></description><pubDate>Wed, 13 Aug 2025 12:30:31 +0000</pubDate><link>https://healeycodes.com/counting-words-at-simd-speed</link><dc:creator>healeycodes</dc:creator><comments>https://news.ycombinator.com/item?id=44887643</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44887643</guid></item><item><title><![CDATA[Optimizing My Disk Usage Program]]></title><description><![CDATA[
<p>Article URL: <a href="https://healeycodes.com/optimizing-my-disk-usage-program">https://healeycodes.com/optimizing-my-disk-usage-program</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44826208">https://news.ycombinator.com/item?id=44826208</a></p>
<p>Points: 19</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 07 Aug 2025 15:59:01 +0000</pubDate><link>https://healeycodes.com/optimizing-my-disk-usage-program</link><dc:creator>healeycodes</dc:creator><comments>https://news.ycombinator.com/item?id=44826208</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44826208</guid></item><item><title><![CDATA[Maybe the Fastest Disk Usage Program on macOS]]></title><description><![CDATA[
<p>Article URL: <a href="https://healeycodes.com/maybe-the-fastest-disk-usage-program-on-macos">https://healeycodes.com/maybe-the-fastest-disk-usage-program-on-macos</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44746951">https://news.ycombinator.com/item?id=44746951</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 31 Jul 2025 15:57:52 +0000</pubDate><link>https://healeycodes.com/maybe-the-fastest-disk-usage-program-on-macos</link><dc:creator>healeycodes</dc:creator><comments>https://news.ycombinator.com/item?id=44746951</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44746951</guid></item><item><title><![CDATA[Filesystem Backed by an LLM]]></title><description><![CDATA[
<p>Article URL: <a href="https://healeycodes.com/filesystem-backed-by-an-llm">https://healeycodes.com/filesystem-backed-by-an-llm</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44493105">https://news.ycombinator.com/item?id=44493105</a></p>
<p>Points: 6</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 07 Jul 2025 18:09:43 +0000</pubDate><link>https://healeycodes.com/filesystem-backed-by-an-llm</link><dc:creator>healeycodes</dc:creator><comments>https://news.ycombinator.com/item?id=44493105</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44493105</guid></item></channel></rss>