<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: tombl</title><link>https://news.ycombinator.com/user?id=tombl</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 15 Jun 2026 05:09:14 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=tombl" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by tombl in "The future of 32-bit support in the kernel"]]></title><description><![CDATA[
<p>Yeah, nommu absolutely doesn't imply zero memory isolation. I have a kernel port to an architecture with a nonstandard way of doing memory isolation and the existing nommu infrastructure is the only reason it can exist.</p>
]]></description><pubDate>Tue, 02 Sep 2025 05:30:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=45099434</link><dc:creator>tombl</dc:creator><comments>https://news.ycombinator.com/item?id=45099434</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45099434</guid></item><item><title><![CDATA[New comment by tombl in "Running TypeScript Natively in Node.js"]]></title><description><![CDATA[
<p>It's funny, I would actually argue the opposite point. When Deno and Bun first came out, they promised a hard break from the Node ecosystem, like how Deno leaned heavily into browser compatibility, and Bun into framework features like Bun.App.<p>At some point they both decided that Node compatibility was more important than their unique features, but in the time since their release Node got type stripping, require(esm), sqlite, single executable apps, a permission system, a test runner, and basically ever other Deno/Bun feature they could port over.<p>So at this point why use runtimes that imitate Node when you could just use Node? You'll get most of the modern niceties, but also get 100% compatibility with the existing ecosystem.</p>
]]></description><pubDate>Fri, 18 Jul 2025 01:37:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=44600291</link><dc:creator>tombl</dc:creator><comments>https://news.ycombinator.com/item?id=44600291</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44600291</guid></item><item><title><![CDATA[New comment by tombl in "JSLinux"]]></title><description><![CDATA[
<p>I'm effectively lying to the kernel about the environment it's executing in, and trying to convince it that it's running on the kind of hardware it expects, when in reality it's running inside a very different environment.<p>Since I map guest threads 1:1 to host threads in JS, and architecture-specific code manages the loading/unloading of programs, the exec syscall is exercising these lies in a way that they're not currently equipped to handle.<p>What I'm currently doing is improving those lies to the point where exec stops noticing they're lies and just starts functioning as expected.</p>
]]></description><pubDate>Tue, 15 Apr 2025 15:32:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=43694267</link><dc:creator>tombl</dc:creator><comments>https://news.ycombinator.com/item?id=43694267</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43694267</guid></item><item><title><![CDATA[New comment by tombl in "JSLinux"]]></title><description><![CDATA[
<p>yep, that's to be expected, this is a very wip demo. I'm implementing exec() support now, so currently only shell builtins work.</p>
]]></description><pubDate>Tue, 15 Apr 2025 12:42:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=43691888</link><dc:creator>tombl</dc:creator><comments>https://news.ycombinator.com/item?id=43691888</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43691888</guid></item><item><title><![CDATA[New comment by tombl in "JSLinux"]]></title><description><![CDATA[
<p>Thanks for pointing this out, I've deployed a fix. One of my goals for the project is to create a useful computing environment on top of any arbitrary locked down platform, so I'd love to turn it into an iOS app at some point.</p>
]]></description><pubDate>Tue, 15 Apr 2025 11:19:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=43691280</link><dc:creator>tombl</dc:creator><comments>https://news.ycombinator.com/item?id=43691280</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43691280</guid></item><item><title><![CDATA[New comment by tombl in "JSLinux"]]></title><description><![CDATA[
<p>Fabrice does a great job at building these self-contained pieces of software which often grow to have lives of their own. As a lesser known example, JSLinux's terminal emulator was forked a few times and is now known as xterm.js, which has become the predominant web embeddable terminal emulator.<p>This all comes full circle, because now I'm building a true successor to JSLinux that's way faster because I've natively compiled the kernel/userspace to wasm, and of course I'm using xterm.js for the terminal emulation.<p>If you like buggy demos that probably shouldn't be shared yet, you should check out <a href="https://linux.tombl.dev" rel="nofollow">https://linux.tombl.dev</a>, but note that it's currently just a busybox shell and nothing else, so I hope you're good with `echo *` instead of `ls`.</p>
]]></description><pubDate>Tue, 15 Apr 2025 06:26:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=43689599</link><dc:creator>tombl</dc:creator><comments>https://news.ycombinator.com/item?id=43689599</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43689599</guid></item><item><title><![CDATA[New comment by tombl in "Show HN: Nue – Apps lighter than a React button"]]></title><description><![CDATA[
<p>hmm, it looks like you've got a bug in the demo app. if you type too quickly into the search bar, the entire app slows to a halt.<p>seems like you'd want to move the filtering logic off the main thread, or you'd want to reinvent React's "Fiber" suspendable rendering architecture.</p>
]]></description><pubDate>Tue, 01 Apr 2025 12:09:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=43545776</link><dc:creator>tombl</dc:creator><comments>https://news.ycombinator.com/item?id=43545776</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43545776</guid></item><item><title><![CDATA[New comment by tombl in "Not dropping RISC-V support after all, maybe"]]></title><description><![CDATA[
<p>yeah I'm also taking great inspiration from Alpine, but I like to see diversity in the space.<p>as one example, musl values portability over performance (great for my usecase), which makes it often significantly slower than glibc. Alpine keeps their musl relatively close to upstream, where Chimera is patches theirs more heavily.</p>
]]></description><pubDate>Sat, 22 Mar 2025 09:47:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=43444592</link><dc:creator>tombl</dc:creator><comments>https://news.ycombinator.com/item?id=43444592</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43444592</guid></item><item><title><![CDATA[New comment by tombl in "Not dropping RISC-V support after all, maybe"]]></title><description><![CDATA[
<p>I'm slightly hesitant to mention it for fear of a flamewar, but as someone with a niche usecase that procludes me from using systemd/glibc, I'm very grateful to Chimera as a modern take on non-GNU/Linux.</p>
]]></description><pubDate>Fri, 21 Mar 2025 10:37:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=43434008</link><dc:creator>tombl</dc:creator><comments>https://news.ycombinator.com/item?id=43434008</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43434008</guid></item><item><title><![CDATA[New comment by tombl in "Greg K-H: "Writing new code in Rust is a win for all of us""]]></title><description><![CDATA[
<p>no? there's only a single mention of cargo in the entire kernel, and it's in a docs page describing how to install bindgen, a toolchain dependency of the kernel, below a whole list of other non-cargo ways to install bindgen.<p><a href="https://github.com/search?q=repo%3Atorvalds%2Flinux%20cargo&type=code">https://github.com/search?q=repo%3Atorvalds%2Flinux%20cargo&...</a></p>
]]></description><pubDate>Fri, 21 Feb 2025 06:28:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=43124603</link><dc:creator>tombl</dc:creator><comments>https://news.ycombinator.com/item?id=43124603</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43124603</guid></item><item><title><![CDATA[New comment by tombl in "We replaced our React front end with Go and WebAssembly"]]></title><description><![CDATA[
<p>Go's "nothing is async because everything is async" model, combined with WebAssembly's (current) lack of support for stack switching and arbitrary goto, essentially mean that the compiler needs to insert extra code everywhere to support arbitrarily un/rewinding the stack.<p>This massively bloats binaries and means that go compiled to wasm is much slower than native speed, significantly more so than than the equivalent slowdown for c/rust.<p>see <a href="https://github.com/golang/go/issues/65440">https://github.com/golang/go/issues/65440</a></p>
]]></description><pubDate>Tue, 11 Feb 2025 10:54:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=43011353</link><dc:creator>tombl</dc:creator><comments>https://news.ycombinator.com/item?id=43011353</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43011353</guid></item><item><title><![CDATA[New comment by tombl in "Linux as co-operative Windows process (2017)"]]></title><description><![CDATA[
<p>Expect to see something in this space eventually - I'm currently working on a cross-platform userspace port of Linux.</p>
]]></description><pubDate>Mon, 10 Feb 2025 12:15:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=42999408</link><dc:creator>tombl</dc:creator><comments>https://news.ycombinator.com/item?id=42999408</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42999408</guid></item><item><title><![CDATA[New comment by tombl in "Optimizing the Ion compiler back end"]]></title><description><![CDATA[
<p>I believe this is still true. Originally you could store a compiled wasm module in IndexedDB and cache it manually, but that was removed in favor of {instantiate,compile}Streaming, which take a HTTP response and hook into the existing HTTP caching layer, which was already storing the compliation output for JS.</p>
]]></description><pubDate>Thu, 17 Oct 2024 05:06:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=41866581</link><dc:creator>tombl</dc:creator><comments>https://news.ycombinator.com/item?id=41866581</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41866581</guid></item><item><title><![CDATA[New comment by tombl in "WASM Is the New CGI"]]></title><description><![CDATA[
<p>wasm has no way to remap writable memory as executable, but you can absolutely call back into javascript to instantiate and link a new executable module, like <a href="https://github.com/remko/waforth">https://github.com/remko/waforth</a> does.</p>
]]></description><pubDate>Thu, 10 Oct 2024 15:55:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=41800177</link><dc:creator>tombl</dc:creator><comments>https://news.ycombinator.com/item?id=41800177</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41800177</guid></item><item><title><![CDATA[New comment by tombl in "NixOS is a good server OS, except when it isn't"]]></title><description><![CDATA[
<p>The problem with nix is that compiling a system uses lots of memory, but when deployed there's little overhead.<p>Like you would with Yocto, I just build my systems on a proper host then remotely deploy them.</p>
]]></description><pubDate>Wed, 02 Oct 2024 08:12:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=41718325</link><dc:creator>tombl</dc:creator><comments>https://news.ycombinator.com/item?id=41718325</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41718325</guid></item><item><title><![CDATA[New comment by tombl in "Everything you need to know about Python 3.13 – JIT and GIL went up the hill"]]></title><description><![CDATA[
<p>Is this some internal cloudflare feature flag or can everybody pass ArrayBuffers zero-copy via service bindings?<p>(random question, totally understand if you're not the right person to ask)</p>
]]></description><pubDate>Sat, 28 Sep 2024 11:48:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=41679636</link><dc:creator>tombl</dc:creator><comments>https://news.ycombinator.com/item?id=41679636</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41679636</guid></item><item><title><![CDATA[New comment by tombl in "User-Space Interrupts (2021)"]]></title><description><![CDATA[
<p>This is a fair point, but dropping the kernel patch guarantees that essentially nobody will use this.<p>Given part of the patch was software emulation for unsupported CPUs, it's possible that people would've implemented support for it anyway, incentivising Intel to push it more broadly.</p>
]]></description><pubDate>Tue, 17 Sep 2024 17:06:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=41569938</link><dc:creator>tombl</dc:creator><comments>https://news.ycombinator.com/item?id=41569938</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41569938</guid></item><item><title><![CDATA[New comment by tombl in "User-Space Interrupts (2021)"]]></title><description><![CDATA[
<p>AFAICT Intel has given up on supporting this in the kernel.<p>They've been silent about the patch since at least January 2023[0], and archived the repo for their kernel fork[1] in April.<p>It's a real shame because this kind of innovation seems valuable.<p>[0]: <a href="https://www.phoronix.com/news/Linux-SPR-Intel-User-Interrupts" rel="nofollow">https://www.phoronix.com/news/Linux-SPR-Intel-User-Interrupt...</a><p>[1]: <a href="https://github.com/intel/uintr-linux-kernel">https://github.com/intel/uintr-linux-kernel</a></p>
]]></description><pubDate>Tue, 17 Sep 2024 12:23:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=41566914</link><dc:creator>tombl</dc:creator><comments>https://news.ycombinator.com/item?id=41566914</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41566914</guid></item><item><title><![CDATA[New comment by tombl in "Some of us like "interdiff" code review"]]></title><description><![CDATA[
<p>I think the cli repo went private a while ago.</p>
]]></description><pubDate>Wed, 11 Sep 2024 09:41:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=41509719</link><dc:creator>tombl</dc:creator><comments>https://news.ycombinator.com/item?id=41509719</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41509719</guid></item><item><title><![CDATA[New comment by tombl in "VanillaJSX.com"]]></title><description><![CDATA[
<p>Yup, in order to scale this approach to any real size (and still have confidence that everything is working together like you expect), a proper reactivity solution is needed.<p>For those that appreciate this approach of JSX returning concrete DOM elements, Solid works exactly like this, with the addition of a proper reactivity layer.</p>
]]></description><pubDate>Sat, 17 Aug 2024 05:14:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=41272290</link><dc:creator>tombl</dc:creator><comments>https://news.ycombinator.com/item?id=41272290</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41272290</guid></item></channel></rss>