<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: stassats</title><link>https://news.ycombinator.com/user?id=stassats</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 25 Apr 2026 22:49:31 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=stassats" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by stassats in "Cl-kawa: Scheme on Java on Common Lisp"]]></title><description><![CDATA[
<p>I did that to write simd routines for sbcl: <a href="https://github.com/sbcl/sbcl/blob/master/src/code/arm64-simd.lisp#L819" rel="nofollow">https://github.com/sbcl/sbcl/blob/master/src/code/arm64-simd...</a>
Probably the best way of writing assembly, can evaluate the function immediately, use macros and any other code to emit instructions, even can print register values (instruction-level stepping would be even better, but too much work).</p>
]]></description><pubDate>Wed, 25 Feb 2026 14:56:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=47152370</link><dc:creator>stassats</dc:creator><comments>https://news.ycombinator.com/item?id=47152370</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47152370</guid></item><item><title><![CDATA[New comment by stassats in "Steel Bank Common Lisp"]]></title><description><![CDATA[
<p>Still 40 years to go.</p>
]]></description><pubDate>Wed, 25 Feb 2026 14:28:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=47151941</link><dc:creator>stassats</dc:creator><comments>https://news.ycombinator.com/item?id=47151941</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47151941</guid></item><item><title><![CDATA[New comment by stassats in "Steel Bank Common Lisp"]]></title><description><![CDATA[
<p>I have also seen some outright crashes on the new GC.</p>
]]></description><pubDate>Wed, 25 Feb 2026 14:28:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47151935</link><dc:creator>stassats</dc:creator><comments>https://news.ycombinator.com/item?id=47151935</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47151935</guid></item><item><title><![CDATA[New comment by stassats in "Addressing the adding situation"]]></title><description><![CDATA[
<p>The tricks to avoid multiplication (and division) are probably worth a whole post.<p><pre><code>  x * 6:
  lea eax, [rdi+rdi*2]
  add eax, eax

  x * 7:
  lea eax, [0+rdi*8]
  sub eax, edi
  
  x * 11:
  lea eax, [rdi+rdi*4]
  lea eax, [rdi+rax*2]
</code></pre>
But with -Os you get imul eax, edi, 6<p>And on modern CPUs multiplication might not be actually all that slow (but there may be fewer multiply units).</p>
]]></description><pubDate>Tue, 02 Dec 2025 20:54:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46126726</link><dc:creator>stassats</dc:creator><comments>https://news.ycombinator.com/item?id=46126726</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46126726</guid></item><item><title><![CDATA[New comment by stassats in "Addressing the adding situation"]]></title><description><![CDATA[
<p>The text mentions that it can also do multiplication but doesn't expand on that.<p>E.g. for x * 5 gcc issues lea eax, [rdi+rdi*4].</p>
]]></description><pubDate>Tue, 02 Dec 2025 14:53:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=46121781</link><dc:creator>stassats</dc:creator><comments>https://news.ycombinator.com/item?id=46121781</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46121781</guid></item><item><title><![CDATA[New comment by stassats in "ECL Runs Maxima in a Browser"]]></title><description><![CDATA[
<p>ABCL is really slow.</p>
]]></description><pubDate>Mon, 03 Nov 2025 10:24:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=45797612</link><dc:creator>stassats</dc:creator><comments>https://news.ycombinator.com/item?id=45797612</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45797612</guid></item><item><title><![CDATA[New comment by stassats in "Finding and Understanding Bugs in C Compilers (2011) [pdf]"]]></title><description><![CDATA[
<p>A good strategy if you don't care about fixing bugs.</p>
]]></description><pubDate>Wed, 01 Oct 2025 00:18:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=45432906</link><dc:creator>stassats</dc:creator><comments>https://news.ycombinator.com/item?id=45432906</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45432906</guid></item><item><title><![CDATA[New comment by stassats in "Walking around the compiler"]]></title><description><![CDATA[
<p>That shouldn't mean that it doesn't return a NaN. Things are generally not optimized away because of NaNs. E.g. in GCC, abs(c) > -1.0 is not folded, unless building with -ffast-math</p>
]]></description><pubDate>Fri, 26 Sep 2025 14:59:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=45387289</link><dc:creator>stassats</dc:creator><comments>https://news.ycombinator.com/item?id=45387289</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45387289</guid></item><item><title><![CDATA[New comment by stassats in "Walking around the compiler"]]></title><description><![CDATA[
<p>That fix has limited applicability. x * x is also a non-negative float. But abs(x * x) is not optimized. Or abs(abs(x)+1). 
GCC, for example, does know that.</p>
]]></description><pubDate>Fri, 26 Sep 2025 12:08:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=45385550</link><dc:creator>stassats</dc:creator><comments>https://news.ycombinator.com/item?id=45385550</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45385550</guid></item><item><title><![CDATA[New comment by stassats in "Quirks of Common Lisp Types"]]></title><description><![CDATA[
<p>(+ 2 (id "2")) may also produce a compile time warning. Nothing precludes from having a special rule for that. Like (+ 2 (print "2")) does warn.</p>
]]></description><pubDate>Tue, 02 Sep 2025 23:10:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=45110309</link><dc:creator>stassats</dc:creator><comments>https://news.ycombinator.com/item?id=45110309</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45110309</guid></item><item><title><![CDATA[New comment by stassats in "Ask HN: What toolchains are people using for desktop app development in 2025?"]]></title><description><![CDATA[
<p>> changes in the Qt project made the technique used by the Qt4 bindings impractical for Qt5 or Qt6 - at least that was my understanding when I looked into it.<p>It was hard to do reasonably with qt4 already. The best solution would be to support the C++ ABI natively, but that's never going to happen.</p>
]]></description><pubDate>Sun, 10 Aug 2025 17:09:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=44856580</link><dc:creator>stassats</dc:creator><comments>https://news.ycombinator.com/item?id=44856580</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44856580</guid></item><item><title><![CDATA[New comment by stassats in "Notes on Graham's ANSI Common Lisp (2024)"]]></title><description><![CDATA[
<p>> Why does SBCL not use LLVM?<p>Why doesn't GCC use LLVM? Why is Zig writing their own backend?</p>
]]></description><pubDate>Mon, 14 Jul 2025 14:46:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=44560898</link><dc:creator>stassats</dc:creator><comments>https://news.ycombinator.com/item?id=44560898</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44560898</guid></item><item><title><![CDATA[New comment by stassats in "Web Embeddable Common Lisp"]]></title><description><![CDATA[
<p>> lack of tail-call elimination<p>But lisp doesn't need TCO.</p>
]]></description><pubDate>Wed, 25 Jun 2025 21:55:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=44382157</link><dc:creator>stassats</dc:creator><comments>https://news.ycombinator.com/item?id=44382157</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44382157</guid></item><item><title><![CDATA[New comment by stassats in "Beware of Fast-Math"]]></title><description><![CDATA[
<p>You can turn them back into rationals, (rational (sqrt 2d0)) => 6369051672525773/4503599627370496<p>Or write your own operations that compute to the precision you want.</p>
]]></description><pubDate>Sat, 31 May 2025 10:45:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=44143364</link><dc:creator>stassats</dc:creator><comments>https://news.ycombinator.com/item?id=44143364</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44143364</guid></item><item><title><![CDATA[New comment by stassats in "A Common Lisp jq replacement"]]></title><description><![CDATA[
<p>>(safety 0)<p>Please, don't do that!</p>
]]></description><pubDate>Fri, 02 May 2025 13:35:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=43869560</link><dc:creator>stassats</dc:creator><comments>https://news.ycombinator.com/item?id=43869560</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43869560</guid></item><item><title><![CDATA[New comment by stassats in "Depending in Common Lisp – Using the CLOS dependent maintenance protocol (2022)"]]></title><description><![CDATA[
<p>>any system that relies on information that was typed into a REPL three-months ago and is now only stored in the binary state of that REPL and nowhere else is totally insane as a production product.<p>Nobody does that.</p>
]]></description><pubDate>Sat, 01 Mar 2025 21:24:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=43223818</link><dc:creator>stassats</dc:creator><comments>https://news.ycombinator.com/item?id=43223818</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43223818</guid></item><item><title><![CDATA[New comment by stassats in "Nvidia's Project Digits is a 'personal AI supercomputer'"]]></title><description><![CDATA[
<p>> roadrunner is petaflops of FP32<p>Isn't it actually FP64?</p>
]]></description><pubDate>Tue, 07 Jan 2025 20:34:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=42627111</link><dc:creator>stassats</dc:creator><comments>https://news.ycombinator.com/item?id=42627111</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42627111</guid></item><item><title><![CDATA[New comment by stassats in "The Alder Lake SHLX Anomaly"]]></title><description><![CDATA[
<p>Using EAX is one byte shorter, so it might be doing that inadvertently.</p>
]]></description><pubDate>Fri, 03 Jan 2025 18:01:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=42587931</link><dc:creator>stassats</dc:creator><comments>https://news.ycombinator.com/item?id=42587931</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42587931</guid></item><item><title><![CDATA[New comment by stassats in "Mark–Scavenge: Waiting for Trash to Take Itself Out"]]></title><description><![CDATA[
<p>Common Lisp. The dynamic-extent declaration allows for stack allocation.</p>
]]></description><pubDate>Tue, 26 Nov 2024 04:01:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=42242483</link><dc:creator>stassats</dc:creator><comments>https://news.ycombinator.com/item?id=42242483</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42242483</guid></item><item><title><![CDATA[New comment by stassats in "Bit-twiddling optimizations in Zed's Rope"]]></title><description><![CDATA[
<p>> because 64-bit ARMv8.0 lacks a POPCNT instruction<p>It does have this: <a href="https://developer.arm.com/documentation/ddi0596/2021-09/SIMD-FP-Instructions/CNT--Population-Count-per-byte-" rel="nofollow">https://developer.arm.com/documentation/ddi0596/2021-09/SIMD...</a><p>And GCC happily uses it <a href="https://godbolt.org/z/dTW46f9Kf" rel="nofollow">https://godbolt.org/z/dTW46f9Kf</a></p>
]]></description><pubDate>Wed, 20 Nov 2024 23:59:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=42199491</link><dc:creator>stassats</dc:creator><comments>https://news.ycombinator.com/item?id=42199491</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42199491</guid></item></channel></rss>