<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: nallana</title><link>https://news.ycombinator.com/user?id=nallana</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 03 May 2026 19:04:03 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=nallana" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by nallana in "California to begin ticketing driverless cars that violate traffic laws"]]></title><description><![CDATA[
<p>They haven’t been all this time? Damn — what a time to be a robot</p>
]]></description><pubDate>Sat, 02 May 2026 18:39:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=47989140</link><dc:creator>nallana</dc:creator><comments>https://news.ycombinator.com/item?id=47989140</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47989140</guid></item><item><title><![CDATA[New comment by nallana in "We rewrote our Rust WASM parser in TypeScript and it got faster"]]></title><description><![CDATA[
<p>Why not a shared buffer? Serializing into JSON on this hot path should be entirely avoidable</p>
]]></description><pubDate>Fri, 20 Mar 2026 23:48:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=47462405</link><dc:creator>nallana</dc:creator><comments>https://news.ycombinator.com/item?id=47462405</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47462405</guid></item><item><title><![CDATA[New comment by nallana in "In Defense of Matlab Code"]]></title><description><![CDATA[
<p>Appreciate the comment actually! It's good feedback -- we weren't sure if it's mixing work/memes too much, and keeping our materials clean like engineering docs are probably a good way to go. We may edit it out of the post.<p>Cheers for the comment!</p>
]]></description><pubDate>Tue, 16 Dec 2025 01:33:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=46283614</link><dc:creator>nallana</dc:creator><comments>https://news.ycombinator.com/item?id=46283614</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46283614</guid></item><item><title><![CDATA[New comment by nallana in "In Defense of Matlab Code"]]></title><description><![CDATA[
<p>It's open source / free. But yes, of course we want people to try it and get value from it.</p>
]]></description><pubDate>Mon, 15 Dec 2025 22:03:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=46281389</link><dc:creator>nallana</dc:creator><comments>https://news.ycombinator.com/item?id=46281389</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46281389</guid></item><item><title><![CDATA[New comment by nallana in "In Defense of Matlab Code"]]></title><description><![CDATA[
<p>Seeing in MATLAB code how ode45 is implemented != how the thing is running on the machine. That's a very small top slice.<p>But okay -- as I mentioned, you're entitled to your views!</p>
]]></description><pubDate>Mon, 15 Dec 2025 21:30:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=46280976</link><dc:creator>nallana</dc:creator><comments>https://news.ycombinator.com/item?id=46280976</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46280976</guid></item><item><title><![CDATA[New comment by nallana in "In Defense of Matlab Code"]]></title><description><![CDATA[
<p>Shameless plug for RunMat (we wrote this blog article, also an open source alternative for MATLAB):<p><a href="https://runmat.org" rel="nofollow">https://runmat.org</a></p>
]]></description><pubDate>Mon, 15 Dec 2025 21:22:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=46280863</link><dc:creator>nallana</dc:creator><comments>https://news.ycombinator.com/item?id=46280863</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46280863</guid></item><item><title><![CDATA[New comment by nallana in "In Defense of Matlab Code"]]></title><description><![CDATA[
<p>Yep -- Octave was very helpful for me in school.<p>Octave is not particularly fast.<p>RunMat is very fast (orders of magnitude -- see benchmarks).</p>
]]></description><pubDate>Mon, 15 Dec 2025 21:19:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=46280821</link><dc:creator>nallana</dc:creator><comments>https://news.ycombinator.com/item?id=46280821</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46280821</guid></item><item><title><![CDATA[New comment by nallana in "In Defense of Matlab Code"]]></title><description><![CDATA[
<p>>> The engine is closed source. You cannot see how fft or ode45 are implemented under the hood. For high-stakes engineering, not being able to audit your tools is a risk. This is just a lie. Open matlab and you can inspect all the implementation details behind ode45. It is not a black box.<p>How do I see the .c files / trace how `ode45` will execute on my machine? Can I see the JIT's source code?<p>--<p>Entitled to your view, but clearly difference of opinion here. From perspective of open / closed source -- maybe for you it qualifies as open source, but I can't follow the logic chain, so to me MATLAB is not open source.</p>
]]></description><pubDate>Mon, 15 Dec 2025 21:16:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=46280783</link><dc:creator>nallana</dc:creator><comments>https://news.ycombinator.com/item?id=46280783</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46280783</guid></item><item><title><![CDATA[New comment by nallana in "In Defense of Matlab Code"]]></title><description><![CDATA[
<p>If the rewrite is for performance, ideally the logic capture = the thing executing in production.<p>Cases where a JIT running would conflict with requirements notwithstanding (e.g. HIL with strict requirements and whatnot)...</p>
]]></description><pubDate>Mon, 15 Dec 2025 21:06:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46280648</link><dc:creator>nallana</dc:creator><comments>https://news.ycombinator.com/item?id=46280648</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46280648</guid></item><item><title><![CDATA[New comment by nallana in "In Defense of Matlab Code"]]></title><description><![CDATA[
<p>Yep! Makes sense. Though I think the cost of writing these toolboxes is lim --> 0.<p>Will have a really solid rust inspired package manager soon, and a single #macro to expose a rust function in the RunMat script's namespace (= easy to bring any aspects of the rust ecosystem to RunMat).</p>
]]></description><pubDate>Mon, 15 Dec 2025 20:57:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=46280543</link><dc:creator>nallana</dc:creator><comments>https://news.ycombinator.com/item?id=46280543</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46280543</guid></item><item><title><![CDATA[New comment by nallana in "In Defense of Matlab Code"]]></title><description><![CDATA[
<p>In Julia, you explicitly need to still reason about and select GPU drivers + manage residency of tensors; in RunMat we abstract that away, and just do it for you. You just write math, and we do an equivalent of a JIT to just figure out when to run it on GPU for you.<p>Our goal is to make a runtime that lets people stay at the math layer as much as possible, and run the math as fast as possible.</p>
]]></description><pubDate>Mon, 15 Dec 2025 20:54:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=46280498</link><dc:creator>nallana</dc:creator><comments>https://news.ycombinator.com/item?id=46280498</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46280498</guid></item><item><title><![CDATA[New comment by nallana in "In Defense of Matlab Code"]]></title><description><![CDATA[
<p>@mNovak -- super helpful note! Thank you!<p>Author of RunMat (this project) here --<p>> The first thing they teach about performant Matlab code is that simple for-loops will tank performance.<p>Yes! Since in RunMat we're building a computation graph and fusing operations into GPU kernels, we built the foundations to extend this to loop fusion.<p>That should allow RunMat to take loops as written, and unwrap the matrix math in the computation graph into singular GPU programs -- effectively letting loop written math run super fast too.<p>Will share more on this soon as we finish loop fusion, but see `docs/fusion/INTERNAL_NOTE_FLOOPS_VM_OPS.md` in the repo if curious (we're also creating VM ops for math idioms where they're advantageous).<p>> Would love to see something with the convenient math syntax of Matlab, but with broader ease of use of something like JS.<p>What does "convenient math syntax of Matlab, but with broader ease of use of something like JS" look like to you? What do you wish you could do with Matlab but can't / it doesn't do well with?</p>
]]></description><pubDate>Mon, 15 Dec 2025 20:38:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=46280272</link><dc:creator>nallana</dc:creator><comments>https://news.ycombinator.com/item?id=46280272</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46280272</guid></item><item><title><![CDATA[New comment by nallana in "Show HN: RunMat – runtime with auto CPU/GPU routing for dense math"]]></title><description><![CDATA[
<p>Thanks!! It was originally for Octave users whose scripts were running painfully slow.<p>The goal was to keep the MATLAB frontend capture syntax, but run it fast.<p>When we dug into <i>why</i> people were still using Octave, it was because it let them focus on their math, and was easier for them to read - was especially important for people that aren’t programmers; eg scientists and engineers.<p>I suppose this is also why we write in higher level languages than assembly.<p>The goal of this project is now: let’s make the fastest runtime in the world to run math.<p>Turned out, the MATLAB syntax offers a large amount of compiler time hinting in (it is meant for math intent capture after all).<p>We’ve found as we built this that if we take a domain specific approach (eg we’re going to make every optimization for what’s best for people wanting to focus on the math part), we can outperform general purpose languages like Python by a large mile on the math part.<p>For example, internals like keeping tensor shapes + broadcasting intent within the AST, and having the computation graph available for profitable GPU/CPU threshold detection isn’t something that makes practical sense to build into a general purpose runtime like Python, but —<p>It lets RunMat speed up elementwise math orders of magnitude (eg 1B points going through 5-6 element wise ops like sin/cos/+/- etc are 80x faster on my MBP vs Python/PyTorch).<p>So Tl;dr — started as for Octave users. Goal is to build the fastest runtime for math for those that are looking to use computers to do math.<p>Obligatory disclosure because we’re engineers: you can still get faster by writing your own CUDA / GPU code. We’re betting 99% of the people that are trying to run math using computers don’t want to do that (ML community notwithstanding).</p>
]]></description><pubDate>Tue, 02 Dec 2025 17:10:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=46123542</link><dc:creator>nallana</dc:creator><comments>https://news.ycombinator.com/item?id=46123542</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46123542</guid></item><item><title><![CDATA[Show HN: RunMat – runtime with auto CPU/GPU routing for dense math]]></title><description><![CDATA[
<p>Hi, I’m Nabeel. In August I released RunMat as an open-source runtime for MATLAB code that was already much faster than GNU Octave on the workloads I tried. <a href="https://news.ycombinator.com/item?id=44972919">https://news.ycombinator.com/item?id=44972919</a><p>Since then, I’ve taken it further with RunMat Accelerate: the runtime now automatically fuses operations and routes work between CPU and GPU. You write MATLAB-style code, and RunMat runs your computation across CPUs and GPUs for speed. No CUDA, no kernel code.<p>Under the hood, it builds a graph of your array math, fuses long chains into a few kernels, keeps data on the GPU when that helps, and falls back to CPU JIT / BLAS for small cases.<p>On an Apple M2 Max (32 GB), here are some current benchmarks (median of several runs):<p>* 5M-path Monte Carlo
    * RunMat ≈ 0.61 s
    * PyTorch ≈ 1.70 s
    * NumPy ≈ 79.9 s
         → ~2.8× faster than PyTorch and ~130× faster than NumPy on this test.<p>* 64 × 4K image preprocessing pipeline
     (mean/std, normalize, gain/bias, gamma, MSE)
    * RunMat ≈ 0.68 s
    * PyTorch ≈ 1.20 s
    * NumPy ≈ 7.0 s
         → ~1.8× faster than PyTorch and ~10× faster than NumPy.<p>* 1B-point elementwise chain (sin / exp / cos / tanh mix)
    * RunMat ≈ 0.14 s
    * PyTorch ≈ 20.8 s
    * NumPy ≈ 11.9 s
         → ~140× faster than PyTorch and ~80× faster than NumPy.<p>If you want more detail on how the fusion and CPU/GPU routing work, I wrote up a longer post here:
<a href="https://runmat.org/blog/runmat-accel-intro-blog" rel="nofollow">https://runmat.org/blog/runmat-accel-intro-blog</a><p>You can run the same benchmarks yourself from the GitHub repo in the main HN link. Feedback, bug reports, and “here’s where it breaks or is slow” examples are very welcome.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46121951">https://news.ycombinator.com/item?id=46121951</a></p>
<p>Points: 21</p>
<p># Comments: 4</p>
]]></description><pubDate>Tue, 02 Dec 2025 15:07:49 +0000</pubDate><link>https://github.com/runmat-org/runmat</link><dc:creator>nallana</dc:creator><comments>https://news.ycombinator.com/item?id=46121951</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46121951</guid></item><item><title><![CDATA[Choosing Rust for LLM-generated code]]></title><description><![CDATA[
<p>Article URL: <a href="https://runmat.org/blog/why-rust">https://runmat.org/blog/why-rust</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45224625">https://news.ycombinator.com/item?id=45224625</a></p>
<p>Points: 7</p>
<p># Comments: 4</p>
]]></description><pubDate>Fri, 12 Sep 2025 17:44:23 +0000</pubDate><link>https://runmat.org/blog/why-rust</link><dc:creator>nallana</dc:creator><comments>https://news.ycombinator.com/item?id=45224625</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45224625</guid></item><item><title><![CDATA[New comment by nallana in "Show HN: RunMat – a V8 inspired Rust runtime for the landlocked Matlab language"]]></title><description><![CDATA[
<p>a solid core, not the whole Matlab (they confound the language, compiler / runtime, an IDE, and a bunch of other things in the name / product that is MATLAB).<p>This is a solid compiler + minimal runtime, with an architecture designed to scale.</p>
]]></description><pubDate>Thu, 21 Aug 2025 15:24:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=44973955</link><dc:creator>nallana</dc:creator><comments>https://news.ycombinator.com/item?id=44973955</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44973955</guid></item><item><title><![CDATA[New comment by nallana in "Show HN: RunMat – a V8 inspired Rust runtime for the landlocked Matlab language"]]></title><description><![CDATA[
<p>Versus Octave:<p>- Lots of language semantics are unsupported in Octave (like Classes), and it’s purely a slow line by line interpreter so it’s very slow.<p>- Given the design / Cranelift IR translation here, RunMat can run natively on any compile target for which Cranelift [currently x86-64, aarch64 (ARM64), s390x (IBM Z), and riscv64], and targeting additional ISAs is easy. The net of this: you can write controls / logic in Matlab code and run it natively on device.<p>- GPU acceleration; the foundations are in place so RunMat can natively accelerate Tensor / Matrix math on GPUs, irrespective of device (eg CUDA / Metal / Vulcan / etc). Net of this is that you can do much bigger math calculations even faster (and without having to worry about moving things on/off GPU memory; there’s a configurable (and substitutable) planner built in that does scatter / gather intelligently for you). The AST is extensively typed, and we can support things like reverse-grade autograd by default -> your math runs even faster than would natively in Octave or even Matlab (I believe Matlab has a separate toolbox where you can do some of this, but it’s not natively how their matrix math works / they try and upsell for that).<p>- Once the package manager is complete, you can extend it. Octave doesn’t really have a package system per se.</p>
]]></description><pubDate>Thu, 21 Aug 2025 15:20:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=44973904</link><dc:creator>nallana</dc:creator><comments>https://news.ycombinator.com/item?id=44973904</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44973904</guid></item><item><title><![CDATA[Show HN: RunMat – a V8 inspired Rust runtime for the landlocked Matlab language]]></title><description><![CDATA[
<p>Why build this? MATLAB wasn’t chosen by engineers; it was inherited from classrooms. That unfair advantage let MathWorks sell a decades-old runtime with heavy startup, sluggish hot loops, and paywalled toolboxes. It milks about $500M a year out of the engineering ecosystem for what amounts to an outdated compiler and runtime stack.<p>GNU Octave has been the main open-source way to run MATLAB code but it only supports a subset of the grammar and semantics, and its performance is far behind modern expectations. It’s more of a compatibility bridge than a true runtime alternative.<p>I decided to implement a MATLAB language compiler and executor from scratch, grammar and semantics complete, in Rust with a modern architecture inspired by V8. Like V8, RunMat starts in a lightweight interpreter, then profiles and JITs hot paths using Cranelift. Snapshotting makes cold start essentially vanish (5ms vs 2–10s in MATLAB), and tensor operations run natively across CPUs or GPUs (CUDA, Metal, Vulkan) without an extra license.<p>Performance (vs Octave, Apple M2 Max, 32GB):
* Startup: 0.9147s → 0.005s (180× faster)
* Matrix ops: 0.8220s → 0.005s (164×)
* Math funcs: 0.8677s → 0.0053s (160×)
* Control flow: 0.8757s → 0.0057s (154×)<p>Unlike Octave, RunMat implements the full MATLAB grammar: arrays/indexing (end/colon/masks/N-D), multiple returns, varargin/varargout, classdef OOP, events/handles, metaclass, and standardized exceptions. The core is slim at 5MB static binaries for Linux, macOS, and Windows (or embedded devices and containers), with language extensibility coming from packages that can be written in MATLAB or in Rust.<p>It’s 100% open source: The repo is about 3M characters of code, has over 1,000 tests covering the edges of the semantic surface, and was bootstrapped in three weeks. A package manager is next, along with a final draft of the builtin standard library.<p>TLDR: Same language semantics, but rebuilt with modern methods, the way Chrome’s V8 redefined JavaScript engines.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44972919">https://news.ycombinator.com/item?id=44972919</a></p>
<p>Points: 15</p>
<p># Comments: 6</p>
]]></description><pubDate>Thu, 21 Aug 2025 14:02:25 +0000</pubDate><link>https://runmat.org/blog/introducing-runmat</link><dc:creator>nallana</dc:creator><comments>https://news.ycombinator.com/item?id=44972919</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44972919</guid></item><item><title><![CDATA[New comment by nallana in "Show HN: Using generative AI for real world engineering analysis"]]></title><description><![CDATA[
<p>Hi HN!<p>Would love to share something that has been over a year in the making.<p>We were originally building an environment to conduct engineering / scientific analysis in the cloud (lambda compute w/ visual outputs for figures and what not).<p>Design intent was to enable mechanical / electrical engineering teams with basic programming skills (2-3 courses) to harness SW better. I came from a SW background before working in HWE at Apple for a number of years, and saw just how many things people were doing that could be automated if non-SWEs just knew how to set up a CRON or trigger based job (or even install Python!).<p>We experimented with adding Codex to the product, and the result has turned out to be pretty remarkable.<p>Since we launched on LinkedIn 2w ago, we’ve been adding new users like crazy.<p>People are using the product like a graphing calculator on steroids. Like if Matlab meets the team collaborative aspect of Figma. Others are ditching their TI-84s and Excel spreadsheets which they were using for multi-step math to Dystr instead.<p>Would absolutely love feedback! Please do forward either here, or emailing us (team@ root domain).<p>Also! Desktop only for now; will release mobile compatibility when development resources allow!</p>
]]></description><pubDate>Sun, 29 Jan 2023 18:04:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=34570798</link><dc:creator>nallana</dc:creator><comments>https://news.ycombinator.com/item?id=34570798</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34570798</guid></item><item><title><![CDATA[Show HN: Using generative AI for real world engineering analysis]]></title><description><![CDATA[
<p>Article URL: <a href="https://dystr.com/compute">https://dystr.com/compute</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=34570797">https://news.ycombinator.com/item?id=34570797</a></p>
<p>Points: 17</p>
<p># Comments: 1</p>
]]></description><pubDate>Sun, 29 Jan 2023 18:04:19 +0000</pubDate><link>https://dystr.com/compute</link><dc:creator>nallana</dc:creator><comments>https://news.ycombinator.com/item?id=34570797</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34570797</guid></item></channel></rss>