<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: Panzerschrek</title><link>https://news.ycombinator.com/user?id=Panzerschrek</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 23 Apr 2026 18:50:26 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=Panzerschrek" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by Panzerschrek in "Show HN: A free tool for non-technical folks to easily publish a website"]]></title><description><![CDATA[
<p>Creating a Github-pages hosted site isn't that complex. The biggest burden is to purchase a domain and connect it with a hosting.</p>
]]></description><pubDate>Thu, 23 Apr 2026 05:50:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47872609</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=47872609</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47872609</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Borrow-checking without type-checking"]]></title><description><![CDATA[
<p>In my programming language I have some sort of "borrowing" too (although it's named differently). But my language has no dynamic typing, only static typing is used and thus all checks are compile-time and have no runtime cost. Why bothering with dynamic typing and paying runtime costs for it?</p>
]]></description><pubDate>Thu, 23 Apr 2026 05:21:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47872489</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=47872489</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47872489</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Modern Rendering Culling Techniques"]]></title><description><![CDATA[
<p>In practice many useful representation can be built only in a hierarchical way. Unless you want to force artist/map makers to split their maps in regions manually.</p>
]]></description><pubDate>Tue, 21 Apr 2026 06:16:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=47845212</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=47845212</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47845212</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Kefir C17/C23 Compiler"]]></title><description><![CDATA[
<p>Can it compile Doom?</p>
]]></description><pubDate>Tue, 21 Apr 2026 05:28:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47844904</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=47844904</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47844904</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Modern Rendering Culling Techniques"]]></title><description><![CDATA[
<p>PVS requires some hierarchical scene representation with no seams between walls. I know no other way to build such representation other than BSP. But BSP works fine only with pretty low-detail map geometry consisting of brushes. No large detail meshes or terrains can be used with it. If a game has a lot of open spaces or semi-open spaces it's nearly to impossible to build a BSP for it.</p>
]]></description><pubDate>Tue, 21 Apr 2026 05:25:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47844869</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=47844869</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47844869</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Modern Rendering Culling Techniques"]]></title><description><![CDATA[
<p>Is portal culling still used today? I thought it's an old technic used only by some very old games like Thief.</p>
]]></description><pubDate>Tue, 21 Apr 2026 05:20:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=47844832</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=47844832</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47844832</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Game devs explain the tricks involved with letting you pause a game"]]></title><description><![CDATA[
<p>Pausing a game is a source of many bugs. In many games some subsystems aren't paused, like particles or animated materials. In some games I even saw that the character moves forward if the forward moving button was pressed at the moment when the pause button was hit.<p>It surprises me, that it's so hard to do properly.</p>
]]></description><pubDate>Mon, 20 Apr 2026 06:02:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47830881</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=47830881</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47830881</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Nanopass Framework: Clean Compiler Creation Language"]]></title><description><![CDATA[
<p>As a compiler developer I see no reason to use a lot of passes. My language compiler is designed in such a way, that it does its frontend work (except tokenization and syntax analysis) in one big pass, which does all the stuff necessary. Splitting this work in multiple passes is impossible due to language specifics - interleaving many compilation stages is necessary for many language features to function properly.<p>Also I doubt that a common framework can be used by many languages at all. Usually a mature language compiler is self-hosted, which makes near to impossible to incorporate in it some thirdparty library/framework written in some other language.</p>
]]></description><pubDate>Mon, 20 Apr 2026 05:46:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=47830782</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=47830782</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47830782</guid></item><item><title><![CDATA[New comment by Panzerschrek in "4-bit floating point FP4"]]></title><description><![CDATA[
<p>This doesn't look like good a floating point format. NaNs and INFs are missing.</p>
]]></description><pubDate>Sun, 19 Apr 2026 06:30:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=47822224</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=47822224</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47822224</guid></item><item><title><![CDATA[New comment by Panzerschrek in "It's OK to compare floating-points for equality"]]></title><description><![CDATA[
<p>I agree that using fixed point in many cases is a better option. But floating point is assumed to be the default choice for computations with non-integer numbers, because almost all popular programming languages have only floating-point built-in types, but not fixed point types.</p>
]]></description><pubDate>Sun, 19 Apr 2026 06:27:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=47822217</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=47822217</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47822217</guid></item><item><title><![CDATA[New comment by Panzerschrek in "It's OK to compare floating-points for equality"]]></title><description><![CDATA[
<p>It's a good advice to avoid using floating point at all, if it's not that hard to do so. In one of my hobby projects I have written a simple map application based on OSM data with geometry processing code operation on integers only.</p>
]]></description><pubDate>Sun, 19 Apr 2026 06:16:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47822180</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=47822180</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47822180</guid></item><item><title><![CDATA[New comment by Panzerschrek in "A simplified model of Fil-C"]]></title><description><![CDATA[
<p>Fil-C is only good if one needs to recompile an existing C program and gain extra safety without caring much about result performance. And even in such case I doubt it's useful, since existing code should be already well-tested and (almost) bug-free.<p>If new code needs to be written, there is no reason to use Fil-C, since better languages with build-in security mechanisms exist.</p>
]]></description><pubDate>Sat, 18 Apr 2026 05:33:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47813397</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=47813397</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47813397</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Do you even need a database?"]]></title><description><![CDATA[
<p>I agree that using a database in many cases is overkill. And I don't understand at all who and why uses so-called in-memory databases.</p>
]]></description><pubDate>Fri, 17 Apr 2026 05:41:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=47802758</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=47802758</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47802758</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Too much discussion of the XOR swap trick"]]></title><description><![CDATA[
<p>Except such "optimization" may affect performance on CPUs with speculative execution/prediction. But it should be measured.</p>
]]></description><pubDate>Thu, 16 Apr 2026 08:21:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=47790191</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=47790191</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47790191</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Too much discussion of the XOR swap trick"]]></title><description><![CDATA[
<p>Such tricks were maybe useful 40 years ago while writing assembly code manually or while using a dumb compiler with no optimizations. But nowadays such tricks are near to useless. All useful ones (like optimizing division by 2 via bitshift ) are already implemented as compiler optimizations. Others shouldn't be used in order to avoid making optimizer's job harder.</p>
]]></description><pubDate>Thu, 16 Apr 2026 08:18:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47790172</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=47790172</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47790172</guid></item><item><title><![CDATA[New comment by Panzerschrek in "C++26: Structured Bindings in Conditions"]]></title><description><![CDATA[
<p>> if (const auto& [is_successful, error_message] = foo(n))<p>I don't like it. It's hard to reason what exactly serves as condition variable.</p>
]]></description><pubDate>Thu, 16 Apr 2026 06:36:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=47789422</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=47789422</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47789422</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Show HN: I built a Cargo-like build tool for C/C++"]]></title><description><![CDATA[
<p>> You describe your project in a simple craft.toml<p>I don't like it. Such format is generally restricted (is not Turing-complete), which doesn't allow doing something non-trivial, for example, choosing dependencies or compilation options based on some non-trivial conditions. That's why CMake is basically a programming language with variables, conditions, loops and even arithmetic.</p>
]]></description><pubDate>Fri, 10 Apr 2026 05:34:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=47714039</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=47714039</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47714039</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Show HN: M. C. Escher spiral in WebGL inspired by 3Blue1Brown"]]></title><description><![CDATA[
<p>I did my own version too: <a href="https://www.youtube.com/watch?v=xxLfDHe93_M" rel="nofollow">https://www.youtube.com/watch?v=xxLfDHe93_M</a></p>
]]></description><pubDate>Sun, 05 Apr 2026 05:40:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=47646434</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=47646434</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47646434</guid></item><item><title><![CDATA[New comment by Panzerschrek in "How to Write Unmaintainable Code (1999)"]]></title><description><![CDATA[
<p>> Make all of your leaf classes final. After all, you're done with the project - certainly no one else could possibly improve on your work by extending your classes.<p>It's actually a good advice. A class not designed to be extendable should be marked as final.</p>
]]></description><pubDate>Sat, 04 Apr 2026 06:07:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=47636315</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=47636315</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47636315</guid></item><item><title><![CDATA[New comment by Panzerschrek in "A Primer on Long-Duration Life Support"]]></title><description><![CDATA[
<p>A lot of problems mentioned in the article are solvable by adding more mass - for supplies and spare parts. New generation reusable rockets can allow this. In the past it was costly to launch a rocket, so systems were designed to be compact, but complex/fragile. Cheap space access changes this equation.</p>
]]></description><pubDate>Wed, 01 Apr 2026 06:08:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47597407</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=47597407</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47597407</guid></item></channel></rss>