<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: skavi</title><link>https://news.ycombinator.com/user?id=skavi</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 05 Apr 2026 12:59:17 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=skavi" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by skavi in "Fusion power unlikely to become competitive"]]></title><description><![CDATA[
<p>to preempt a discussion emerging based on the title alone, here’s their summary:<p>> While nuclear fusion power is often hailed as a future source of abundant, clean energy, current dominant fusion designs, magnetic and laser inertial, are unlikely to become competitive due to their expected low experience rates. Accordingly, policymakers should not rely on, or fund, fusion power as a core pillar of future clean energy systems unless designs with different characteristics are developed.</p>
]]></description><pubDate>Thu, 02 Apr 2026 22:27:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=47621006</link><dc:creator>skavi</dc:creator><comments>https://news.ycombinator.com/item?id=47621006</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47621006</guid></item><item><title><![CDATA[New comment by skavi in "Tailscale's new macOS home"]]></title><description><![CDATA[
<p>this may have been what you were referring to with “ buggy GNOME extensions”, but in case it wasn’t:<p><a href="https://tailscale.com/docs/features/client/linux-systray" rel="nofollow">https://tailscale.com/docs/features/client/linux-systray</a></p>
]]></description><pubDate>Thu, 02 Apr 2026 19:48:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47619298</link><dc:creator>skavi</dc:creator><comments>https://news.ycombinator.com/item?id=47619298</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47619298</guid></item><item><title><![CDATA[New comment by skavi in "Zero-Cost POSIX Compliance: Encoding the Socket State Machine in Lean's Types"]]></title><description><![CDATA[
<p>Their suggestion is also zero runtime cost.</p>
]]></description><pubDate>Wed, 25 Mar 2026 03:21:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=47512850</link><dc:creator>skavi</dc:creator><comments>https://news.ycombinator.com/item?id=47512850</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47512850</guid></item><item><title><![CDATA[New comment by skavi in "Epic Games lays off over 1k employees"]]></title><description><![CDATA[
<p>wonder whether this will impact their funny little functional language.</p>
]]></description><pubDate>Tue, 24 Mar 2026 19:37:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=47507913</link><dc:creator>skavi</dc:creator><comments>https://news.ycombinator.com/item?id=47507913</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47507913</guid></item><item><title><![CDATA[New comment by skavi in "io_uring, libaio performance across Linux kernels and an unexpected IOMMU trap"]]></title><description><![CDATA[
<p>what was the security situation of whatever is now being protected by the IOMMU before it was enabled by default?</p>
]]></description><pubDate>Tue, 24 Mar 2026 18:01:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=47506674</link><dc:creator>skavi</dc:creator><comments>https://news.ycombinator.com/item?id=47506674</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47506674</guid></item><item><title><![CDATA[New comment by skavi in "Meta’s renewed commitment to jemalloc"]]></title><description><![CDATA[
<p>also:<p>1. tcmalloc is actually the only allocator I tested which was not using thread local caches. even glibc malloc has tcache.<p>2. async executors typically shouldn’t have tasks jumping willy nilly between threads. i see the issue u describe more often with the use of thread pools (like rayon or tokio’s spawn_blocking). i’d argue that the use of thread pools isn’t necessarily an inherent feature of async executors. certainly tokio relies on its threadpool for fs operations, but io-uring (for example) makes that mostly unnecessary.</p>
]]></description><pubDate>Tue, 17 Mar 2026 11:36:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47411285</link><dc:creator>skavi</dc:creator><comments>https://news.ycombinator.com/item?id=47411285</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47411285</guid></item><item><title><![CDATA[New comment by skavi in "Meta’s renewed commitment to jemalloc"]]></title><description><![CDATA[
<p>on the OS scheduler side, i'd imagine there's some stickiness that keeps tasks from jumping wildly between cores. like i'd expect migration to be modelled as a non zero cost. complete speculation though.<p>tokio scheduler side, the executor is thread per core and work stealing of in progress tasks shouldn't be happening too much.<p>for all thread pool threads or threads unaffiliated with the executor, see earlier speculation on OS scheduler behavior.</p>
]]></description><pubDate>Tue, 17 Mar 2026 01:30:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=47407491</link><dc:creator>skavi</dc:creator><comments>https://news.ycombinator.com/item?id=47407491</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47407491</guid></item><item><title><![CDATA[New comment by skavi in "Meta’s renewed commitment to jemalloc"]]></title><description><![CDATA[
<p>nope.</p>
]]></description><pubDate>Mon, 16 Mar 2026 19:59:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47404055</link><dc:creator>skavi</dc:creator><comments>https://news.ycombinator.com/item?id=47404055</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47404055</guid></item><item><title><![CDATA[New comment by skavi in "Meta’s renewed commitment to jemalloc"]]></title><description><![CDATA[
<p>modern tcmalloc uses per CPU caches via rseq [0]. We use async rust with multithreaded tokio executors (sometimes multiple in the same application). so relatively high thread counts.<p>[0]: <a href="https://github.com/google/tcmalloc/blob/master/docs/design.md" rel="nofollow">https://github.com/google/tcmalloc/blob/master/docs/design.m...</a></p>
]]></description><pubDate>Mon, 16 Mar 2026 19:58:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=47404033</link><dc:creator>skavi</dc:creator><comments>https://news.ycombinator.com/item?id=47404033</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47404033</guid></item><item><title><![CDATA[New comment by skavi in "Meta’s renewed commitment to jemalloc"]]></title><description><![CDATA[
<p>We evaluated a few allocators for some of our Linux apps and found (modern) tcmalloc to consistently win in time and space. Our applications are primarily written in Rust and the allocators were linked in statically (except for glibc). Unfortunately I didn't capture much context on the allocation patterns. I think in general the apps allocate and deallocate at a higher rate than most Rust apps (or more than I'd like at least).<p>Our results from July 2025:<p>rows are <allocator>: <RSS>, <time spent for allocator operations><p><pre><code>  app1:
  glibc: 215,580 KB, 133 ms
  mimalloc 2.1.7: 144,092 KB, 91 ms
  mimalloc 2.2.4: 173,240 KB, 280 ms
  tcmalloc: 138,496 KB, 96 ms
  jemalloc: 147,408 KB, 92 ms

  app2, bench1
  glibc: 1,165,000 KB, 1.4 s
  mimalloc 2.1.7: 1,072,000 KB, 5.1 s
  mimalloc 2.2.4:
  tcmalloc: 1,023,000 KB, 530 ms

  app2, bench2
  glibc: 1,190,224 KB, 1.5 s
  mimalloc 2.1.7: 1,128,328 KB, 5.3 s
  mimalloc 2.2.4: 1,657,600 KB, 3.7 s
  tcmalloc: 1,045,968 KB, 640 ms
  jemalloc: 1,210,000 KB, 1.1 s

  app3
  glibc: 284,616 KB, 440 ms
  mimalloc 2.1.7: 246,216 KB, 250 ms
  mimalloc 2.2.4: 325,184 KB, 290 ms
  tcmalloc: 178,688 KB, 200 ms
  jemalloc: 264,688 KB, 230 ms
</code></pre>
tcmalloc was from github.com/google/tcmalloc/tree/24b3f29.<p>i don't recall which jemalloc was tested.</p>
]]></description><pubDate>Mon, 16 Mar 2026 19:45:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=47403847</link><dc:creator>skavi</dc:creator><comments>https://news.ycombinator.com/item?id=47403847</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47403847</guid></item><item><title><![CDATA[New comment by skavi in "Type resolution redesign, with language changes to taste"]]></title><description><![CDATA[
<p>Disclaimer: I don't really use Zig (primarily a Rust dev) but I do think it's quite cool.<p>If you're willing to dive right into it, I'd first read a bit about the comptime system [0] then have a go at reading the source for `MultiArrayList` [1], a container which internally stores elements in SoA format.<p>At least, that was what got me interested.<p>[0]: <a href="https://ziglang.org/documentation/master/#comptime" rel="nofollow">https://ziglang.org/documentation/master/#comptime</a><p>[1]: <a href="https://codeberg.org/ziglang/zig/src/branch/master/lib/std/multi_array_list.zig" rel="nofollow">https://codeberg.org/ziglang/zig/src/branch/master/lib/std/m...</a></p>
]]></description><pubDate>Wed, 11 Mar 2026 23:16:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=47343801</link><dc:creator>skavi</dc:creator><comments>https://news.ycombinator.com/item?id=47343801</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47343801</guid></item><item><title><![CDATA[New comment by skavi in "Zig – Type Resolution Redesign and Language Changes"]]></title><description><![CDATA[
<p>Ah, that makes sense. Thanks for pulling this up!</p>
]]></description><pubDate>Wed, 11 Mar 2026 20:24:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=47341019</link><dc:creator>skavi</dc:creator><comments>https://news.ycombinator.com/item?id=47341019</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47341019</guid></item><item><title><![CDATA[New comment by skavi in "Zig – Type Resolution Redesign and Language Changes"]]></title><description><![CDATA[
<p>I am going to ask a question that is is definitely not the place for, but I am not involved with Zig in any way and am curious, so I hope you'll indulge me.<p>I noticed the following comment was added to lib/std/multi_array_list.zig [0] with this change:<p><pre><code>        /// This pointer is always aligned to the boundary `sizes.big_align`; this is not specified
        /// in the type to avoid `MultiArrayList(T)` depending on the alignment of `T` because this
        /// can lead to dependency loops. See `allocatedBytes` which `@alignCast`s this pointer to
        /// the correct type.
</code></pre>
How could relying on `@alignOf(T)` in the definition of `MultiArrayList(T)` cause a loop? Even with `T` itself being a MultiArrayList, surely that is a fully distinct, monomorphized type? I expect I am missing something obvious.<p>[0]: <a href="https://codeberg.org/ziglang/zig/pulls/31403/files#diff-a6fcdd8d64d09b77e76edcc89ea4c2881cebda7f" rel="nofollow">https://codeberg.org/ziglang/zig/pulls/31403/files#diff-a6fc...</a></p>
]]></description><pubDate>Wed, 11 Mar 2026 14:24:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=47335968</link><dc:creator>skavi</dc:creator><comments>https://news.ycombinator.com/item?id=47335968</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47335968</guid></item><item><title><![CDATA[New comment by skavi in "Show HN: Eyot, A programming language where the GPU is just another thread"]]></title><description><![CDATA[
<p>blends</p>
]]></description><pubDate>Tue, 10 Mar 2026 01:22:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47318056</link><dc:creator>skavi</dc:creator><comments>https://news.ycombinator.com/item?id=47318056</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47318056</guid></item><item><title><![CDATA[New comment by skavi in "Does Apple‘s M5 Max Really “Destroy” a 96-Core Threadripper?"]]></title><description><![CDATA[
<p>Since Geekbench 5, the single threaded benchmark scores have aligned pretty well with those from the industry standard SPEC benchmark.</p>
]]></description><pubDate>Sat, 07 Mar 2026 22:32:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47292107</link><dc:creator>skavi</dc:creator><comments>https://news.ycombinator.com/item?id=47292107</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47292107</guid></item><item><title><![CDATA[New comment by skavi in "Apple Does Fusion"]]></title><description><![CDATA[
<p>thank you. TFA is just an awful read.</p>
]]></description><pubDate>Wed, 04 Mar 2026 21:54:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=47254479</link><dc:creator>skavi</dc:creator><comments>https://news.ycombinator.com/item?id=47254479</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47254479</guid></item><item><title><![CDATA[New comment by skavi in "Ladybird adopts Rust, with help from AI"]]></title><description><![CDATA[
<p>I’m curious what issues people were running into with Swift’s built in C++ interop? I haven’t had the chance to use it myself, but it seemed reasonable to me at a surface level.</p>
]]></description><pubDate>Mon, 23 Feb 2026 12:20:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=47121366</link><dc:creator>skavi</dc:creator><comments>https://news.ycombinator.com/item?id=47121366</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47121366</guid></item><item><title><![CDATA[New comment by skavi in "Xmake: A cross-platform build utility based on Lua"]]></title><description><![CDATA[
<p>Just yesterday someone was telling me xmake does a lot of what bazel can do (hermetic, deterministic, optionally remote builds) while being easier to use.<p>I took a look at the docs later and couldn’t find a direct comparison. But there does seem to be a remote build system. And there were a few mentions of sandboxing.<p>Can anyone provide a head to head comparison?<p>Does xmake strictly enforce declared dependencies? Do actions run in their own sandboxes?<p>Can you define a target whose dependency tree is multi language, multi toolchain, multi target platform and which is built across multiple remote execution servers?</p>
]]></description><pubDate>Thu, 29 Jan 2026 08:56:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46807535</link><dc:creator>skavi</dc:creator><comments>https://news.ycombinator.com/item?id=46807535</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46807535</guid></item><item><title><![CDATA[New comment by skavi in "Nvidia is about to challenge 'Intel Inside' with as many as eight Arm laptops"]]></title><description><![CDATA[
<p>These guys aren’t going to use L4T. ACPI compliant, standard GPU drivers. They’ve also upstreamed a lot of the L4T patches.<p>See DGX Spark.</p>
]]></description><pubDate>Mon, 26 Jan 2026 08:04:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46763007</link><dc:creator>skavi</dc:creator><comments>https://news.ycombinator.com/item?id=46763007</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46763007</guid></item><item><title><![CDATA[New comment by skavi in "Guix for Development"]]></title><description><![CDATA[
<p>In Nix (and, I’d assume, for Guix) you can go the other way around: <a href="https://mitchellh.com/writing/nix-with-dockerfiles" rel="nofollow">https://mitchellh.com/writing/nix-with-dockerfiles</a>.<p>As a side benefit, the generated docker image can be very tiny.</p>
]]></description><pubDate>Mon, 26 Jan 2026 04:36:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=46761919</link><dc:creator>skavi</dc:creator><comments>https://news.ycombinator.com/item?id=46761919</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46761919</guid></item></channel></rss>