<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: Athas</title><link>https://news.ycombinator.com/user?id=Athas</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 30 Apr 2026 23:34:03 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=Athas" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by Athas in "What Is in Road Flares?"]]></title><description><![CDATA[
<p>This page reads like an exasperated response to constant discussions and requests for how to extract strontium nitrate from road flares, and emphasizes that it is hard and pointless in the first place. I never noticed such discussions, but maybe it's outside of my bubble! Quite an amusing read nonetheless.</p>
]]></description><pubDate>Wed, 15 Apr 2026 09:26:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=47776686</link><dc:creator>Athas</dc:creator><comments>https://news.ycombinator.com/item?id=47776686</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47776686</guid></item><item><title><![CDATA[New comment by Athas in "I love the work of the ArchWiki maintainers"]]></title><description><![CDATA[
<p>As others have mentioned, such tools exist. However, I believe they do more harm than help. Good --help output does not make for good --man output. In particular, while man pages are terse, good ones are more than just lists of command line options, and the part of them that are a list of command line options will usually have more detail than --help. The writing of documentation is a place where I often see programmers employ automation inappropriately.</p>
]]></description><pubDate>Sun, 15 Feb 2026 15:58:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47024723</link><dc:creator>Athas</dc:creator><comments>https://news.ycombinator.com/item?id=47024723</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47024723</guid></item><item><title><![CDATA[New comment by Athas in "Are arrays functions?"]]></title><description><![CDATA[
<p>That depends on the language. I have used (and implemented) languages where arrays are modeled as a function from an index space to some expression. During compilation, this is used to drive various optimisations. For those arrays that need a run-time representation, they may be stored in the classic way (a dense region of memory accessed with offsets computed from indexes), but also in more complicated ways, such as some kind of tree structure. These are still, semantically, arrays at the language level.</p>
]]></description><pubDate>Wed, 21 Jan 2026 08:06:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=46702550</link><dc:creator>Athas</dc:creator><comments>https://news.ycombinator.com/item?id=46702550</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46702550</guid></item><item><title><![CDATA[New comment by Athas in "Are arrays functions?"]]></title><description><![CDATA[
<p>The post explains that 'a[i]' can easily enough be written as 'a i'. Your suggestions do not resemble the current function application syntax in the language discussed in the post. The question is not whether a terse slice syntax can exist (clearly it can), but whether a syntactic similarity between indexing and application can also be extended to a syntactic similarity between slicing and application.</p>
]]></description><pubDate>Wed, 21 Jan 2026 07:34:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=46702304</link><dc:creator>Athas</dc:creator><comments>https://news.ycombinator.com/item?id=46702304</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46702304</guid></item><item><title><![CDATA[New comment by Athas in "Are arrays functions?"]]></title><description><![CDATA[
<p>Depending on how you look at things, functions can also be mutated at run-time. Most impure languages allow you to define a function that has some internal state and changes it whenever it is applied. In C you would use 'static' variables, but languages with closures allow for a more robust approach. Scheme textbooks are full of examples that use this trick to define counters or other objects via closures. You can well argue that these functions do not "mutate", they merely access some data that is mutated, but there is no observable difference from the perspective of the caller.</p>
]]></description><pubDate>Wed, 21 Jan 2026 07:18:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46702160</link><dc:creator>Athas</dc:creator><comments>https://news.ycombinator.com/item?id=46702160</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46702160</guid></item><item><title><![CDATA[New comment by Athas in "Go.sum is not a lockfile"]]></title><description><![CDATA[
<p>In some sense, Go does not allow you to change the major version. Packages with the same name but different major versions are treated as different packages.</p>
]]></description><pubDate>Thu, 08 Jan 2026 12:11:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=46540155</link><dc:creator>Athas</dc:creator><comments>https://news.ycombinator.com/item?id=46540155</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46540155</guid></item><item><title><![CDATA[New comment by Athas in "The biggest semantic mess in Futhark"]]></title><description><![CDATA[
<p>It is basically dependent types, but there is a specific and intentional omission (no true dependent products) that interacts with another feature (the ability to hide sizes) that ultimately causes the mess. I elaborated on it here: <a href="https://futhark-lang.org/blog/2025-09-26-the-biggest-semantic-mess.html#addendum" rel="nofollow">https://futhark-lang.org/blog/2025-09-26-the-biggest-semanti...</a></p>
]]></description><pubDate>Thu, 02 Oct 2025 06:16:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=45446793</link><dc:creator>Athas</dc:creator><comments>https://news.ycombinator.com/item?id=45446793</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45446793</guid></item><item><title><![CDATA[Steering Committee Retrospective]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.haskellforall.com/2025/09/steering-committee-retrospective.html">https://www.haskellforall.com/2025/09/steering-committee-retrospective.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45286839">https://news.ycombinator.com/item?id=45286839</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 18 Sep 2025 07:55:16 +0000</pubDate><link>https://www.haskellforall.com/2025/09/steering-committee-retrospective.html</link><dc:creator>Athas</dc:creator><comments>https://news.ycombinator.com/item?id=45286839</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45286839</guid></item><item><title><![CDATA[New comment by Athas in "My Foray into Vlang"]]></title><description><![CDATA[
<p>This blog post showcases V in a positive light. I suppose it is good that people can have productive experiences with it now, although I don't see from this post why it is a significant improvement on Go.<p>The problems discussed (performance, compiler fragility) are somewhat worrying though. My impression is still that V is not particularly robust and focuses on flashy things instead of getting the basics right. I must admit that it is however still hard to look at V objectively, given the near-fradulent presentation it had when it was first announced.</p>
]]></description><pubDate>Sun, 31 Aug 2025 09:26:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=45081789</link><dc:creator>Athas</dc:creator><comments>https://news.ycombinator.com/item?id=45081789</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45081789</guid></item><item><title><![CDATA[New comment by Athas in ""high level" languages are easier to optimize"]]></title><description><![CDATA[
<p>The greatest value brought by compiler optimisations is removing the overhead of convenience. Sometimes that is about avoiding the boxing that is a necessity in many high level languages, but in other cases it serves to allow a more modular programming style without overhead. Stream fusion is a good example: it lets you structure your program as small and composable units, without the cost of manifesting intermediate results. That is not merely about avoiding the inherent inefficiency of e.g. Haskell, but about permitting different styles of programming, and the argument is that a low level language simply cannot allow such a style (without overhead), because the required optimisations are not practical to implement.</p>
]]></description><pubDate>Sat, 12 Jul 2025 17:58:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=44543755</link><dc:creator>Athas</dc:creator><comments>https://news.ycombinator.com/item?id=44543755</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44543755</guid></item><item><title><![CDATA[New comment by Athas in "Beware of Fast-Math"]]></title><description><![CDATA[
<p>How does this avoid rounding error? Division and multiplication and still result in nonrepresentable numbers, right?</p>
]]></description><pubDate>Sat, 31 May 2025 17:32:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=44145769</link><dc:creator>Athas</dc:creator><comments>https://news.ycombinator.com/item?id=44145769</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44145769</guid></item><item><title><![CDATA[New comment by Athas in "Beware of Fast-Math"]]></title><description><![CDATA[
<p>The problem with fixed point is in its, well, fixed point. You assign a fixed number of bits to the fractional part of the number. This gives you the same absolute precision everywhere, but the relative precision (distance to the next highest or lowest number) is worse for small numbers - which is a problem, because those tend to be pretty important. It's just overall a less efficient use of the bit encoding space (not just performance-wise, but also in the accuracy of the results you get back). Remember that fixed point does not mean absence of rounding errors, and if you use binary fixed point, you still cannot represent many decimal fractions such as 0.1.</p>
]]></description><pubDate>Sat, 31 May 2025 17:29:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=44145753</link><dc:creator>Athas</dc:creator><comments>https://news.ycombinator.com/item?id=44145753</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44145753</guid></item><item><title><![CDATA[New comment by Athas in "Beware of Fast-Math"]]></title><description><![CDATA[
<p>Yes, but you're not going to have efficient transcendental functions implemented in hardware.</p>
]]></description><pubDate>Sat, 31 May 2025 17:27:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=44145743</link><dc:creator>Athas</dc:creator><comments>https://news.ycombinator.com/item?id=44145743</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44145743</guid></item><item><title><![CDATA[The GradBench Benchmark Suite for Automatic Differentiation]]></title><description><![CDATA[
<p>Article URL: <a href="https://sigkill.dk/blog/2025-04-03-gradbench.html">https://sigkill.dk/blog/2025-04-03-gradbench.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43604611">https://news.ycombinator.com/item?id=43604611</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 06 Apr 2025 20:16:49 +0000</pubDate><link>https://sigkill.dk/blog/2025-04-03-gradbench.html</link><dc:creator>Athas</dc:creator><comments>https://news.ycombinator.com/item?id=43604611</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43604611</guid></item><item><title><![CDATA[New comment by Athas in "Aiter: AI Tensor Engine for ROCm"]]></title><description><![CDATA[
<p>Who do you work for? And is packaging ROCm for Debian really a full-time job, or is it just a part of your job?<p>As messy as ROCm's packaging is, I can't imagine spending all day every day trying to fix it.</p>
]]></description><pubDate>Mon, 24 Mar 2025 21:08:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=43465438</link><dc:creator>Athas</dc:creator><comments>https://news.ycombinator.com/item?id=43465438</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43465438</guid></item><item><title><![CDATA[New comment by Athas in "Hedy: Textual programming made easy"]]></title><description><![CDATA[
<p>Most recent I remember was in 2011: <a href="https://github.com/ocaml/ocaml/issues/5419">https://github.com/ocaml/ocaml/issues/5419</a></p>
]]></description><pubDate>Tue, 28 Jan 2025 11:55:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=42851354</link><dc:creator>Athas</dc:creator><comments>https://news.ycombinator.com/item?id=42851354</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42851354</guid></item><item><title><![CDATA[New comment by Athas in "Hedy: Textual programming made easy"]]></title><description><![CDATA[
<p>The comments were quite often in French, however! Until relatively recently, the OCaml compiler would also sometimes emit error messages in French in some obscure cases.</p>
]]></description><pubDate>Mon, 27 Jan 2025 10:17:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=42839418</link><dc:creator>Athas</dc:creator><comments>https://news.ycombinator.com/item?id=42839418</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42839418</guid></item><item><title><![CDATA[Community Portal for Automatic Differentiation]]></title><description><![CDATA[
<p>Article URL: <a href="https://autodiff.org/">https://autodiff.org/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42702405">https://news.ycombinator.com/item?id=42702405</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 14 Jan 2025 19:22:51 +0000</pubDate><link>https://autodiff.org/</link><dc:creator>Athas</dc:creator><comments>https://news.ycombinator.com/item?id=42702405</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42702405</guid></item><item><title><![CDATA[New comment by Athas in "Where is James Bond? Trapped in an ugly stalemate with Amazon"]]></title><description><![CDATA[
<p>What are they supposedly trying to do with Warhammer (40k)? I am aware that Amazon has the rights and are working on developing something, but apart from the Secret Level episode (which was good), has there been any details?<p>While some of what Amazon has made is terrible, much is good. They produce so much that the average quality is pretty close to the global average, so I find predictions challenging.</p>
]]></description><pubDate>Mon, 30 Dec 2024 14:22:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=42549490</link><dc:creator>Athas</dc:creator><comments>https://news.ycombinator.com/item?id=42549490</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42549490</guid></item><item><title><![CDATA[New comment by Athas in "8 months of OCaml after 8 years of Haskell in production (2023)"]]></title><description><![CDATA[
<p>This is not the case in Haskell, because let-bindings can be self-referential, while lambdas cannot (without using a fixed point combinator). Also, in most functional languages, a let-binding causes type generalisation, which is not the case for a lambda.</p>
]]></description><pubDate>Tue, 03 Dec 2024 07:44:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=42303838</link><dc:creator>Athas</dc:creator><comments>https://news.ycombinator.com/item?id=42303838</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42303838</guid></item></channel></rss>