Hacker News new | comments | ask | show | jobs | submit login
Build a VM step by step with Rust (subnetzero.io)
188 points by ngaut 6 months ago | hide | past | web | favorite | 9 comments

Hm, skimming it this looks promising, but the last post was a while ago. I wonder if real life got in the way or if the series is abandoned. Either way I'm favoriting this to look at later as I'm planning to do exactly this, and seeing someone do it in rust for reference will be incredibly useful.

I'm building a YARV compatible bytecode VM using the standard CRuby code to do the lexing, parsing, and compilation. It's the first time I've built anything more complex than a toy interpreter.

Interesting material here: Gluon https://github.com/gluon-lang/gluon/ https://pliniker.github.io/post/dispatchers/ https://play.rust-lang.org/?gist=8fc08d2c9980aaee363d2f7842e...

Finally, there's also Dora https://github.com/dinfuehr/dora by Dominik Inführ, who is interning with the V8 team in Münich. Dora is incrementally compiled, though, rather than being a bytecode VM.


Oh whoah! That’s very cool. I was wondering how much work a project like this would be...

I will give all this a look, thanks for the links.

Sorry about that, I'm still in the process of converting my notes and memories into coherent posts. I just put up another one, and should have the next few shortly.

Finally read through what you have up so far (reading w/o coding for now as I have other commitments today) and I wanted to say I love what you have so far. Though an oddity the date of the post is July 20th for some reason (in case that matters to you)

Totally understandable, didn't mean to sound like I was accusing if it felt like it. Thanks for putting your work up.

Last post is only 2 weeks ago, seems too soon to make that conclusion?

It was mostly the case the posts were regularly before that big gap. However if you look I got a reply :)

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact