<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: neonz80</title><link>https://news.ycombinator.com/user?id=neonz80</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 28 Jul 2026 17:35:09 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=neonz80" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by neonz80 in "The PImpl idiom and the C++26 std:indirect type"]]></title><description><![CDATA[
<p>They didn't add PImpl support, they added std::indirect which can be used for PImpl among other things.</p>
]]></description><pubDate>Fri, 24 Jul 2026 07:47:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=49032403</link><dc:creator>neonz80</dc:creator><comments>https://news.ycombinator.com/item?id=49032403</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49032403</guid></item><item><title><![CDATA[New comment by neonz80 in "A stray "j" ruined my evening"]]></title><description><![CDATA[
<p>Impossible, Signal TUI is written in Rust.</p>
]]></description><pubDate>Sun, 28 Jun 2026 10:17:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=48706050</link><dc:creator>neonz80</dc:creator><comments>https://news.ycombinator.com/item?id=48706050</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48706050</guid></item><item><title><![CDATA[New comment by neonz80 in "C extensions, portability, and alternative compilers"]]></title><description><![CDATA[
<p>> Windows users singling out Linux users for not catering to their platform. How the times change...<p>In my experience this was a problem over 25 years ago when I developed for Solaris and other non-Linux operating systems.</p>
]]></description><pubDate>Mon, 25 May 2026 22:01:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48272478</link><dc:creator>neonz80</dc:creator><comments>https://news.ycombinator.com/item?id=48272478</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48272478</guid></item><item><title><![CDATA[New comment by neonz80 in "C64: Putting Sprite Multiplexing to Work"]]></title><description><![CDATA[
<p>If you put both handlers in the same 256 byte page you can get away with only updating the low byte of the address.</p>
]]></description><pubDate>Tue, 03 Mar 2026 22:24:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=47239956</link><dc:creator>neonz80</dc:creator><comments>https://news.ycombinator.com/item?id=47239956</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47239956</guid></item><item><title><![CDATA[New comment by neonz80 in "Why Castrol Honda Superbike crashes on (most) modern systems"]]></title><description><![CDATA[
<p>Why an extra DLL instead of just patching the game executable? With some luck it is a one byte patch (from push 0 to push 4).</p>
]]></description><pubDate>Mon, 17 Nov 2025 14:10:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=45953684</link><dc:creator>neonz80</dc:creator><comments>https://news.ycombinator.com/item?id=45953684</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45953684</guid></item><item><title><![CDATA[New comment by neonz80 in "A prvalue is not a temporary"]]></title><description><![CDATA[
<p>I find that this can reduce overall complexity. It makes it possible to use objects that can not be copied (such as a file descriptor wrapper) and moving can in most cases not fail. Without move semantics you'd have to use smart pointers to get similar results but with extra overhead.</p>
]]></description><pubDate>Thu, 06 Nov 2025 22:51:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=45841475</link><dc:creator>neonz80</dc:creator><comments>https://news.ycombinator.com/item?id=45841475</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45841475</guid></item><item><title><![CDATA[New comment by neonz80 in "When O3 is 2x slower than O2"]]></title><description><![CDATA[
<p>I'm aware of how they are used, but fundamentally there is nothing with the words "array" and "vector" that says that one has a fixed size and the other has a dynamic size. If anything, it should be the other way around. Using the name vector for dynamic arrays is annoying when doing any kind of math coding. Even the designer of STL says the name was a mistake.</p>
]]></description><pubDate>Sun, 02 Nov 2025 13:47:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=45790336</link><dc:creator>neonz80</dc:creator><comments>https://news.ycombinator.com/item?id=45790336</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45790336</guid></item><item><title><![CDATA[New comment by neonz80 in "When O3 is 2x slower than O2"]]></title><description><![CDATA[
<p>I find the short type names for integers and float hard to read. Somehow the size of the type is more important than if it is a signed integer, unsigned integer or a floating point number.<p>Using Vec for arrays is also annoying, repeating the mistake from C++.</p>
]]></description><pubDate>Sun, 02 Nov 2025 13:05:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=45789998</link><dc:creator>neonz80</dc:creator><comments>https://news.ycombinator.com/item?id=45789998</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45789998</guid></item><item><title><![CDATA[New comment by neonz80 in "A secret to never forgetting numbers"]]></title><description><![CDATA[
<p>RobWords made a video about it a few weeks ago! <a href="https://youtu.be/UAT-eOzeY4M" rel="nofollow">https://youtu.be/UAT-eOzeY4M</a></p>
]]></description><pubDate>Sun, 02 Nov 2025 08:42:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=45788798</link><dc:creator>neonz80</dc:creator><comments>https://news.ycombinator.com/item?id=45788798</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45788798</guid></item><item><title><![CDATA[New comment by neonz80 in "Async/Await is finally back in Zig"]]></title><description><![CDATA[
<p>You should take a look at the presentation I mentioned elsewhere in this thread. You also have to keep in mind that it's not only the branches that use space, but also the error handling code. Code which must be duplicated for every single call to a particular function.</p>
]]></description><pubDate>Sat, 01 Nov 2025 19:29:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=45784564</link><dc:creator>neonz80</dc:creator><comments>https://news.ycombinator.com/item?id=45784564</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45784564</guid></item><item><title><![CDATA[New comment by neonz80 in "Async/Await is finally back in Zig"]]></title><description><![CDATA[
<p>The CPU can not remember an infinite number of branches. Also, many branches will increase code size. With exceptions the unwind tables and unwind code can be placed elsewhere and not take up valuable L1 cache.</p>
]]></description><pubDate>Sat, 01 Nov 2025 18:55:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=45784284</link><dc:creator>neonz80</dc:creator><comments>https://news.ycombinator.com/item?id=45784284</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45784284</guid></item><item><title><![CDATA[New comment by neonz80 in "Async/Await is finally back in Zig"]]></title><description><![CDATA[
<p>That's a different type of overhead than having unwind tables. With exceptions you wouldn't need a branch after each function call at all.</p>
]]></description><pubDate>Sat, 01 Nov 2025 17:00:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=45783266</link><dc:creator>neonz80</dc:creator><comments>https://news.ycombinator.com/item?id=45783266</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45783266</guid></item><item><title><![CDATA[New comment by neonz80 in "Async/Await is finally back in Zig"]]></title><description><![CDATA[
<p>There was an interesting talk about C++ exceptions in smaller firmware at CppCon last year: <a href="https://youtu.be/bY2FlayomlE" rel="nofollow">https://youtu.be/bY2FlayomlE</a><p>Basically, the overhead of exceptions is probably less than handling the same errors manually in any non-trivial program.<p>Also, it's not like these table doesn't exist in other languages. Both Rust and Go have to unwind.</p>
]]></description><pubDate>Sat, 01 Nov 2025 16:36:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=45783042</link><dc:creator>neonz80</dc:creator><comments>https://news.ycombinator.com/item?id=45783042</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45783042</guid></item><item><title><![CDATA[New comment by neonz80 in "I write type-safe generic data structures in C"]]></title><description><![CDATA[
<p>I'm not sure about other compilers, but compiling C code as C++ with MSVC ends up with pretty much the exact same code, instruction by instruction. C++ is a bit more strict though especially with casting, so a lot of code won't compile out of the box.</p>
]]></description><pubDate>Mon, 30 Jun 2025 21:49:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=44428278</link><dc:creator>neonz80</dc:creator><comments>https://news.ycombinator.com/item?id=44428278</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44428278</guid></item><item><title><![CDATA[New comment by neonz80 in "The Hall SC-VGA-2 Video Processor, the Atari ST and NeXTSTEP"]]></title><description><![CDATA[
<p>I do not find the Retrotink 4k any less configurable than the OSSC (non-pro, I haven't tried the pro). Note that the 4k is nothing like the 5X-Pro which is more plug and play.</p>
]]></description><pubDate>Tue, 03 Dec 2024 01:52:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=42302279</link><dc:creator>neonz80</dc:creator><comments>https://news.ycombinator.com/item?id=42302279</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42302279</guid></item><item><title><![CDATA[New comment by neonz80 in "The Hall SC-VGA-2 Video Processor, the Atari ST and NeXTSTEP"]]></title><description><![CDATA[
<p>I've been using the OSSC to upscale a 50 Hz RGB signal (SCART) to 1024x1024 (256 lines duplicated 4x). Both my HDMI capture cards happily accept that resolution with the right software.<p>I haven't tried the OSSC Pro, but the Retrotink 4k should probably also work fine and is really easy to use. A bit on the expensive side though...</p>
]]></description><pubDate>Sat, 30 Nov 2024 14:59:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=42281966</link><dc:creator>neonz80</dc:creator><comments>https://news.ycombinator.com/item?id=42281966</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42281966</guid></item><item><title><![CDATA[New comment by neonz80 in "European govt air-gapped systems breached using custom malware"]]></title><description><![CDATA[
<p><a href="https://en.wikipedia.org/wiki/Unidirectional_network" rel="nofollow">https://en.wikipedia.org/wiki/Unidirectional_network</a></p>
]]></description><pubDate>Tue, 08 Oct 2024 23:15:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=41782776</link><dc:creator>neonz80</dc:creator><comments>https://news.ycombinator.com/item?id=41782776</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41782776</guid></item><item><title><![CDATA[New comment by neonz80 in "The Byte Order Fallacy"]]></title><description><![CDATA[
<p>The compiler can optimize this. See <a href="https://gcc.godbolt.org/z/hxW7hhrd7" rel="nofollow">https://gcc.godbolt.org/z/hxW7hhrd7</a><p><pre><code>  #include <cstdint>
  uint32_t read_le_uint32(const uint8_t* p)
  {
      return p[0] | (p[1] << 8) | (p[2] << 16) | (p[3] << 24);
  }
</code></pre>
ends up as<p><pre><code>  read_le_uint32(unsigned char const*):
          mov     eax, dword ptr [rdi]
          ret
</code></pre>
This works with Clang and gcc on x86_64 (but not with MSVC).</p>
]]></description><pubDate>Fri, 20 Sep 2024 22:08:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=41605940</link><dc:creator>neonz80</dc:creator><comments>https://news.ycombinator.com/item?id=41605940</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41605940</guid></item><item><title><![CDATA[New comment by neonz80 in "Removing stuff is never obvious yet often better"]]></title><description><![CDATA[
<p>I guess Ethereal is available :)</p>
]]></description><pubDate>Mon, 26 Aug 2024 15:17:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=41357971</link><dc:creator>neonz80</dc:creator><comments>https://news.ycombinator.com/item?id=41357971</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41357971</guid></item><item><title><![CDATA[New comment by neonz80 in "Show HN: SHAllenge – Compete to get the lowest hash"]]></title><description><![CDATA[
<p>I put my CPU code up here: <a href="https://github.com/neonz80/shallenge-x86">https://github.com/neonz80/shallenge-x86</a> . It requires an x86 CPU with the SHA256 extension.<p>It manages 1.1 GH/s on an Intel i7-13700K.</p>
]]></description><pubDate>Mon, 24 Jun 2024 20:51:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=40780602</link><dc:creator>neonz80</dc:creator><comments>https://news.ycombinator.com/item?id=40780602</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40780602</guid></item></channel></rss>