Apparently this needs to be said? Bismuth VM is written in C, not C#. The reason there's .net stuff in the path of the hex editor I took a screenshot of is because the *compiler* is written in C#, because I don't hate myself nearly enough to be doing a whole bunch of string manipulation in C

#PLDev #BismuthVM #Bismuth

New Bismuth VM blog post, detailing the life cycle of a hello world program for Bismuth from high level Bronze code to text-based IR, transpiled C, binary IR, and finally bytecode: https://enikofox.com/posts/hello-world-in-bismuth/

(Quiet) public/unlisted replies to this post will be shown on the blog as comments on the post

#BismuthVM #Bismuth #PLDev

'Hello world' in Bismuth

This is the third in a series of posts about a virtual machine I’m developing as a hobby project called Bismuth. I’ve talked a lot about Bismuth, mostly on social media, but I don’t think I’ve done a good job at communicating how you go from some code to a program in this VM. In this post I aim to rectify that by walking you through the entire life cycle of a hello world Bismuth program, from the highest level to the lowest.let hello = data_utf8("Hello world!\n");func main() i32 { // system call 0x10 is the PrintStr system call sys(0x10, hello, 0, sizeof(hello)); return 0;}This code will be converted to the VM’s intermediate representation, which can then be transpiled to C, or compiled to a binary version of the IR, which the VM ingests and turns into bytecode and runs.

Eniko does bad things to code