<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>Mon, 15 Jun 2026 12:48:36 +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 "Trip report: June 2026 ISO C++ standards meeting (Brno, Czechia)"]]></title><description><![CDATA[
<p>Any change in basic arithmetic should be backwards-compatible. The easiest way to eliminate UB is to define signed overflow for existing types as 2-complement. But new types with different semantics (or maybe library wrappers) can be created - with saturation, panic on overflow, or even with arithmetic operations producing extended types (like u16 + u16 = u17, u8 * u8 = u16 ).</p>
]]></description><pubDate>Sun, 14 Jun 2026 06:38:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=48524754</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=48524754</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48524754</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Make stolen phones unusable, Met Police urges tech giants"]]></title><description><![CDATA[
<p>> enforce measures rendering handsets effectively unusable<p>> When an iPhone user is not identified as being at a familiar location<p>> equipping police with new powers to search properties without a warrant where stolen goods have been electronically located<p>> facial recognition to cut the number of grabs on the capital's streets<p>This all means total surveillance. What could possible go wrong with this?</p>
]]></description><pubDate>Sun, 14 Jun 2026 06:32:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=48524727</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=48524727</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48524727</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Orthodox C++ (2016)"]]></title><description><![CDATA[
<p>> Don’t use RTTI.<p>That's the core feature of the language. Not using it doesn't make any sense.<p>> Don’t use stream (<iostream>, <stringstream>, etc.), use printf style functions instead.<p><i>printf</i> is type-unsafe and bug-prone. Also modern C++ standards have better formatting utilities.<p>> Don’t use anything from STL that allocates memory, unless you don’t care about memory management.<p>In 99.9% of the time one should not care. Using something like <i>std::vector</i> is perfectly fine.<p>Overall I find such "Orthodox" C++ harmful. I call it "pure C heresy".</p>
]]></description><pubDate>Sun, 14 Jun 2026 06:24:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=48524702</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=48524702</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48524702</guid></item><item><title><![CDATA[New comment by Panzerschrek in "The Road to the WASM Component Model 1.0"]]></title><description><![CDATA[
<p>Programs written in Java require installation of a middleware called Java runtime. It adds extra friction for end-users. And even if one has Java runtime installed, a newer version may be necessary for a recently-published application.<p>With WASM it may be the same, unless al major OS vendors integrate a WASM runtime so that it doesn't need to be installed separately.</p>
]]></description><pubDate>Thu, 11 Jun 2026 06:23:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=48486877</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=48486877</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48486877</guid></item><item><title><![CDATA[New comment by Panzerschrek in "The Road to the WASM Component Model 1.0"]]></title><description><![CDATA[
<p>> you dont need to write platform specific code<p>You don't need to write platform-specific code if you use some cross-platform framework. For simple programs it may be enough to use only the standard library of your language of choice.<p>> single portable binary that can run on x86 windows, arm64 linux and in your browser with zero modification<p>It has little value. Compiling a separate binary for each OS isn't that hard, since only a handful of architectures and operating systems are actually in use. Using an abstract cross-platform binary (like WASM) in the other hand adds extra performance costs and other user-side overhead, which isn't strictly necessary.</p>
]]></description><pubDate>Thu, 11 Jun 2026 06:19:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=48486847</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=48486847</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48486847</guid></item><item><title><![CDATA[New comment by Panzerschrek in "The Road to the WASM Component Model 1.0"]]></title><description><![CDATA[
<p>> I don't ever want to run untrusted code from the internet outside of a sandbox ever again<p>WASM is great, but I think it's a wrong approach for sandboxing problem. It's technically possible to sandbox native applications (compiled into target machine code) using OS-builtin mechanisms, but it's not done for compatibility reasons, because this is the way things were done last 50 years or so.</p>
]]></description><pubDate>Thu, 11 Jun 2026 05:35:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=48486579</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=48486579</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48486579</guid></item><item><title><![CDATA[New comment by Panzerschrek in "The beauty and simplicity of the good old C-style void* in C++"]]></title><description><![CDATA[
<p><p><pre><code>  void DoSomething(
   _In_reads_bytes_(numBytes) const void * p,
   _In_ size_t numBytes );
</code></pre>
It's an anti-pattern in C++, which causes a lot of bugs and security vulnerabilities. That's why C++ Core Guidelines recommend to use std::span.</p>
]]></description><pubDate>Wed, 10 Jun 2026 06:24:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=48472234</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=48472234</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48472234</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Making Graphics Like it's 1993"]]></title><description><![CDATA[
<p>> The generation pipeline takes several inputs:
>   a heightmap that defines the surface relief
>       this is actually just used to generate the normal map, which is then used to bake in simple lighting and shadows<p>I don't think someone used this approach in 1993. Textures were drawn by hand. But I think it's still fine to use such modern way of generating textures, since it may produce better-looking result.</p>
]]></description><pubDate>Wed, 10 Jun 2026 06:14:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=48472156</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=48472156</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48472156</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Making Graphics Like it's 1993"]]></title><description><![CDATA[
<p>> We then choose the number of shade levels (32 in my case) meaning each color needs 31 darker variants<p>I suggest to use not only darker variants, but also brighter ones - for bright map areas and maybe for some lighting effects like flashlight.</p>
]]></description><pubDate>Wed, 10 Jun 2026 06:09:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=48472116</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=48472116</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48472116</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Making Graphics Like it's 1993"]]></title><description><![CDATA[
<p>> Catlantean 3D is a traditional raycaster. The map consists of tiles which are all identical in size;<p>It's sad. That's why I never finished playing Wolfenstein 3D - it looks too boring. In the other hand I enjoy playing Doom, mods for it and games using its engine.<p>I hope the author can still add some improvements to allow such boring look typical for raycaster engines.</p>
]]></description><pubDate>Wed, 10 Jun 2026 06:06:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=48472096</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=48472096</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48472096</guid></item><item><title><![CDATA[New comment by Panzerschrek in "More Molly Guards"]]></title><description><![CDATA[
<p>> This IBM electronic typewriter had a gorgeous perspex molly guard around the power button<p>Creators of some keyboards placing a sleep button right above arrow keys didn't bother doing this.</p>
]]></description><pubDate>Wed, 10 Jun 2026 05:55:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=48472005</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=48472005</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48472005</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Show HN: Mach – A compiled systems language looking for contributions"]]></title><description><![CDATA[
<p>Rust have shown that safety can be achieved without sacrificing performance and many other aspects of language design. My language Ü proved this to be true too. So, I now see no reason not to incorporate safety mechanisms into newly-designed programming languages. For me adding no safety mechanisms is like not including safety belts and airbags in a newly-built car. That's why ask the same question again and again under each Show HN post presenting a new language.<p>> I feel like I sit along a different axis in the safe versus unsafe discourse<p>I can't believe someone can be neutral in this question. If you do actually write code in unsafe-languages, you are eventually forced to find a fix memory-related bugs and other bugs caused by their unsafety. Maybe you just don't need writing such low-level code and use some high-level language without direct memory access instead?<p>> what choices where made and why<p>In many cases there is no answer. My experience shows that many design decisions are made without thinking too long. One often just needs something to work right now rather than spending much time carefully designing each language feature. It's especially true for pretty-young language projects like Mach.</p>
]]></description><pubDate>Wed, 10 Jun 2026 05:49:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=48471959</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=48471959</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48471959</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Show HN: Mach – A compiled systems language looking for contributions"]]></title><description><![CDATA[
<p>> There is no such thing as unsafe code, just poorly designed code.<p>It's incorrect. In many programming languages there is a clear separation between safe and unsafe code - via special unsafe blocks or something similar. Languages without such separation are always unsafe or (rarely) always safe.<p>So, I assume Mach is fully unsafe, like C is.</p>
]]></description><pubDate>Tue, 09 Jun 2026 16:10:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48462987</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=48462987</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48462987</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Config Files That Run Code: Supply Chain Security Blindspot"]]></title><description><![CDATA[
<p>As I understand one don't need to have AI agents or something similar to be pwned. It's enough to clone a repository using git, since it allows executing arbitrary hooks for post-checkout.</p>
]]></description><pubDate>Tue, 09 Jun 2026 06:37:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=48457379</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=48457379</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48457379</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Show HN: Mach – A compiled systems language looking for contributions"]]></title><description><![CDATA[
<p>What about safety? Does the language allows shooting the leg? Does it have safe/unsafe code separation?</p>
]]></description><pubDate>Tue, 09 Jun 2026 06:29:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=48457308</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=48457308</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48457308</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Show HN: Mach – A compiled systems language looking for contributions"]]></title><description><![CDATA[
<p>> Contributors: @claude<p>Is it yet another LLM-generated project with little human-written code?</p>
]]></description><pubDate>Tue, 09 Jun 2026 06:28:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=48457304</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=48457304</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48457304</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Let's Encrypt bans certificate usage in any US sanctioned territory [pdf]"]]></title><description><![CDATA[
<p>Does it mean that russian/iranian web-sites using letsencrypt stop working and need to change their certificate provider?</p>
]]></description><pubDate>Tue, 09 Jun 2026 06:24:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=48457260</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=48457260</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48457260</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Zig Zen Update"]]></title><description><![CDATA[
<p><i>defer</i> can be forgotten to be written. C++ always calls destructors for local variables without additional programmer's intervention needed.</p>
]]></description><pubDate>Tue, 09 Jun 2026 05:31:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=48456886</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=48456886</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48456886</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Moving beyond fork() + exec()"]]></title><description><![CDATA[
<p>The whole approach of using <i>fork</i> seems to be unnatural for me. In many cases (even in the majority of them) it's not needed to inherit the whole structure of the parent process, but to start a given executable. Windows does this better with its <i>CreateProcessW</i> interface.</p>
]]></description><pubDate>Sat, 06 Jun 2026 16:45:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48426672</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=48426672</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48426672</guid></item><item><title><![CDATA[New comment by Panzerschrek in "Zig Zen Update"]]></title><description><![CDATA[
<p>> This language exists so you can reuse the same code in environments where memory allocations may fail, and where memory allocations can't fail.<p>In my hypothetical example of a language where allocation fails aren't exposed it's possible too. An allocation fail just triggers a full system reboot.</p>
]]></description><pubDate>Sat, 06 Jun 2026 15:27:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=48425955</link><dc:creator>Panzerschrek</dc:creator><comments>https://news.ycombinator.com/item?id=48425955</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48425955</guid></item></channel></rss>