<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: eqrion</title><link>https://news.ycombinator.com/user?id=eqrion</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 10 Jun 2026 02:30:26 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=eqrion" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by eqrion in "Saying goodbye to asm.js"]]></title><description><![CDATA[
<p>Binaryen used to have an asm2wasm tool, but I believe it has been deprecated. I couldn't find any other equivalent. At least the asm.js code will keep working even with asm.js opts disabled, but it would be nice to have a translator.</p>
]]></description><pubDate>Wed, 20 May 2026 14:45:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=48208753</link><dc:creator>eqrion</dc:creator><comments>https://news.ycombinator.com/item?id=48208753</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48208753</guid></item><item><title><![CDATA[New comment by eqrion in "Saying Goodbye to Asm.js"]]></title><description><![CDATA[
<p>Generating wasm code at runtime is pretty easy (I'd imagine easier than generating valid asm.js code). We have a little library for our tests that handles a lot of it: <a href="https://searchfox.org/firefox-main/source/js/src/jit-test/lib/wasm-binary.js#1" rel="nofollow">https://searchfox.org/firefox-main/source/js/src/jit-test/li...</a></p>
]]></description><pubDate>Wed, 20 May 2026 14:35:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=48208578</link><dc:creator>eqrion</dc:creator><comments>https://news.ycombinator.com/item?id=48208578</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48208578</guid></item><item><title><![CDATA[New comment by eqrion in "Saying goodbye to asm.js"]]></title><description><![CDATA[
<p>> But wasm is too isolated from javascript. From my limited use of it, I was considering trying to compile to asmjs instead<p>asmjs is going to be strictly more limited in interacting with JS than wasm. You're basically limited to simple number values and array buffers. Whereas wasm now a days has GC types and can hold onto JS value using externref.<p>> But more important for what i was trying to do, you can't zero copy buffers from js to wasm<p>I'm pretty sure you can't do that with asmjs either. There is a proposal for zero-copy buffers with wasm: <a href="https://github.com/WebAssembly/memory-control/blob/main/proposals/memory-control/Overview.md" rel="nofollow">https://github.com/WebAssembly/memory-control/blob/main/prop...</a></p>
]]></description><pubDate>Wed, 20 May 2026 14:32:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=48208529</link><dc:creator>eqrion</dc:creator><comments>https://news.ycombinator.com/item?id=48208529</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48208529</guid></item><item><title><![CDATA[Saying goodbye to asm.js]]></title><description><![CDATA[
<p>Article URL: <a href="https://spidermonkey.dev/blog/2026/05/20/saying-goodbye-to-asmjs.html">https://spidermonkey.dev/blog/2026/05/20/saying-goodbye-to-asmjs.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48206340">https://news.ycombinator.com/item?id=48206340</a></p>
<p>Points: 410</p>
<p># Comments: 158</p>
]]></description><pubDate>Wed, 20 May 2026 12:01:56 +0000</pubDate><link>https://spidermonkey.dev/blog/2026/05/20/saying-goodbye-to-asmjs.html</link><dc:creator>eqrion</dc:creator><comments>https://news.ycombinator.com/item?id=48206340</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48206340</guid></item><item><title><![CDATA[New comment by eqrion in "Making WebAssembly a first-class language on the Web"]]></title><description><![CDATA[
<p>The concurrency part of the C-M is complicated (I think for inherent reasons), but won't be exposed to end users. It's basically defining an API that language toolchains can use to coordinate concurrency.<p>For end users, they should just see their language's native concurrency primitives (if any). So if you're running Go, it'll be go routines. JS, would use promises. Rust, would have Futures.</p>
]]></description><pubDate>Wed, 11 Mar 2026 17:26:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=47338500</link><dc:creator>eqrion</dc:creator><comments>https://news.ycombinator.com/item?id=47338500</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47338500</guid></item><item><title><![CDATA[New comment by eqrion in "Making WebAssembly a first-class language on the Web"]]></title><description><![CDATA[
<p>> If you compile them to GC wasm instead of running directly in JS then you're just adding unnecessary overheads for no upside<p>Language portability is a big feature. There's a lot of code that's not JS out there. And JS isn't a great compilation target for a lot of languages. Google switched to compiling Java to Wasm-GC instead of JS and got a lot of memory/speed improvements.<p>> Because for example if a browser changes the type of something that happens to be unused, or removes something that happens to be unused, it only breaks actual users at time of use, not potential users at time of load.
> The largest comparable platform is OSes based on C ABI, which rely on a "kind" of dynamic typing (stringly typed, basically - function names in a global namespace plus argument passing ABIs that allow you to mismatch function signature and get away with it.<p>I don't think any Web API exposed directly to Wasm would have a single fixed ABI for that reason. We'd need to have the user request a type signature (through the import), and have the browser maximally try and satisfy the import using coercions that respect API evolution and compat. This is what Web IDL/JS does, and I don't see why we couldn't have that in Wasm too.<p>> Then what's your excuse for why wasm, despite years of investment, is a dud on the web?<p>Wasm is not a dud on the web. Almost 6% of page loads use wasm [1]. It's used in a bunch of major applications and libraries.<p>[1] <a href="https://chromestatus.com/metrics/feature/timeline/popularity/2237" rel="nofollow">https://chromestatus.com/metrics/feature/timeline/popularity...</a><p>I still think we can do better though. Wasm is way too complicated to use today. So users of wasm today are experts who either (a) really need the performance or (b) really need cross platform code. So much that they're willing to put up with the rough edges.<p>And so far, most investment has been to improve the performance or bootstrap new languages. Which is great, but if the devex isn't improved, there won't be mass adoption.</p>
]]></description><pubDate>Wed, 11 Mar 2026 17:22:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=47338439</link><dc:creator>eqrion</dc:creator><comments>https://news.ycombinator.com/item?id=47338439</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47338439</guid></item><item><title><![CDATA[New comment by eqrion in "Making WebAssembly a first-class language on the Web"]]></title><description><![CDATA[
<p>I agree there are some cases that won't see a huge boost, but also DOM performance is a big deal and bottleneck for a lot of applications.<p>And besides performance, I think there are developer experience improvements we could get with native wasm component support (problems 1-3). TBH, I think developer experience is one of the most important things to improve for wasm right now. It's just so hard to get started or integrate with existing code. Once you've learned the tricks, you're fine. But we really shouldn't be requiring everyone to become an expert to benefit from wasm.</p>
]]></description><pubDate>Wed, 11 Mar 2026 17:04:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=47338206</link><dc:creator>eqrion</dc:creator><comments>https://news.ycombinator.com/item?id=47338206</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47338206</guid></item><item><title><![CDATA[New comment by eqrion in "Making WebAssembly a first-class language on the Web"]]></title><description><![CDATA[
<p>I agree that a lot of the tooling is still early days. There has also been a lot of churn as the wasm component spec has changed. We personally have a goal that in most cases web developers won't need to write WIT and can just use Web API's as if they were a library. But it's early days.</p>
]]></description><pubDate>Wed, 11 Mar 2026 16:57:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47338099</link><dc:creator>eqrion</dc:creator><comments>https://news.ycombinator.com/item?id=47338099</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47338099</guid></item><item><title><![CDATA[New comment by eqrion in "Making WebAssembly a first-class language on the Web"]]></title><description><![CDATA[
<p>I worked on the original interface-types proposal a little bit before it became the component model. Two goals that were added were:<p><pre><code>  1. Support non-Web API's
  2. Support limited cross language interop
</code></pre>
WebIDL is the union of JS and Web API's, and while expressive, has many concepts that conflict with those goals. Component interfaces take more of an intersection approach that isn't as expressive, but is much more portable.<p>I personally have always cared about DOM access, but the Wasm CG has been really busy with higher priority things. Writing this post was sort of a way to say that at least some people haven't forgotten about this, and still plan on working on this.</p>
]]></description><pubDate>Wed, 11 Mar 2026 16:53:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47338060</link><dc:creator>eqrion</dc:creator><comments>https://news.ycombinator.com/item?id=47338060</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47338060</guid></item><item><title><![CDATA[New comment by eqrion in "Making WebAssembly a first-class language on the Web"]]></title><description><![CDATA[
<p>I'm not sure I follow this.<p>> WebAssembly is the wrong abstraction for running untrusted apps in a browser<p>WebAssembly is a better fit for a platform running untrusted apps than JS. WebAssembly has a sandbox and was designed for untrusted code. It's almost impossible to statically reason about JS code, and so browsers need a ton of error prone dynamic security infrastructure to protect themselves from guest JS code.<p>> Browser engines evolve independently of one another, and the same web app must be able to run in many versions of the same browser and also in different browsers. Dynamic typing is ideal for this. JavaScript has dynamic typing.<p>There are dynamic languages, like JS/Python that can compile to wasm. Also I don't see how dynamic typing is required to have API evolution and compt. Plenty of platforms have static typed languages and evolve their API's in backwards compatible ways.<p>> Browser engines deal in objects. Each part of the web page is an object. JavaScript is object oriented<p>The first major language for WebAssembly was C++, which is object oriented.<p>To be fair, there are a lot of challenges to making WebAssembly first class on the Web. I just don't think these issues get to the heart of the problem.</p>
]]></description><pubDate>Wed, 11 Mar 2026 16:41:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=47337889</link><dc:creator>eqrion</dc:creator><comments>https://news.ycombinator.com/item?id=47337889</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47337889</guid></item><item><title><![CDATA[New comment by eqrion in "Dash: A side project to learn how to make a programming language in C"]]></title><description><![CDATA[
<p>Yikes, that's embarrassing. Well that's definitely the first thing I'm going to redo lol.</p>
]]></description><pubDate>Fri, 21 Aug 2015 14:29:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=10097680</link><dc:creator>eqrion</dc:creator><comments>https://news.ycombinator.com/item?id=10097680</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=10097680</guid></item></channel></rss>