<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: pron</title><link>https://news.ycombinator.com/user?id=pron</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 30 May 2026 20:09:23 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=pron" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by pron in "Zig: Build System Reworked"]]></title><description><![CDATA[
<p>No. I "complained" that Rust is too similar to C++ (which for some is the attraction, and for others not so much) while Zig isn't.</p>
]]></description><pubDate>Sat, 30 May 2026 15:32:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48337308</link><dc:creator>pron</dc:creator><comments>https://news.ycombinator.com/item?id=48337308</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48337308</guid></item><item><title><![CDATA[New comment by pron in "Zig: Build System Reworked"]]></title><description><![CDATA[
<p>By the time C++ and Java were as old as Rust is today there were thousands of programs that over 1MLOC that had been maintained for at least five years. Rust is a rather old language, yet I doubt there are even hundreds of Rust programs over 1MLOC.</p>
]]></description><pubDate>Sat, 30 May 2026 15:26:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=48337247</link><dc:creator>pron</dc:creator><comments>https://news.ycombinator.com/item?id=48337247</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48337247</guid></item><item><title><![CDATA[New comment by pron in "Zig: Build System Reworked"]]></title><description><![CDATA[
<p>I don't think Rust users are relevant here. It primarily comes down to personal preferences, and since Zig and Rust are so different, some will be drawn to Rust and others to Zig. If you really like a language and it suits your needs, be it Rust or any other, there's no need to look to switch. I think that the audience Zig is aimed at is low-level programmers who haven't taken a liking to Rust, which is the majority of them. Rust isn't very popular among experienced low-level programmers (certainly for a language that old), and I guess Zig is hoping to be more to their liking.<p>For example, I find Rust to be far too similar to C++, and it shares most of the problems I have with C++ only with much lower adoption. I'm not saying I'm ready to make the switch, but at least Zig offers a different approach that's intriguing to me.</p>
]]></description><pubDate>Sat, 30 May 2026 15:10:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48337092</link><dc:creator>pron</dc:creator><comments>https://news.ycombinator.com/item?id=48337092</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48337092</guid></item><item><title><![CDATA[New comment by pron in "Zig: Build System Reworked"]]></title><description><![CDATA[
<p>Neither has been battle-tested at the relevant scale.</p>
]]></description><pubDate>Sat, 30 May 2026 15:07:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=48337058</link><dc:creator>pron</dc:creator><comments>https://news.ycombinator.com/item?id=48337058</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48337058</guid></item><item><title><![CDATA[New comment by pron in "The dead economy theory"]]></title><description><![CDATA[
<p>There is certainly a huge problem with displacing labour in multiple industries at the same time, but the economic story told here in "three turns" is different. When productivity rises costs drop, but because of competition, almost the entire gain has to translate not to increased margins but to reduced prices. Paul Krugman recently used this to explain the large disparity between growth in GDP as normally measured in fixed prices (i.e. inflation-adjusted to consumer prices in some fixed year) and growth in GDP as measured in PPP, i.e. when adjusted to consumer prices in every year. If making computers, say, becomes much more productive, the growth in productivity in, say, 1980 prices, seems very large, but in PPP is not only smaller, but the beneficiaries aren't computer manufacturers but anyone who uses computers.<p>Of course, lower prices don't solve your problems if you're unemployed. Demand, indeed, drops if many people are unemployed, which pushes prices further down, but this time across the board, not just in the more productive industries - a recession.</p>
]]></description><pubDate>Fri, 29 May 2026 21:59:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=48329863</link><dc:creator>pron</dc:creator><comments>https://news.ycombinator.com/item?id=48329863</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48329863</guid></item><item><title><![CDATA[New comment by pron in "Constraint Decay: The Fragility of LLM Agents in Back End Code Generation"]]></title><description><![CDATA[
<p>The situation is worse. Not only do agents have more difficulty under "structural constraints", but structural constraints may need to change, and agents are even worse at that.<p>When designing a system or a component we have ideas that form invariants. Sometimes the invariant is big, like a certain grand architecture, and sometimes it’s small, like the selection of a data structure. Except, eventually, you’ll want to add a feature that clashes with that invariant. At that point there are usually three choices:<p>- Don’t add the feature. The invariant is a useful simplifying principle and it’s more important than the feature; it will pay dividends in other ways.<p>- Add the feature inelegantly or inefficiently on top of the invariant. Hey, not every feature has to be elegant or efficient.<p>- Go back and change the invariant. You’ve just learnt something new that you hadn’t considered and puts things in a new light, and it turns out there’s a better approach.<p>Often, only one of these is right. Often, at least one of these is very, very wrong, and with bad consequences. Even when they are able to follow constraints, agents are terrible at identifying when the constraints need to change.</p>
]]></description><pubDate>Mon, 25 May 2026 13:04:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=48266383</link><dc:creator>pron</dc:creator><comments>https://news.ycombinator.com/item?id=48266383</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48266383</guid></item><item><title><![CDATA[New comment by pron in "Everything in C is undefined behavior"]]></title><description><![CDATA[
<p>> In C, we can have a data race on a single thread and without any writes!<p>You need to distinguish between a UB and a race, and I think that's something that discussions of UB miss. Take any C program and compile it. Then disassemble it. You end up with an Assembly program that doesn't have any UB, because Assembly doesn't have UB.<p>UB is a property of a source program, not the executable. It means that the spec for the language in which the source is written doesn't assign it any meaning. But the executable that's the result of compiling the program does have a meaning assigned to it by the machine's spec, as machine code doesn't have UB.<p>A race is a property of the <i>behaviour</i> of a program. So it's true to say that your C program has UB, but the executable won't actually have a race. Of course, a C compiler can compile a program with UB in any way it likes so it's possible it will introduce a race, but if it chooses to compile the program in a way that doesn't introduces another thread, then there won't be a race.</p>
]]></description><pubDate>Wed, 20 May 2026 12:28:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=48206620</link><dc:creator>pron</dc:creator><comments>https://news.ycombinator.com/item?id=48206620</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48206620</guid></item><item><title><![CDATA[New comment by pron in "The RAM shortage could last years"]]></title><description><![CDATA[
<p>A website that doesn't give people the relevant context for the data it offers is not a good website, especially when the data cannot be understood without that context and the context is not at all well known. That people may misinterpret the information if it were given to them doesn't change that.<p>> Whatever the explanation, it would never be sufficient for you.<p>Since I work on compilers and runtimes I know just how small the coverage offered on that website is. For me, no benchmark suite may ever be enough. Still, offering some of the information that is needed to put the results into context would be better than offering none.<p>Again, I'm not saying that the website is <i>intentionally</i> misleading and I have nothing against the people behind it. They may have a very good reason for why it's of such low quality. I'm just pointing out that it is.</p>
]]></description><pubDate>Wed, 20 May 2026 00:41:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=48201609</link><dc:creator>pron</dc:creator><comments>https://news.ycombinator.com/item?id=48201609</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48201609</guid></item><item><title><![CDATA[New comment by pron in "I don't think AI will make your processes go faster"]]></title><description><![CDATA[
<p>By "workable" I meant something more modest, say, successfully compiling SQLite, something that CCC fails to do unless you stretch the meaning of success (it seems the problem may have to do with register allocation, but I would say that register allocation is pretty much the only interesting job a C compiler does).<p>As to the Linux kernel, you're right that a compiler that can successfully compile it is likely to be bigger, but we don't know that CCC is able to do it, either. What we do know is that (when using the gcc linker and assembler) people were able to boot the RISC-V kernel in qemu. That's something for sure, but not enough to call it a successfuly compilation.</p>
]]></description><pubDate>Mon, 18 May 2026 12:49:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=48179024</link><dc:creator>pron</dc:creator><comments>https://news.ycombinator.com/item?id=48179024</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48179024</guid></item><item><title><![CDATA[New comment by pron in "I don't think AI will make your processes go faster"]]></title><description><![CDATA[
<p>> Saying the model failed to write a competitive C compiler makes more sense.<p>Their compiler fails to compile (well, at least link) some C programs altogether, and in other cases it produces code that is 150,000x slower than a real C compiler <i>with optimisations turned off</i> (interestingly, the model trained on the real compiler's source code). That's not "not competitive" but "cannot be used in the real world". But even more importantly, the compiler cannot be fixed or evolved. It's bricked (at least as far as today's models' capabilities go). For any kind of software, not being able to improve or fix anything or add any new feature means it's effectively dead.<p>You could not use it in production even if no other C compiler existed.</p>
]]></description><pubDate>Sun, 17 May 2026 20:49:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=48173055</link><dc:creator>pron</dc:creator><comments>https://news.ycombinator.com/item?id=48173055</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48173055</guid></item><item><title><![CDATA[New comment by pron in "Reverting the incremental GC in Python 3.14 and 3.15"]]></title><description><![CDATA[
<p>No, they do not. Uncommitting pages and freeing objects are different things. Even in malloc/free they are separate. The JDK's GCs do know when some memory region is unused and can choose to return it to the OS, but they still do not free any objects. What moving collectors do is compact the live objects or, if you will, evacuate the live objects out of some area memory. Once all the live objects are moved out of a certain area of memory, it can be uncommitted, but no objects were freed and the GCs don't even know when objects become unreachable. Unreachable objects are simply invisible to the GC, so when they move the live ones, they happen to overwrite the dead ones.<p>While the JDK's don't work quite like this, a simple way to picture it is as a a contiguous memory buffer, say, 100MB large. The GC compacts the live objects to the bottom of that buffer. At that point they do know where the end of the used memory is. Say that after compaction, the live objects occupy the bottom 20MB of the buffer (overwriting any dead objects that may have been there). At that point, the GC can choose to uncommit the top 30MB of the buffer and return it to the OS.<p>With malloc/free there's also this separation. A free operation marks the memory of a freed object in a data structure called a free list. If all the objects in a certain page have been freed, the allocator can choose to uncommit it and return it to the OS (although many modern allocators choose not to do this promptly).<p>The operation of moving collectors and where there cost is is completely different from free-list approaches. With free list approaches there's some work done to allocate an object and some work done to free it. With moving collectors, there's very little work to allocate an object (typically, just a pointer bump) and no work to free it; there is, however work to keep the object alive. That's why, especially with generational collectors, moving collectors do very little work to manage the memory of objects that don't live for long.<p>This is why, when working in Java, it's important not to think about the heap as we do in C. For short-lived objects, the cost of allocatng and "deallocating" them is often not significantly higher than the cost of allocating and deallocating an object <i>on the stack</i> in C. On the other hand, mutating an existing long-lived object could sometimes require some bookkeeping work by the GC, and could be much more costly than allocating (and "deallocating") a new object. That's why Java programmers are discouraged from pooling objects to "help the GC", something that Go developers often do when they run into issues with their non-moving, non-generational collector.</p>
]]></description><pubDate>Sun, 17 May 2026 20:25:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=48172902</link><dc:creator>pron</dc:creator><comments>https://news.ycombinator.com/item?id=48172902</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48172902</guid></item><item><title><![CDATA[New comment by pron in "I don't think AI will make your processes go faster"]]></title><description><![CDATA[
<p>> I'm pretty confident that I could produce a decent C compiler in a few weeks (or less), if given Opus 4.7 + unlimited tokens + a good test suite.<p>Of course. The point is that a full, detailed spec isn't enough (even in the rare situations it does exist, like for a C compiler). At least for the moment, you need <i>expert</i> humans to supervise and direct the agents.<p>Vibe coders usually also let the agents write the tests, which mean that the only independent human validation of the software is some cursory manual inspection. That also obviously isn't enough to validate software.<p>> One shot doesn't work even with humans - after all, this is exactly what killed waterfall as a methodology.<p>You can one-shot a C compiler with humans. LLMs' software development ability is impressive and helpful, but it is not human-level yet, even if <i>at some tasks</i> the agents are better than most human programmers. And while many waterfall projects failed, many succeeded (although perhaps not as efficiently as they could have). So far I don't believe agents have been able to produce any non-trivial production software autonomously.</p>
]]></description><pubDate>Sun, 17 May 2026 19:38:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=48172492</link><dc:creator>pron</dc:creator><comments>https://news.ycombinator.com/item?id=48172492</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48172492</guid></item><item><title><![CDATA[New comment by pron in "I don't think AI will make your processes go faster"]]></title><description><![CDATA[
<p>> It was a non-trivial exercise well beyond the majority of software applications<p>That depends on how you count. By number of <i>programs</i> that may well be right, but that's not what matters in terms of impact on the industry, as software value roughly corresponds to the number of people working on a particular piece of software (or lines of code, if you wish). By number of people/LOC most software is not in the "simpler than a C compiler" category.</p>
]]></description><pubDate>Sun, 17 May 2026 18:42:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48171899</link><dc:creator>pron</dc:creator><comments>https://news.ycombinator.com/item?id=48171899</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48171899</guid></item><item><title><![CDATA[New comment by pron in "I don't think AI will make your processes go faster"]]></title><description><![CDATA[
<p>The experiment failed to produce a workable C compiler despite 1. the job not being particularly hard, 2. the available specs and tests are of a completely higher class of quality than almost any software, not to mention the availability of other implementations that the model trained on.<p>You can call that a success (as it did <i>something</i> impresssive even though it failed to produce a workable C compiler) but my point in bringing this up was to show that today's models are not yet able to produce production software without close supervision, even when uncharacteristically good specs and hand-written tests exist.</p>
]]></description><pubDate>Sun, 17 May 2026 18:38:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48171858</link><dc:creator>pron</dc:creator><comments>https://news.ycombinator.com/item?id=48171858</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48171858</guid></item><item><title><![CDATA[New comment by pron in "I don't think AI will make your processes go faster"]]></title><description><![CDATA[
<p>People who independently tried to use it reported that it is very much not workable:<p>- "CCC compiled every single C source file in the Linux 6.9 kernel without a single compiler error (0 errors, 96 warnings). This is genuinely impressive for a compiler built entirely by an AI. However, the build failed at the linker stage with ~40,784 undefined reference errors."(<a href="https://github.com/harshavmb/compare-claude-compiler" rel="nofollow">https://github.com/harshavmb/compare-claude-compiler</a>)<p>- Overall it’s an interesting experiment, and shows the current bleeding edge of Claude’s Opus 4.6 model. However the resulting product is also a clear example of the throwaway nature of projects generated almost entirely by AI code agents with little human oversight. The prototype is really impressive, but there is no real path forward for it to be further developed. It can build the Linux kernel [for RISC-V], which is impressive. It can also build other things… if you are lucky, but you really cannot rely on it to work. (<a href="https://voxelmanip.se/2026/02/06/trying-out-claudes-c-compiler/" rel="nofollow">https://voxelmanip.se/2026/02/06/trying-out-claudes-c-compil...</a>)<p>Anthropic themselves said that the codebase was effectively bricked and that their agents could not salvage it.</p>
]]></description><pubDate>Sun, 17 May 2026 18:00:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48171404</link><dc:creator>pron</dc:creator><comments>https://news.ycombinator.com/item?id=48171404</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48171404</guid></item><item><title><![CDATA[New comment by pron in "I don't think AI will make your processes go faster"]]></title><description><![CDATA[
<p>People both underestimate and overestimate what LLMs can do. LLMs have shown very different results when autonomously writing a small program for personal use and autonomously writing production software that needs to be evolved for years.</p>
]]></description><pubDate>Sun, 17 May 2026 17:45:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=48171186</link><dc:creator>pron</dc:creator><comments>https://news.ycombinator.com/item?id=48171186</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48171186</guid></item><item><title><![CDATA[New comment by pron in "I don't think AI will make your processes go faster"]]></title><description><![CDATA[
<p>> Anthropic can always fire the Opus/Mythos token machine gun on any problem (bugs, features, security) to ensure PR success,<p>Can they, though? They tried and failed to do it in their C compiler experiment. The experimenter wrote: "I tried (hard!) to fix several of the above limitations but wasn’t fully successful. New features and bugfixes frequently broke existing functionality."</p>
]]></description><pubDate>Sun, 17 May 2026 17:41:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=48171136</link><dc:creator>pron</dc:creator><comments>https://news.ycombinator.com/item?id=48171136</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48171136</guid></item><item><title><![CDATA[New comment by pron in "I don't think AI will make your processes go faster"]]></title><description><![CDATA[
<p>> where are we seeing that it failed?<p>Anthropic said the experiment failed to produce a workable C compiler:<p>- I tried (hard!) to fix several of the above limitations but wasn’t fully successful. New features and bugfixes frequently broke existing functionality.<p>- The compiler successfully builds many projects, but not all. It's not yet a drop-in replacement for a real compiler.<p>(source:  <a href="https://www.anthropic.com/engineering/building-c-compiler" rel="nofollow">https://www.anthropic.com/engineering/building-c-compiler</a>)<p>Software that cannot be evolved is dead software. That in some PR communications they misrepresented their own engineer's report is beside the point.<p>> It compiled multiple projects successfully albeit less optimized.<p>150,000x slower (<a href="https://github.com/harshavmb/compare-claude-compiler" rel="nofollow">https://github.com/harshavmb/compare-claude-compiler</a>) is not "less optimised". It's unworkable.<p>> Like I think people don't realize not even 7 months ago it wasn't writing this at all.<p>There's no doubt that producing a C compiler that isn't workable and is effectively bricked as it cannot be evolved but still compiles some programs is great progress, but it's still a long way off of auonomously building production software. Can today's LLM do amazing things and offer tremendous help in software development? Absolutely. Can they write production software without careful and close human supervision? Not yet. That's not disparagement, just an observation of where we are today.</p>
]]></description><pubDate>Sun, 17 May 2026 17:38:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=48171112</link><dc:creator>pron</dc:creator><comments>https://news.ycombinator.com/item?id=48171112</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48171112</guid></item><item><title><![CDATA[New comment by pron in "I don't think AI will make your processes go faster"]]></title><description><![CDATA[
<p>Yes, the task is very different, but also it will be months to a year until we know the results of the bun experiment.</p>
]]></description><pubDate>Sun, 17 May 2026 16:33:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=48170454</link><dc:creator>pron</dc:creator><comments>https://news.ycombinator.com/item?id=48170454</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48170454</guid></item><item><title><![CDATA[New comment by pron in "I don't think AI will make your processes go faster"]]></title><description><![CDATA[
<p>A <i>workable</i> C compiler is a ~10-50KLOC program, and a fairly simple one at that (batch, with no concurrency or interaction). That Anthropic's swarm of agents wrote 100KLOC before failing is a symptom of the problem. It's certainly possible that many <i>programs</i> are in the sub 5KLOC range, but it's definitely not "most software". Plus, almost no software has this level of detailed spec, ready-made tests, and a selection of existing implementations of the same spec.<p>My first thought when reading Anthropic's description of the experiment was that it is unrealistically easy. It's hard to come up with realistic jobs in the 10-50KLOC range that would be this easy for an LLM. That it failed only shows how much further we still have to go.</p>
]]></description><pubDate>Sun, 17 May 2026 16:21:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=48170332</link><dc:creator>pron</dc:creator><comments>https://news.ycombinator.com/item?id=48170332</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48170332</guid></item></channel></rss>