<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: pizlonator</title><link>https://news.ycombinator.com/user?id=pizlonator</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 26 Oct 2026 13:07:28 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=pizlonator" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by pizlonator in "OpenAI and Anthropic cut their LLM prices by up to 80% within a few months. Why?"]]></title><description><![CDATA[
<p>I think that the frontier labs knew what they were doing when they invested in cybersecurity starting in the spring (or maybe earlier). They knew it would create hype. They knew it fit with their narrative that they are building a dangerous thing (something they believe because it’s fun to believe in doom, because it’s a great story for investors, and because it’s not inconsistent with a moat - in fact it makes a moat via regulatory capture).</p>
]]></description><pubDate>Mon, 26 Oct 2026 02:12:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=50238278</link><dc:creator>pizlonator</dc:creator><comments>https://news.ycombinator.com/item?id=50238278</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50238278</guid></item><item><title><![CDATA[New comment by pizlonator in "OpenAI and Anthropic cut their LLM prices by up to 80% within a few months. Why?"]]></title><description><![CDATA[
<p>I wrote one and kept iterating by using it to fix bugs in itself<p>I still also use other harnesses, but mine is already at the point where I prefer it more often than not<p>You should totally keep working on yours. It’s a cool learning experience. And you might stumble on some good ideas that nobody else has had</p>
]]></description><pubDate>Mon, 26 Oct 2026 02:08:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=50238256</link><dc:creator>pizlonator</dc:creator><comments>https://news.ycombinator.com/item?id=50238256</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50238256</guid></item><item><title><![CDATA[New comment by pizlonator in "Apple Security Research Device"]]></title><description><![CDATA[
<p>> I see this as a pretty sneaky way of avoiding your security vulnerabilities going public and all the bad media exposure that goes along with it.<p>No, it's a way of making sure that Apple can fix the security issue and deliver the fix to customers before it can be exploited.</p>
]]></description><pubDate>Sat, 24 Oct 2026 18:06:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=50223655</link><dc:creator>pizlonator</dc:creator><comments>https://news.ycombinator.com/item?id=50223655</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50223655</guid></item><item><title><![CDATA[New comment by pizlonator in "Tell HN: I unknowingly broke the PHP RCE embargo. I am sorry"]]></title><description><![CDATA[
<p>OP is being a big man about this<p>Good shit</p>
]]></description><pubDate>Fri, 23 Oct 2026 02:06:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=50203694</link><dc:creator>pizlonator</dc:creator><comments>https://news.ycombinator.com/item?id=50203694</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50203694</guid></item><item><title><![CDATA[Memory Safe PHP]]></title><description><![CDATA[
<p>Article URL: <a href="https://mbrock.github.io/filnix/php-on-filc/">https://mbrock.github.io/filnix/php-on-filc/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=50201562">https://news.ycombinator.com/item?id=50201562</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 22 Oct 2026 21:51:48 +0000</pubDate><link>https://mbrock.github.io/filnix/php-on-filc/</link><dc:creator>pizlonator</dc:creator><comments>https://news.ycombinator.com/item?id=50201562</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50201562</guid></item><item><title><![CDATA[New comment by pizlonator in "Tsc-ts: TypeScript written in TypeScript"]]></title><description><![CDATA[
<p>> Well, if you write a library in the scriptc subset, it will also work in regular JavaScript runtimes, for free.<p>Not quite for free. You’d have to target the subset of both TS and scriptc and differential test, since there exist programs that work in both TS and scriptc but produce different output</p>
]]></description><pubDate>Sat, 17 Oct 2026 20:35:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=50134890</link><dc:creator>pizlonator</dc:creator><comments>https://news.ycombinator.com/item?id=50134890</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50134890</guid></item><item><title><![CDATA[New comment by pizlonator in "Reducing undefined behavior in the C language"]]></title><description><![CDATA[
<p>There are lots of those kinds of exploits if the one-bit overflow gives you control of a pointer. That doesn't work in Fil-C; the pointer's capability is protected in that case.<p>There are many orders of magnitude fewer real exploits using intra-struct overflow without pointer control than there are exploits using vanilla logic bugs (like the programmer forgot to check the is_admin bit before proceeding to the admin privileges business logic).<p>So, obsessing over intra-struct overflows in a language that prevents ptr-int type confusion is missing the plot.<p>(Believe me, if intra-struct overflows over primitives were a big threat, I'd change the Fil-C policy.)</p>
]]></description><pubDate>Sat, 17 Oct 2026 19:14:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=50134126</link><dc:creator>pizlonator</dc:creator><comments>https://news.ycombinator.com/item?id=50134126</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50134126</guid></item><item><title><![CDATA[New comment by pizlonator in "Tsc-ts: TypeScript written in TypeScript"]]></title><description><![CDATA[
<p>I confirmed, it's faster than the Go version, which is very surprising, and super impressive!<p>Caveats:<p>- I don't think it's right to say that it's "written in TypeScript". In fact, it's written in the subscript of TypeScript that scriptc supports. scriptc isn't just a subset of ts; it even diverges from ts semantics in sneaky ways to facilitate its optimizations. So, these folks have really created a TypeScript-like native language with some kind of RC-GC hybrid and a bunch of caveats. Not clear if this is any better than just creating a new language.<p>- Very likely that it was codeveloped with scriptc, so it's getting maximum benefit from exactly the sorts of idioms that scriptc supports well. And, I would bet they landed optimizations to scriptc specifically to get this result.<p>This could be useful, assuming they invest in supporting it, and you're the sort of person who needs 2x faster ts compiles.</p>
]]></description><pubDate>Sat, 17 Oct 2026 18:56:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=50133936</link><dc:creator>pizlonator</dc:creator><comments>https://news.ycombinator.com/item?id=50133936</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50133936</guid></item><item><title><![CDATA[New comment by pizlonator in "Reducing undefined behavior in the C language"]]></title><description><![CDATA[
<p>Fil-C used to as well. It's not a fundamental limitation; it's more policy: if the programmer takes a pointer to `name`, and then uses arithmetic to get to the `is_admin` field, do we allow it or not? If we allow it, then this hypothetical example becomes a security vulnerability. If we disallow it, then a huge number of C/C++ programs stop working.<p>This "name overflows to is_admin" example doesn't come up in real code or real CVEs. It does come up in HN comments on Fil-C threads though.<p>CHERI is less compatible than Fil-C, in terms of how many changes you have to make to code to make it work, and this is an example of a policy decision that causes that result.</p>
]]></description><pubDate>Fri, 09 Oct 2026 16:40:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=50023095</link><dc:creator>pizlonator</dc:creator><comments>https://news.ycombinator.com/item?id=50023095</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50023095</guid></item><item><title><![CDATA[New comment by pizlonator in "Reducing undefined behavior in the C language"]]></title><description><![CDATA[
<p>You're showing an example of something that could be a security bug if someone wrote that code, but you are missing the plot when it comes to memory safety and its connection to security.<p>What makes memory safety so important is that in C/C++, a missing bounds check on `name` gives you access <i>to the entire heap</i>, not simply the other fields within that allocation. Attackers aren't using missing bounds checks to look for `is_admin` fields in the same object. They're looking for a pivot to full memory control, so they can plug in their RCE exploit chain. So, the only time that attackers are looking for an intra-object overflow is if they have something like `struct { char buf[100]; void* ptr; }`, since that does lead to a pivot to full memory control. Fil-C protects that; you can't use that overflow to corrupt `ptr`'s capability.<p>This is why memory safety tech like MIE, MTE, and Fil-C focus on allocation granularity. If I wanted to support subobject granularity, I could; it's not a huge change to the capability model. Fil-C's first two capability models (back in late 2023, early 2024) supported subobject granularity. I'm choosing not to support it now because I understand the security implications well enough to know that it's not worth the complexity.<p>Fil-C started out as a macOS project. Fil-C supports Windows and macOS today via APE. Requiring recompiliation of everything is a luxury I can choose to support on Linux that results in memory safety of the whole process. If you find Fil-C useful and understand compilers, you could probably get a variant working that has FFI and then expose Windows and Mac API to it. You'd get something with a weaker safety guarantee, but no weaker than what you get today from Rust or Java.</p>
]]></description><pubDate>Fri, 09 Oct 2026 16:33:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=50022984</link><dc:creator>pizlonator</dc:creator><comments>https://news.ycombinator.com/item?id=50022984</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50022984</guid></item><item><title><![CDATA[New comment by pizlonator in "Reducing undefined behavior in the C language"]]></title><description><![CDATA[
<p>It’s cool that this mentions Fil-C but it also undersells it. TFA also undersells CHERI. Fil-C doesn’t just “find a lot of temporal-safety” bugs. It closes off memory safety bugs (special and temporal) for exploit writers and ascribes a tight semantics to the whole language. CHERI makes some different trade offs but also gives a tight enough semantics that memory safety exploits aren’t going to work. Both CHERI and Fil-C are more comprehensive than Rust, since they attack the problem at the ABI level (and so you don’t get the problem that the protection only applies to the parts that were rewritten in the safe subset of a new language). Rust could be claimed to be better in that its compile time, but that doesn’t make a significant difference if you’re worried about the definedness of semantics or exploitability.</p>
]]></description><pubDate>Fri, 09 Oct 2026 05:14:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=50016256</link><dc:creator>pizlonator</dc:creator><comments>https://news.ycombinator.com/item?id=50016256</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50016256</guid></item><item><title><![CDATA[New comment by pizlonator in "Mistral Large 4"]]></title><description><![CDATA[
<p>Good point.</p>
]]></description><pubDate>Tue, 06 Oct 2026 14:47:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=49979331</link><dc:creator>pizlonator</dc:creator><comments>https://news.ycombinator.com/item?id=49979331</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49979331</guid></item><item><title><![CDATA[New comment by pizlonator in "Oracle Triggered the Implosion of the AI Bubble"]]></title><description><![CDATA[
<p>Oracle stock is up today.</p>
]]></description><pubDate>Tue, 06 Oct 2026 14:37:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=49979200</link><dc:creator>pizlonator</dc:creator><comments>https://news.ycombinator.com/item?id=49979200</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49979200</guid></item><item><title><![CDATA[New comment by pizlonator in "Mistral Large 4"]]></title><description><![CDATA[
<p>Refreshing to see this.<p>The pricing ($.68 in/$.07 cached/$2.09 out) makes it much cheaper than Kimi K3, GLM 5.3, and Meta Muse Spark 1.3. That's great!<p>But also much more expensive than GLM 5.3-flash and Spark 1.3 Contributor (the Meta-takes-your-data pricing of Spark 1.3).<p>So, I think it would have to be significantly better than GLM 5.3-flash to be worth it. GLM 5.3-flash is already very good.</p>
]]></description><pubDate>Tue, 06 Oct 2026 14:35:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=49979173</link><dc:creator>pizlonator</dc:creator><comments>https://news.ycombinator.com/item?id=49979173</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49979173</guid></item><item><title><![CDATA[New comment by pizlonator in "A 40ms Go garbage collector pause caused by swap"]]></title><description><![CDATA[
<p>The classic on the fly GC algorithm is DLG, hilariously published in two papers, because the first one had a bug. Here's the second paper: <a href="https://caml.inria.fr/pub/papers/doligez_gonthier-gc-popl94.pdf" rel="nofollow">https://caml.inria.fr/pub/papers/doligez_gonthier-gc-popl94....</a><p>It's a well known algorithm. Folks who do GCs for a living know about it. The folks who work on Go are surely aware of it. I'm assuming that they do not use it for a good reason, hence my question!<p>Fil-C's GC (Fil's Unbelievable Garbage Collector) uses an alternative on-the-fly algorithm, which I call Phil's Concurrent Marking.<p>I've documented it here: <a href="https://fil-c.org/fugc" rel="nofollow">https://fil-c.org/fugc</a><p>Here's the source: <a href="https://github.com/pizlonator/fil-c/blob/deluge/libpas/src/libpas/fugc.c" rel="nofollow">https://github.com/pizlonator/fil-c/blob/deluge/libpas/src/l...</a><p>Phil's Concurrent Marking differs from DLG in that it only requires a Djikstra barrier and uses a permagrey stack (something that Go used to do).<p>However, FUGC does clever things for coroutines (as in ucontexts, which Fil-C supports) - they are not permagrey; they only become grey if they execute. That's relevant to Go because Go moved away from permagrey stacks because of coroutine scan overheads, which the FUGC coroutine strategy might avoid.<p>But even if Go could not go back to permagrey, then the answer would be to use DLG, which would involve using the combined Yuasa+Dijstra barrier, which Go uses today anyway</p>
]]></description><pubDate>Mon, 05 Oct 2026 04:55:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=49960828</link><dc:creator>pizlonator</dc:creator><comments>https://news.ycombinator.com/item?id=49960828</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49960828</guid></item><item><title><![CDATA[New comment by pizlonator in "A 40ms Go garbage collector pause caused by swap"]]></title><description><![CDATA[
<p>Is there a reason why Go isn’t using on the fly GC, where there’s no STW at all?</p>
]]></description><pubDate>Mon, 05 Oct 2026 04:31:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=49960695</link><dc:creator>pizlonator</dc:creator><comments>https://news.ycombinator.com/item?id=49960695</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49960695</guid></item><item><title><![CDATA[New comment by pizlonator in "Memory-Safe WebP Decoding"]]></title><description><![CDATA[
<p>Yes, Fil-C delivers almost all of its safety guarantees at runtime, because from a security standpoint, that's good enough.</p>
]]></description><pubDate>Sun, 04 Oct 2026 22:47:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=49958723</link><dc:creator>pizlonator</dc:creator><comments>https://news.ycombinator.com/item?id=49958723</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49958723</guid></item><item><title><![CDATA[New comment by pizlonator in "Memory-Safe WebP Decoding"]]></title><description><![CDATA[
<p>> But we literally do already have WebP for WUFFS.<p>This comes down to how strong your claim is, and what point you're trying to make.<p>If you're saying that compiling codecs in Fil-C is not a good use of Fil-C in general, then that's wrong, because not all codecs have a WUFFS version.<p>If you're saying that compiling WebP with Fil-C is not a good use of Fil-C because there's a WUFFS version, then that's also wrong, because I can't use the WUFFS version in a fully memory-safe web browser, since WUFFS doesn't support Fil-ABI and nobody has written a browser where the whole transitive closure of everything that the browser uses is WUFFS or some other safe language.<p>On the other hand, that is possible with Fil-C. (I'm posting this comment using a memory safe browser built with Fil-C, which has WebP built with Fil-C as well as everything else down to the libc/libc++ layer built with Fil-C.)<p>> double-free<p>Double-frees are deterministic panics in Fil-C. So yeah, Fil-C catches that, and any other memroy safety violation that could be used to achieve weird execution</p>
]]></description><pubDate>Sun, 04 Oct 2026 17:34:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=49955960</link><dc:creator>pizlonator</dc:creator><comments>https://news.ycombinator.com/item?id=49955960</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49955960</guid></item><item><title><![CDATA[New comment by pizlonator in "Memory-Safe WebP Decoding"]]></title><description><![CDATA[
<p>> any real cases where you can afford Fil-C but you can’t afford WUFFS<p>Anytime you already have the C or C++ code but not the WUFFS.<p>The main use case for the Fil-C build of webp is my memory safe web browser, which is built entirely using Fil-C (including all dependencies).<p>> WUFFS codec is obviously going to be a lot faster than Fil-C for similar development effort<p>For greater development effort. Fil-C is just C, so WUFFS is only comparable effort if that’s the only version of the codec you ever write, and in the unlikely case you are as productive in WUFFS as you would have been in C.<p>> it will catch a lot more than Fil-C<p>Like what?<p>Fil-C catches not just the bugs in your codec but any transitive misuse of it from other C or C++ code. So, while you might be able to pick out things Rust or WUFFS catch that Fil-C doesn’t, I can easily pick out things that Fil-C catches that nothing else can.</p>
]]></description><pubDate>Sun, 04 Oct 2026 14:44:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=49954361</link><dc:creator>pizlonator</dc:creator><comments>https://news.ycombinator.com/item?id=49954361</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49954361</guid></item><item><title><![CDATA[New comment by pizlonator in "Memory-Safe WebP Decoding"]]></title><description><![CDATA[
<p>webp builds with fil-C just fine if you want actual memory safety.<p>This is great but it’s got caveats:<p>- assembly code. They may have been careful but it’s an escape hatch<p>- if it has basically any dependencies then those are likely to transitively pull in more unsafe code</p>
]]></description><pubDate>Sun, 04 Oct 2026 04:52:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=49950744</link><dc:creator>pizlonator</dc:creator><comments>https://news.ycombinator.com/item?id=49950744</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49950744</guid></item></channel></rss>