<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: gpderetta</title><link>https://news.ycombinator.com/user?id=gpderetta</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 11 Apr 2026 17:47:21 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=gpderetta" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by gpderetta in "Investigating Split Locks on x86-64"]]></title><description><![CDATA[
<p>You don't want them. Except for bug-compatibility with old broken software which is something that Intel (and MS) care a lot about.<p>If you mean split-lock <i>detection</i>, it is because split locks are a massive DoS vulnerability on high core count CPUs.</p>
]]></description><pubDate>Sat, 11 Apr 2026 08:08:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=47728548</link><dc:creator>gpderetta</dc:creator><comments>https://news.ycombinator.com/item?id=47728548</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47728548</guid></item><item><title><![CDATA[New comment by gpderetta in "F-15E jet shot down over Iran"]]></title><description><![CDATA[
<p>What are A-10s doing there? There isn't yet any ground operation, right?</p>
]]></description><pubDate>Fri, 03 Apr 2026 19:14:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=47630841</link><dc:creator>gpderetta</dc:creator><comments>https://news.ycombinator.com/item?id=47630841</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47630841</guid></item><item><title><![CDATA[New comment by gpderetta in "Steam on Linux Use Skyrocketed Above 5% in March"]]></title><description><![CDATA[
<p>Agree on both counts. I use debian unstable and is usually 50/50 on whether the machine will reboot on a working display after a kernel upgrade. Very easy to fix if you have a bit of knowledge, but certainly not ready for the general public.<p>I don't have a laptop with an nvidia card, but I often suspend the linux gaming machine on my living room, and sometimes it doesn't come back from sleep, while my steam deck never failed to.</p>
]]></description><pubDate>Thu, 02 Apr 2026 12:00:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=47613256</link><dc:creator>gpderetta</dc:creator><comments>https://news.ycombinator.com/item?id=47613256</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47613256</guid></item><item><title><![CDATA[New comment by gpderetta in "C++26 is done: ISO C++ standards meeting Trip Report"]]></title><description><![CDATA[
<p>Partial specialization specifically. Match some patterns and covert it to something else. For example:<p><pre><code>  struct F { double x; };
  enum Op { Add, Mul };
  auto eval(F x) { return x.x; }
  template<class L, class R, Op op> struct Expr;
  template<class L, class R> struct Expr<L,R,Add>{  L l; R r; 
    friend auto eval(Expr self) { return eval(self.l) + eval(self.r); } };
  template<class L, class R> struct Expr<L,R,Mul>{  L l; R r; 
    friend auto eval(Expr self) { return eval(self.l) * eval(self.r); } };
  template<class L, class R, class R2> struct Expr<Expr<L, R, Mul>, R2, Add>{   Expr<L,R, Mul> l; R2 r; 
    friend auto eval(Expr self) { return fma(eval(self.l.l), eval(self.l.r), eval(self.r));}};
  template<class L, class R>
  auto operator +(L l, R r) { return Expr<L, R, Add>{l, r}; } 
  template<class L, class R>
  auto operator *(L l, R r) { return Expr<L, R, Mul>{l, r}; } 

  double optimized(F x, F y, F z) { return eval(x * y + z); }
  double non_optimized(F x, F y, F z) { return eval(x + y * z); }
</code></pre>
Optimized always generates a call to fma, non-optimized does not. Use -O1 to see the difference (will inline trivial functions, but will not do other optimizations). -O0 also generates the fma, but it is lost in the noise.<p>The magic happens by specifically matching the pattern Expr<Expr<L, R, Mul>, R2, Add>; try to add a rule to optimize x+y*z as well.</p>
]]></description><pubDate>Wed, 01 Apr 2026 15:41:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47602378</link><dc:creator>gpderetta</dc:creator><comments>https://news.ycombinator.com/item?id=47602378</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47602378</guid></item><item><title><![CDATA[Std: Fewer [pdf]]]></title><description><![CDATA[
<p>Article URL: <a href="https://isocpp.org/files/papers/P4161R0.pdf">https://isocpp.org/files/papers/P4161R0.pdf</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47599133">https://news.ycombinator.com/item?id=47599133</a></p>
<p>Points: 3</p>
<p># Comments: 1</p>
]]></description><pubDate>Wed, 01 Apr 2026 10:43:56 +0000</pubDate><link>https://isocpp.org/files/papers/P4161R0.pdf</link><dc:creator>gpderetta</dc:creator><comments>https://news.ycombinator.com/item?id=47599133</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47599133</guid></item><item><title><![CDATA[New comment by gpderetta in "C++26 is done: ISO C++ standards meeting Trip Report"]]></title><description><![CDATA[
<p>arm64 added a load acquire instruction which I think it is fast enough on actual hardware that might not be worth bothering with consume. If it isn't, then load-relaxed plus atomic_signal_fence might be your best bet. Good luck!</p>
]]></description><pubDate>Wed, 01 Apr 2026 10:05:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47598900</link><dc:creator>gpderetta</dc:creator><comments>https://news.ycombinator.com/item?id=47598900</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47598900</guid></item><item><title><![CDATA[New comment by gpderetta in "C++26 is done: ISO C++ standards meeting Trip Report"]]></title><description><![CDATA[
<p>Expression templates do AST manipulation of expressions at compile time. Let's say you have a complex matrix expression that naively maps to multiple BLAS operations but can be reduced to a single BLAS call. With expression templates you can translate one to the other, this is a static manipulation that does not depend on compiler level. What does depend on the compiler is whether the incidental trivial function calls to operators gets optimized away or not. But, especially with large matrices, the BLAS call will dominate anyway, so the optimization level shouldn't matter.<p>Of course in many cases the optimization level does matter: if you are optimizing small vector operators to simd inlining will still be important.</p>
]]></description><pubDate>Wed, 01 Apr 2026 09:10:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=47598569</link><dc:creator>gpderetta</dc:creator><comments>https://news.ycombinator.com/item?id=47598569</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47598569</guid></item><item><title><![CDATA[New comment by gpderetta in "Italy blocks US use of Sicily air base for Middle East war"]]></title><description><![CDATA[
<p>3-days special operation.</p>
]]></description><pubDate>Wed, 01 Apr 2026 07:55:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47598098</link><dc:creator>gpderetta</dc:creator><comments>https://news.ycombinator.com/item?id=47598098</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47598098</guid></item><item><title><![CDATA[New comment by gpderetta in "Fedware: Government apps that spy harder than the apps they ban"]]></title><description><![CDATA[
<p>IMHO incompetent malice is as much likely.</p>
]]></description><pubDate>Tue, 31 Mar 2026 13:01:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=47586744</link><dc:creator>gpderetta</dc:creator><comments>https://news.ycombinator.com/item?id=47586744</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47586744</guid></item><item><title><![CDATA[New comment by gpderetta in "C++26 is done: ISO C++ standards meeting Trip Report"]]></title><description><![CDATA[
<p>re 3, clang has [[trivial_abi]] (and I believe GCC is also implementing it. But it won't be applied to standard types by default, because of course is ABI breaking. You'll have to derive your own.</p>
]]></description><pubDate>Mon, 30 Mar 2026 16:12:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=47576152</link><dc:creator>gpderetta</dc:creator><comments>https://news.ycombinator.com/item?id=47576152</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47576152</guid></item><item><title><![CDATA[New comment by gpderetta in "C++26 is done: ISO C++ standards meeting Trip Report"]]></title><description><![CDATA[
<p>use templates.</p>
]]></description><pubDate>Mon, 30 Mar 2026 16:08:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=47576093</link><dc:creator>gpderetta</dc:creator><comments>https://news.ycombinator.com/item?id=47576093</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47576093</guid></item><item><title><![CDATA[New comment by gpderetta in "What came after the 486?"]]></title><description><![CDATA[
<p>Interesting, apparently it did scoreboarding like the CDC6600 and allowed multiple memory loads in flight, but I can't find a definite statement on whether it did renaming (I.e. writes to the same registers stalled). It might not be OoO as per modern definition, but is also not a fully on-order design.</p>
]]></description><pubDate>Fri, 27 Mar 2026 11:02:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=47541187</link><dc:creator>gpderetta</dc:creator><comments>https://news.ycombinator.com/item?id=47541187</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47541187</guid></item><item><title><![CDATA[New comment by gpderetta in "What came after the 486?"]]></title><description><![CDATA[
<p>Was i960 OoO?</p>
]]></description><pubDate>Thu, 26 Mar 2026 15:29:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=47531730</link><dc:creator>gpderetta</dc:creator><comments>https://news.ycombinator.com/item?id=47531730</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47531730</guid></item><item><title><![CDATA[New comment by gpderetta in "European Parliament decided that Chat Control 1.0 must stop"]]></title><description><![CDATA[
<p>That's happens often in parliamentary proceedings: when the other party succeeds in unrecognizably amending the law, the party proposing it will vote against.<p>Specifically for the European Parliament, this is also why, while it is true it doesn't have the power of legislative initiative, given the ability to amend at will any "law", in practice it doesn't make much of a difference.</p>
]]></description><pubDate>Thu, 26 Mar 2026 14:09:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=47530683</link><dc:creator>gpderetta</dc:creator><comments>https://news.ycombinator.com/item?id=47530683</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47530683</guid></item><item><title><![CDATA[New comment by gpderetta in "End of "Chat Control": EU Parliament Stops Mass Surveillance in Voting Thriller"]]></title><description><![CDATA[
<p>> We do? What did you think the European Parliament elections every four years were for?<p>Probably it is not taught as part of the curriculum in Russia.</p>
]]></description><pubDate>Thu, 26 Mar 2026 13:18:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=47530098</link><dc:creator>gpderetta</dc:creator><comments>https://news.ycombinator.com/item?id=47530098</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47530098</guid></item><item><title><![CDATA[New comment by gpderetta in "End of "Chat Control": EU Parliament Stops Mass Surveillance in Voting Thriller"]]></title><description><![CDATA[
<p>People directly elects MEPs. And the Parliament literally right now just put a check on the Council.<p>Many EU nations are not presidential, and personally I prefer parliamentary republics than presidential ones.</p>
]]></description><pubDate>Thu, 26 Mar 2026 13:18:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47530085</link><dc:creator>gpderetta</dc:creator><comments>https://news.ycombinator.com/item?id=47530085</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47530085</guid></item><item><title><![CDATA[New comment by gpderetta in "The EU still wants to scan  your private messages and photos"]]></title><description><![CDATA[
<p>That should completely change the regulation from mass surveillance to targeted wiretapping with a warrant.</p>
]]></description><pubDate>Thu, 26 Mar 2026 13:03:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=47529941</link><dc:creator>gpderetta</dc:creator><comments>https://news.ycombinator.com/item?id=47529941</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47529941</guid></item><item><title><![CDATA[New comment by gpderetta in "The EU still wants to scan  your private messages and photos"]]></title><description><![CDATA[
<p>Gorgoroth sounds about right.</p>
]]></description><pubDate>Thu, 26 Mar 2026 12:59:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47529892</link><dc:creator>gpderetta</dc:creator><comments>https://news.ycombinator.com/item?id=47529892</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47529892</guid></item><item><title><![CDATA[New comment by gpderetta in "The EU still wants to scan  your private messages and photos"]]></title><description><![CDATA[
<p>As an EU citizen, I'm happy that the parliament has once again rejected the proposal, which at least gives credence to the notion that it not just there to rubber-stamp what the commission decides.<p>But the price of freedom is indeed eternal vigilance.</p>
]]></description><pubDate>Thu, 26 Mar 2026 12:18:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=47529556</link><dc:creator>gpderetta</dc:creator><comments>https://news.ycombinator.com/item?id=47529556</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47529556</guid></item><item><title><![CDATA[New comment by gpderetta in "What came after the 486?"]]></title><description><![CDATA[
<p>Pentium were the first superscalar x86 from intel, but were still in-order. Pentium-Pro (a completely different microarchitecture) was the first OoO intel x86 microarchitecture.</p>
]]></description><pubDate>Thu, 26 Mar 2026 11:06:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47529008</link><dc:creator>gpderetta</dc:creator><comments>https://news.ycombinator.com/item?id=47529008</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47529008</guid></item></channel></rss>