<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: mbrock</title><link>https://news.ycombinator.com/user?id=mbrock</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 30 May 2026 02:44:59 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mbrock" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mbrock in "Saying goodbye to asm.js"]]></title><description><![CDATA[
<p>Faster in what browser, by what measure, for what modules? "X is faster than Y" without any concretization is usually meaningless.</p>
]]></description><pubDate>Wed, 20 May 2026 14:41:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=48208692</link><dc:creator>mbrock</dc:creator><comments>https://news.ycombinator.com/item?id=48208692</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48208692</guid></item><item><title><![CDATA[New comment by mbrock in "Everything in C is undefined behavior"]]></title><description><![CDATA[
<p>You can do something like<p><pre><code>       (y > 0 && x > INT_MAX - y) 
    || (y < 0 && x < INT_MIN - y)
</code></pre>
and hope the optimizer turns it back into just checking the result. Or you use -fwrapv to concretize the ISO ambiguity and specify the natural two's complement semantics, checking overflow with the classic Hacker's Delight formula;<p><pre><code>    ((x ^ s) & (y ^ s)) < 0

</code></pre>
But the best way is to use the intrinsic __builtin_add_overflow or, depending on compiler support, its C23 standardization via <stdckdint.h> and ckd_add etc.</p>
]]></description><pubDate>Wed, 20 May 2026 12:53:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=48206884</link><dc:creator>mbrock</dc:creator><comments>https://news.ycombinator.com/item?id=48206884</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48206884</guid></item><item><title><![CDATA[New comment by mbrock in "Everything in C is undefined behavior"]]></title><description><![CDATA[
<p>okey dokey</p>
]]></description><pubDate>Wed, 20 May 2026 12:31:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=48206644</link><dc:creator>mbrock</dc:creator><comments>https://news.ycombinator.com/item?id=48206644</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48206644</guid></item><item><title><![CDATA[New comment by mbrock in "Everything in C is undefined behavior"]]></title><description><![CDATA[
<p>Well yeah that just means some aspects of the imaginary compiler were in some configurations approximated by some historical compiler versions and were in some cases rejected by the community (which cares about sane semantics even for behavior left undefined by ANSI/ISO) and in some cases left in as defaults but made trivially configurable for anyone who wants to define the undefined behavior.</p>
]]></description><pubDate>Wed, 20 May 2026 12:04:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=48206363</link><dc:creator>mbrock</dc:creator><comments>https://news.ycombinator.com/item?id=48206363</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48206363</guid></item><item><title><![CDATA[New comment by mbrock in "Everything in C is undefined behavior"]]></title><description><![CDATA[
<p>you mean removing the JIT?</p>
]]></description><pubDate>Wed, 20 May 2026 12:00:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=48206329</link><dc:creator>mbrock</dc:creator><comments>https://news.ycombinator.com/item?id=48206329</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48206329</guid></item><item><title><![CDATA[New comment by mbrock in "Everything in C is undefined behavior"]]></title><description><![CDATA[
<p>ok what's the alternative?</p>
]]></description><pubDate>Wed, 20 May 2026 11:45:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=48206196</link><dc:creator>mbrock</dc:creator><comments>https://news.ycombinator.com/item?id=48206196</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48206196</guid></item><item><title><![CDATA[New comment by mbrock in "Everything in C is undefined behavior"]]></title><description><![CDATA[
<p>yeah then I have to learn how it works and what it assumes and how I can control it and maybe switch to a more well behaved compiler if it's truly insane</p>
]]></description><pubDate>Wed, 20 May 2026 11:45:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48206186</link><dc:creator>mbrock</dc:creator><comments>https://news.ycombinator.com/item?id=48206186</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48206186</guid></item><item><title><![CDATA[New comment by mbrock in "Everything in C is undefined behavior"]]></title><description><![CDATA[
<p>Right, good example, and both GCC and Clang offer well understood parameters for deciding, per compilation unit, what behavior you want for signed overflow (-fwrapv, -fno-strict-overflow, etc), so in reality it's quite far from spooky arbitrary nasal demons.</p>
]]></description><pubDate>Wed, 20 May 2026 11:23:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48206001</link><dc:creator>mbrock</dc:creator><comments>https://news.ycombinator.com/item?id=48206001</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48206001</guid></item><item><title><![CDATA[New comment by mbrock in "Everything in C is undefined behavior"]]></title><description><![CDATA[
<p>Yet the standard does not tell you what the compilers do.<p>Linux works on a wide variety of platforms. It also relies on those platforms behaving predictably with respect to what the standard leaves undefined.<p>This description of ISO UB as a totally insane wonderland of random, malevolent semantics just doesn't describe reality.</p>
]]></description><pubDate>Wed, 20 May 2026 10:36:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=48205631</link><dc:creator>mbrock</dc:creator><comments>https://news.ycombinator.com/item?id=48205631</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48205631</guid></item><item><title><![CDATA[New comment by mbrock in "Everything in C is undefined behavior"]]></title><description><![CDATA[
<p>This is a description of an imaginary compiler, evoked by the ANSI/ISO standards documents, which has never existed and will never exist. To understand what the program will do, you just have to understand the compiler behavior on your target platforms. A helpful intuition pump is: imagine the ANSI/ISO specifications simply do not exist; now what? Well, you just continue your engineering practice, the way you would for any of the myriad languages that never even had a post hoc standards document.</p>
]]></description><pubDate>Wed, 20 May 2026 10:15:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=48205478</link><dc:creator>mbrock</dc:creator><comments>https://news.ycombinator.com/item?id=48205478</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48205478</guid></item><item><title><![CDATA[New comment by mbrock in "Everything in C is undefined behavior"]]></title><description><![CDATA[
<p>undefined behavior is the behavior of code patterns "for which this International Standard imposes no requirements" and the behavior is in fact almost always predictable and agreed upon by compiler vendors and the users of the language, which is why you are able to use programs that rely on undefined behavior probably every single second you are using the computer<p>edit: for example I'm typing this into Safari which means probably every key press and event is going through JSC JIT compiled functions—which have, structurally and necessarily and intentionally, COMPLETELY undefined behavior according to the spec—and yet it miraculously works, perfectly, because the spec doesn't really matter</p>
]]></description><pubDate>Wed, 20 May 2026 09:15:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=48205069</link><dc:creator>mbrock</dc:creator><comments>https://news.ycombinator.com/item?id=48205069</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48205069</guid></item><item><title><![CDATA[New comment by mbrock in "Everything in C is undefined behavior"]]></title><description><![CDATA[
<p>most languages don't even HAVE a specification so in most languages literally EVERYTHING everything is undefined behavior</p>
]]></description><pubDate>Wed, 20 May 2026 07:51:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=48204481</link><dc:creator>mbrock</dc:creator><comments>https://news.ycombinator.com/item?id=48204481</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48204481</guid></item><item><title><![CDATA[New comment by mbrock in "Claws are now a new layer on top of LLM agents"]]></title><description><![CDATA[
<p>If you stop trying to find something like truly ontologically novel about it, you might be able to understand what it actually is. Okay it's not impressive. It's not incredible. It's not groundbreaking new technology. It is what it is.</p>
]]></description><pubDate>Sun, 22 Feb 2026 16:55:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=47112573</link><dc:creator>mbrock</dc:creator><comments>https://news.ycombinator.com/item?id=47112573</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47112573</guid></item><item><title><![CDATA[New comment by mbrock in "What I learned building an opinionated and minimal coding agent"]]></title><description><![CDATA[
<p>That kind of blanket demand doesn't persuade anyone and doesn't solve any problem.<p>Even if you get people to sit and press a button every time the agent wants to do anything, you're not getting the actual alertness and rigor that would prevent disasters. You're getting a bored, inattentive person who could be doing something more valuable than micromanaging Claude.<p>Managing capabilities for agents is an interesting problem. Working on that seems more fun and valuable than sitting around pressing "OK" whenever the clanker wants to take actions that are harmless in a vast majority of cases.</p>
]]></description><pubDate>Sun, 01 Feb 2026 19:41:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=46848717</link><dc:creator>mbrock</dc:creator><comments>https://news.ycombinator.com/item?id=46848717</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46848717</guid></item><item><title><![CDATA[New comment by mbrock in "Developing a food-safe finish for my wooden spoons"]]></title><description><![CDATA[
<p>Flexner's "Understanding Wood Finishing" has a section about "the myth of food safety" that pretty directly states that food safety isn't a serious concern for fully cured finishes.</p>
]]></description><pubDate>Sun, 14 Dec 2025 23:26:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=46268261</link><dc:creator>mbrock</dc:creator><comments>https://news.ycombinator.com/item?id=46268261</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46268261</guid></item><item><title><![CDATA[New comment by mbrock in "Developing a food-safe finish for my wooden spoons"]]></title><description><![CDATA[
<p>The solvents evaporate when the lacquer cures, right? A lacquered spatula or spoon could leach some plasticizers when heated up. But who on earth would go to the trouble of spray lacquering a spatula? It doesn't seem like a real concern. Wooden spoons from IKEA aren't gonna poison you!</p>
]]></description><pubDate>Sun, 14 Dec 2025 23:17:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=46268178</link><dc:creator>mbrock</dc:creator><comments>https://news.ycombinator.com/item?id=46268178</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46268178</guid></item><item><title><![CDATA[New comment by mbrock in "Stop crawling my HTML – use the API"]]></title><description><![CDATA[
<p>The author seems to have forgotten to mention WHY he wants scrapers to use APIs instead of HTML.</p>
]]></description><pubDate>Sun, 14 Dec 2025 19:26:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=46265958</link><dc:creator>mbrock</dc:creator><comments>https://news.ycombinator.com/item?id=46265958</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46265958</guid></item><item><title><![CDATA[New comment by mbrock in "Developing a food-safe finish for my wooden spoons"]]></title><description><![CDATA[
<p>I think all wood finishes are "food safe" once they're cured.</p>
]]></description><pubDate>Sun, 14 Dec 2025 19:16:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=46265879</link><dc:creator>mbrock</dc:creator><comments>https://news.ycombinator.com/item?id=46265879</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46265879</guid></item><item><title><![CDATA[New comment by mbrock in "Linux Sandboxes and Fil-C"]]></title><description><![CDATA[
<p>Great! Feel free to ask questions or report problems on GitHub or the Fil-C Discord. If some package doesn't compile I can probably look into it!</p>
]]></description><pubDate>Sun, 14 Dec 2025 19:13:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=46265847</link><dc:creator>mbrock</dc:creator><comments>https://news.ycombinator.com/item?id=46265847</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46265847</guid></item><item><title><![CDATA[New comment by mbrock in "Linux Sandboxes and Fil-C"]]></title><description><![CDATA[
<p>FYI nginx and Apache and Postgres using shared memory across processes make them hard to use with Fil-C. Lighttpd works well though!</p>
]]></description><pubDate>Sun, 14 Dec 2025 18:18:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=46265360</link><dc:creator>mbrock</dc:creator><comments>https://news.ycombinator.com/item?id=46265360</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46265360</guid></item></channel></rss>