Hacker News new | ask | show | jobs
by syrusakbary 499 days ago
This is an interesting approach, great work!

For anyone that wants to check where the meat is at, is mostly in this file: https://github.com/irrio/semblance/blob/main/src/wrun.c

Thinking out loud, I think it would have been a great idea to conform with the Wasm-C-API (https://github.com/WebAssembly/wasm-c-api) as a standard interface for the project (which most of the Wasm runtimes: Wasmer, V8, wasmi, etc. have adopted), as the API is already in C and it would make it easier to try for developers familiar with that API.

Note for the author: if you feel familiar enough with Wasm and you would like to contribute into Wasmer, we would also welcome any patches or improvements. Keep up the work work!

3 comments

Um, the author is clearly familiar enough with Wasm, but probably knows enough to know to avoid a company that tried to trademark WebAssembly.

> understandable concerns about the fact we, Wasmer, a VC-backed corporation, attempted to trademark the name of a non-profit organization, specifically WebAssembly

Acknowledgement of wrongdoing.

I hadn't heard about this - terrible.
Read the whole blogpost that quote was taken from:

https://wasmer.io/posts/wasmer-and-trademarks-extended

I don't think this is as much of a smoking gun as it is made out to be.

Attention is all we need.
Just for defensive purposes obviously
"Mistakes teach us, forgiveness frees us" - ChatGPT (o3-mini)

https://wasmer.io/posts/wasmer-and-trademarks

> Wasmer

> Installed-Size: 266 MB

What the hell

Indeed, we need to improve further the base binary size!

Most of the size comes from the LLVM backend, which is a bit heavy. Wasmer ships many backends by default, and if you were to use Wasmer headless that would be just a bit less than a Mb.

If you want, you can always customize the build with only the backends that you are interested in using.

Note: I've seen some builds of LLVM under 5-10Mb, but those require heavy customization. Is clear that we have still some work to do to reduce size on the general build!

So you are shipping all of llvm?
Well, if you want to just-in-time compile, then it seems like a compiler is one way to go.

They are now in the size realm of Lisp and Smalltalk. Forth may lean towards the lighter side.

Lisp and Smalltalk are 266 MB?

tcc is 100KB

https://www.bellard.org/tcc/

Squeak Smalltalk is 53 MB on Windows (excluding sources). 48 MB of that is the image with UI framework and so on, but it's not immediately easy to say which library/ui parts are core.
TCC doesn't do much optimization in turn, while commercial implementations of Lisp and Smalltalk are surely much larger than that.
afaik it's far from adopted by Wasmer. https://github.com/wasmerio/wasmer/issues/2615 - stale then autoclosed
It seems the issue was not up to date, thanks for pointing it out (just commented in Github to make it clear for future readers).

Wasmer supports most of the Wasm-C-API, with some exceptions for APIs that are not that common to use: finalize, hostref and threads (tables just had some quirks on the implementation that we had to polish, but is generally implemented [1]).

https://github.com/wasmerio/wasmer/blob/main/lib/c-api/tests...

If you are interested in running any of these cases using Wasmer via the Wasm-C-API please let us know... it should be mostly trivial to add support!

[1] https://github.com/wasmerio/wasmer/blob/main/lib/c-api/src/w...

Thank you! I'll take a look...