Home   Archive   Permalink



Is anyone here using WASM?

A decade ago I expected WASM might revolutionize deployment of software tools. A C# developer friend of mine now regularly uses Radzen and Blazor, which make use of UI components compiled to webassembly, but I don't see many equivalent solutions. Pyodide is currently too big, clunky, and limited to be really useful as a clean WASM solution for Python, though it may solve some problems in a pinch - I think most environments that support Pyodide would probably be able to support a full install of Python just as easily, and the benefits to that path are overwhelming. I'm curious if anyone has successful experience using WASM as a deployment target.

posted by:   Nick     12-Nov-2024/9:30:40-8:00



Two of the first backends I wrote for Meta generate WebAssembly in text and binary formats.
    
They're proof-of-concept to steer the Meta design. The backends themselves are incomplete and unpublished. But the C backend for Meta can use Emscripten to compile to a web page. I decided to have it generate JavaScript in the Meta Web Console, because it's slightly smaller and compatible with older web browsers, but I may as well have Emscripten generate WASM.
    
There are also other C toolchains that could be used to compile Meta programs into functional WebAssembly.

posted by:   Kaj     13-Nov-2024/17:48:06-8:00



That's interesting :) I'm curious to hear anything else you'd like to share about your experience building Meta, more about how development is progressing, anything about projects you're doing with it, etc.

posted by:   Nick     14-Nov-2024/15:58:44-8:00



At first I designed the language around WebAssembly, to generate text and binary forms. Then I extended it to generate C, because then you get access to mature C compilers and standard libraries for many platforms.
    
Despite the name, WebAssembly is fairly far from traditional assembly, more in the direction of a medium-level language. So I also made a proof-of-concept backend to generate 6502 machine code directly, to make sure the language design can do that, too.
    
Because there are C toolchains that generate WASM, the C backend for Meta will also be the main backend for WebAssembly for some time to come.
    
It's almost there. Like many other platforms, only an extra C toolchain and mult-target support in the Meta toolchain are needed.
    
Any other projects, I try not to say too much about them, because in practice, the time planning always changes, so I don't want to promise things that may be rearranged later.

posted by:   Kaj     15-Nov-2024/13:14:06-8:00



All very interesting because it's so far from the scope and type of work I currently do (database backed UI). I hope your projects are going well!
    
At some point I'd still be interested in contributing to database connectivity, authentication, etc., if/when that gets in your roadmap and I get a break from current projects.

posted by:   Nick     16-Nov-2024/12:24:22-8:00



Name:


Message:


Type the reverse of this captcha text: "2 k r a m"



Home