Live data from Hacker News

Epsilon: A WASM virtual machine written in Go

github.com

11–20 of 47 posts

Re: Epsilon: A WASM virtual machine written in Go

#11
post #4

Earlier quoted context omitted.

So far, seems interpreter only, lots simpler, etc. I'd be interested to understand the goal behind it better.

I knew I remember your name working with something of sqlite and golang https://github.com/ncruces/go-sqlite3 Man I really enjoy golang and cross portability and wazero + sqlite could still be cross portable which is super fascinating What are your thoughts on https://github.com/electric-sql/pglite (postgres in wasm)? Also what were the goal behind a pure golang solution via wazero + wasm sqlite as you had made? Was…

Started as fun "what if" side project, but kept me interested for 3 years now. Turns out it's actually useful.

It's pretty portable: with some caveats, it works pretty much everywhere Go does. Performance is bad outside amd64/arm64, but for most popular OS/platforms it's fine. See this for an overall picture (these are the platforms I test): https://github.com/ncruces/go-sqlite3/wiki/Support-matrix

I bet you could do the similar with pglite, but this (and helping out with wazero) already consumes all my spare time.

Re: Epsilon: A WASM virtual machine written in Go

#13

Congratulations on the progress and getting the engine out there! One nice thing about interpreters versus JIT compilers is that they can be used in places like iOS without too much fuss (AFAIK you have to bundle all the WASM you will run though, or something like that). I'm biased since I work on it, but any considerations around adding support for the Component Model? It's more complex than the base spec of course…

+1 on Component Model. AFAICT it's not planned for wasip3.

Re: Epsilon: A WASM virtual machine written in Go

#14

Congratulations on the progress and getting the engine out there! One nice thing about interpreters versus JIT compilers is that they can be used in places like iOS without too much fuss (AFAIK you have to bundle all the WASM you will run though, or something like that). I'm biased since I work on it, but any considerations around adding support for the Component Model? It's more complex than the base spec of course…

+1 on Component Model. AFAICT it's not planned for wasip3.

Just to point out, even a P2 implementation is still very useful! P3 is necessarily more complex than P2, but P2 also contains very useful features that are worth implementing. Most language toolchains are centered around p2 today and that will take a while to change.

Also, there is an adapter for automatically taking p1 components to p2, and a p2 to p3 adapter may exist in time, if desire is great enough! IIRC it doesn't exist right now.

Re: Epsilon: A WASM virtual machine written in Go

#15
post #6

Do you have any plans to add timeouts or some other mechanism for limiting the amount of CPU a webassembly call can use? I'm always interested in options for using WebAssembly as a sandbox to run untrusted code, but one of the things I need to protect against is an infinite loop. (I had Claude knock up an experimental Python binding to try Epsilon out, notes from that here: https://github.com/simonw/research/tree/mai…

I'm working on an embeddable mini VM (RISC-V rather than WASM) and am considering this. In my model, there's something akin to a hardware watchdog where the VM is considered hung if it executes too many instructions without calling a yield() function in the host, then there's the ability to set a maximum number of instructions to execute before returning to the caller.

This lets it be handled asynchronously at the pace the host code chooses https://github.com/ringtailsoftware/uvm32

Re: Epsilon: A WASM virtual machine written in Go

#16
post #7
post #3

This could have been a Show HN? Also: would be nice to see wazero ( https://github.com/wazero/wazero ) mentioned. What was the reason to create Epsilon as an alternative?

why so critical? why divert attention? why bother about the title prefix?

Because people filter by it

Re: Epsilon: A WASM virtual machine written in Go

#17
WASM seems to be rather poorly documented in general. I used to think it is only badly documented in Ruby (which it is), but I have been slowly reading "WebAssembly The Definitive Guide" and when comparing this to information on the internet, it seems WebAssembly is years behind e. g. HTML, CSS, or JavaScript in regards to documentation. Granted, it is not the same user base (more people will be interested in HTML and CSS simply because there is a bigger pool of people interested in that, rather than in WebAssembly), but still - documentation appears to become really worse in general on the internet. Finding it too.

So in this regard, having more implementations may be useful (more opportunity to improve documentation) - thus while I am in general skeptical, this is good news here, even if I do not use Go myself.

Re: Epsilon: A WASM virtual machine written in Go

#18

WASM seems to be rather poorly documented in general. I used to think it is only badly documented in Ruby (which it is), but I have been slowly reading "WebAssembly The Definitive Guide" and when comparing this to information on the internet, it seems WebAssembly is years behind e. g. HTML, CSS, or JavaScript in regards to documentation. Granted, it is not the same user base (more people will be interested in HTML an…

I wonder if your question relates to WASM or things in the WASM-sphere like WASI et al?

I'm not sure if it's right but I think of WASM as just an ISA and I guess the documentation seems to cover instruction encodings and semantics.

Re: Epsilon: A WASM virtual machine written in Go

#20
post #11

Earlier quoted context omitted.

I knew I remember your name working with something of sqlite and golang https://github.com/ncruces/go-sqlite3 Man I really enjoy golang and cross portability and wazero + sqlite could still be cross portable which is super fascinating What are your thoughts on https://github.com/electric-sql/pglite (postgres in wasm)? Also what were the goal behind a pure golang solution via wazero + wasm sqlite as you had made? Was…

Started as fun "what if" side project, but kept me interested for 3 years now. Turns out it's actually useful. It's pretty portable: with some caveats, it works pretty much everywhere Go does. Performance is bad outside amd64/arm64, but for most popular OS/platforms it's fine. See this for an overall picture (these are the platforms I test): https://github.com/ncruces/go-sqlite3/wiki/Support-matrix I bet you could do…

I love sqlite a lot but there is always this idea in my head that maybe some day I might out grow sqlite and require postgres which in my opinion can be just "enough"

Starting out with postgres if done via pglite and similars with golang's sqlite-ish approach can be brilliant I guess and I had this what if idea sort of inspired by yours actually but I don't think I can do that project basically right now but yea

Idk maybe its offtopic and I really love golang but I am interested in converting cli golang awesome applications into android apps but they seem like a nightmare to create android apps in golang, do you know if there is some easier way to create golang android apps (sorry if its offtopic but I am interested to learn sooo much more about golang :p)?

Post reply on HN