<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: djwatson24</title><link>https://news.ycombinator.com/user?id=djwatson24</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 11 Sep 2026 00:29:43 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=djwatson24" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by djwatson24 in "A new register allocator for ZJIT"]]></title><description><![CDATA[
<p>I’ve always wondered about linear scan vs SSA based spilling & regalloc, like libfirm & qbe use:<p>‘Register spilling and live-range splitting for SSA-form programs’ and ‘Preference-Guided Register Assignment’<p>It’s much cleaner to code, since you don’t need to generate live ranges explicitly, and can break it up in two passes. Linear scan creates new inactive /active intervals, while the ssa form allocators just reuse the ssa graph. I’ve never benchmarked them back to back though.</p>
]]></description><pubDate>Sat, 30 May 2026 08:25:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=48333974</link><dc:creator>djwatson24</dc:creator><comments>https://news.ycombinator.com/item?id=48333974</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48333974</guid></item><item><title><![CDATA[New comment by djwatson24 in "First public macOS kernel memory corruption exploit on Apple M5"]]></title><description><![CDATA[
<p>>  We wanted to check out the infamous Infinite Loop too, but were afraid it could take a long time.<p>Haha!  Nerd jokes are the best jokes</p>
]]></description><pubDate>Fri, 15 May 2026 17:55:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=48151719</link><dc:creator>djwatson24</dc:creator><comments>https://news.ycombinator.com/item?id=48151719</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48151719</guid></item><item><title><![CDATA[New comment by djwatson24 in "Retrofitting JIT Compilers into C Interpreters"]]></title><description><![CDATA[
<p>It's quite impressive they're able to take nearly arbitrary C and do this! Very similar to what pypy is doing here, but for C, and not a python subset.<p>However not without downsides.  It sounds like average code is only 2x faster than Lua, vs. LuaJit which is often 5-10x faster.</p>
]]></description><pubDate>Thu, 16 Apr 2026 00:09:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47787047</link><dc:creator>djwatson24</dc:creator><comments>https://news.ycombinator.com/item?id=47787047</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47787047</guid></item><item><title><![CDATA[New comment by djwatson24 in "V8 Garbage Collector"]]></title><description><![CDATA[
<p>Absolutely. Things that took hours or days to debug before take mere minutes once I have an rr recording.</p>
]]></description><pubDate>Fri, 14 Nov 2025 16:52:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=45928722</link><dc:creator>djwatson24</dc:creator><comments>https://news.ycombinator.com/item?id=45928722</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45928722</guid></item><item><title><![CDATA[Scheme Reports at Fifty]]></title><description><![CDATA[
<p>Article URL: <a href="https://crumbles.blog/posts/2025-10-18-scheme-reports-at-fifty.html">https://crumbles.blog/posts/2025-10-18-scheme-reports-at-fifty.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45634528">https://news.ycombinator.com/item?id=45634528</a></p>
<p>Points: 66</p>
<p># Comments: 25</p>
]]></description><pubDate>Sun, 19 Oct 2025 14:45:03 +0000</pubDate><link>https://crumbles.blog/posts/2025-10-18-scheme-reports-at-fifty.html</link><dc:creator>djwatson24</dc:creator><comments>https://news.ycombinator.com/item?id=45634528</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45634528</guid></item><item><title><![CDATA[New comment by djwatson24 in "Faster Virtual Machines: Speeding Up Programming Language Execution (2023)"]]></title><description><![CDATA[
<p>Tail calling (with musttail)+ preserve_none are definitely the future of interpreters. Gets you ~95% of the performance of writing the vm in assembly, while keeping it high level. Unfortunately only clang and llvm support it  so far, but hopefully we get some other llvm backend langs in soon!</p>
]]></description><pubDate>Tue, 30 Sep 2025 13:40:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=45425310</link><dc:creator>djwatson24</dc:creator><comments>https://news.ycombinator.com/item?id=45425310</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45425310</guid></item><item><title><![CDATA[New comment by djwatson24 in "Faster interpreters in Go: Catching up with C++"]]></title><description><![CDATA[
<p>Marc feeley wrote “using closures for code generation” way back in 1987. Everything old is new again!<p>It’s quite nice and only a small bit more code than an ast interpreter - but not as fast as a luajit- style tail calling bytecode vm, nor a baseline jit like copy and patch. It works wonders in languages that support closures though.<p><a href="https://www-labs.iro.umontreal.ca/~feeley/papers/FeeleyLapalmeCL87.pdf" rel="nofollow">https://www-labs.iro.umontreal.ca/~feeley/papers/FeeleyLapal...</a></p>
]]></description><pubDate>Mon, 07 Apr 2025 16:35:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=43613274</link><dc:creator>djwatson24</dc:creator><comments>https://news.ycombinator.com/item?id=43613274</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43613274</guid></item><item><title><![CDATA[New comment by djwatson24 in "Float Self-Tagging"]]></title><description><![CDATA[
<p>Can you go in to more detail on 'wacky register allocation tricks' or instruction selection needed to support nun-tagging?  Or pointers to code somewhere?  Would be nice to compare some of them to the paper.</p>
]]></description><pubDate>Fri, 29 Nov 2024 20:38:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=42276918</link><dc:creator>djwatson24</dc:creator><comments>https://news.ycombinator.com/item?id=42276918</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42276918</guid></item><item><title><![CDATA[New comment by djwatson24 in "Building a baseline JIT for Lua automatically"]]></title><description><![CDATA[
<p>Deegen is my research meta-compiler to make high-performance VMs easier to write. Deegen takes in a semantic description of the VM bytecodes in C++, and use it as the single source of truth to automatically generate a high-performance VM at build time</p>
]]></description><pubDate>Fri, 12 May 2023 23:27:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=35923793</link><dc:creator>djwatson24</dc:creator><comments>https://news.ycombinator.com/item?id=35923793</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35923793</guid></item><item><title><![CDATA[Building a baseline JIT for Lua automatically]]></title><description><![CDATA[
<p>Article URL: <a href="https://sillycross.github.io/2023/05/12/2023-05-12/">https://sillycross.github.io/2023/05/12/2023-05-12/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=35923792">https://news.ycombinator.com/item?id=35923792</a></p>
<p>Points: 10</p>
<p># Comments: 8</p>
]]></description><pubDate>Fri, 12 May 2023 23:27:35 +0000</pubDate><link>https://sillycross.github.io/2023/05/12/2023-05-12/</link><dc:creator>djwatson24</dc:creator><comments>https://news.ycombinator.com/item?id=35923792</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35923792</guid></item><item><title><![CDATA[New comment by djwatson24 in "Apple calls on global supply chain to decarbonize by 2030"]]></title><description><![CDATA[
<p>This is great, thanks! Fyi I think you have the numbers for the years reversed</p>
]]></description><pubDate>Tue, 25 Oct 2022 23:00:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=33337351</link><dc:creator>djwatson24</dc:creator><comments>https://news.ycombinator.com/item?id=33337351</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33337351</guid></item><item><title><![CDATA[New comment by djwatson24 in "Rewriting a high performance vector database in Rust"]]></title><description><![CDATA[
<p>> and that relies on having sufficient test and fuzz coverage<p>At the faang I worked at, some small portion of servers ran the sanitizers in prod, so you’re not reliant on test coverage nearly so much for catching rare issues.</p>
]]></description><pubDate>Tue, 18 Oct 2022 22:17:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=33254792</link><dc:creator>djwatson24</dc:creator><comments>https://news.ycombinator.com/item?id=33254792</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33254792</guid></item><item><title><![CDATA[New comment by djwatson24 in "MiniVM: A zero-dependency cross-language runtime on par with LuaJIT and C"]]></title><description><![CDATA[
<p>Binary trees is a classic GC benchmark - ideally a GC'd language should be able to do <i>better</i> than a malloc/free implementation in C (tree.c) since it can release the whole tree in bulk (like what the ptree.c does).<p>Also note that tree.c speeds up substantially if you link with a better malloc like jemalloc or tcmalloc.</p>
]]></description><pubDate>Sat, 08 Jan 2022 17:54:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=29854191</link><dc:creator>djwatson24</dc:creator><comments>https://news.ycombinator.com/item?id=29854191</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29854191</guid></item><item><title><![CDATA[New comment by djwatson24 in "A small scheme VM, compiler, and REPL in 4k"]]></title><description><![CDATA[
<p>I agree the optimization looks backwards to me - in most of the microcontrollers I work on, the flash program space can easily be multiple megabytes, but the ram is usually the limiter around 128-512k.</p>
]]></description><pubDate>Fri, 26 Nov 2021 18:07:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=29352478</link><dc:creator>djwatson24</dc:creator><comments>https://news.ycombinator.com/item?id=29352478</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29352478</guid></item><item><title><![CDATA[New comment by djwatson24 in "D 2.096 and other news"]]></title><description><![CDATA[
<p>D has three fully functional compilers on Linux, and is probably in better shape than python, rust, even c++ in that regard.</p>
]]></description><pubDate>Wed, 24 Mar 2021 18:26:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=26571133</link><dc:creator>djwatson24</dc:creator><comments>https://news.ycombinator.com/item?id=26571133</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26571133</guid></item><item><title><![CDATA[New comment by djwatson24 in "Perceus: Garbage Free Reference Counting with Reuse [pdf]"]]></title><description><![CDATA[
<p>I don’t think const or non const is the main issue- some data structures just require cycles like graphs or circular linked lists.</p>
]]></description><pubDate>Sat, 19 Dec 2020 17:21:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=25479046</link><dc:creator>djwatson24</dc:creator><comments>https://news.ycombinator.com/item?id=25479046</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25479046</guid></item><item><title><![CDATA[New comment by djwatson24 in "Perceus: Garbage Free Reference Counting with Reuse [pdf]"]]></title><description><![CDATA[
<p>Unless I am misreading their graph, Java beats neither c++ nor koka in time or rss.</p>
]]></description><pubDate>Sat, 19 Dec 2020 16:45:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=25478644</link><dc:creator>djwatson24</dc:creator><comments>https://news.ycombinator.com/item?id=25478644</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25478644</guid></item><item><title><![CDATA[New comment by djwatson24 in "Perceus: Garbage Free Reference Counting with Reuse [pdf]"]]></title><description><![CDATA[
<p>Cool to see explicit annotations for how to make rc fast when you have access to the ir. But doesn’t solve some major issues, like cycle collection:<p>“ In practice, mutable references are the main way to con- struct cyclic data. Since mutable references are uncommon in our setting, we leave the responsibility to the programmer to break cycles by explicitly clearing a reference cell that may be part of a cycle. ”</p>
]]></description><pubDate>Sat, 19 Dec 2020 16:40:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=25478583</link><dc:creator>djwatson24</dc:creator><comments>https://news.ycombinator.com/item?id=25478583</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25478583</guid></item><item><title><![CDATA[New comment by djwatson24 in "Secure Socket API: POSIX socket API as a vehicle for a simplified TLS API"]]></title><description><![CDATA[
<p>I think what happened is that feature landed concurrently with the paper - a very early version is mentioned as reference [7].<p>Netflix also published several papers on their version for openbsd, which I didn't see mentioned.</p>
]]></description><pubDate>Fri, 17 Aug 2018 19:21:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=17785098</link><dc:creator>djwatson24</dc:creator><comments>https://news.ycombinator.com/item?id=17785098</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17785098</guid></item><item><title><![CDATA[New comment by djwatson24 in "Netdev Day 1: IPsec"]]></title><description><![CDATA[
<p>IIRC TLS renegotiation was removed in TLS 1.3</p>
]]></description><pubDate>Thu, 12 Jul 2018 17:49:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=17516967</link><dc:creator>djwatson24</dc:creator><comments>https://news.ycombinator.com/item?id=17516967</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17516967</guid></item></channel></rss>