Eniko Fox's personal blog 

Eniko Fox

Memory management and safety in Bismuth VM

This is the second in a series of posts about a virtual machine I’m developing as a hobby project called Bismuth. In this edition we’re going to look at the VM’s design for memory management and safety. To start with I’ll remind you of the design goals for this VM as detailed in my last post, with those that apply here in bold:

  1. Must be fast
  2. The IR must be compatible with standard C
  3. Can run in a browser
  4. The VM must be easy to implement

Not to give away the twist, but when you combine points 2 and 4 with a VM that cares about memory safety (i.e. programs should not be able to do things like read outside of the bounds of an allocated region of memory) things can get a little bit complicated. So let’s walk through the stages of grief that I experienced and the solutions I came to during the bargaining stage when designing the memory management and safety features of the Bismuth VM.

Continue reading...
Eniko Fox

Introduction to Bismuth VM

This is the first post in what will hopefully become a series of posts about a virtual machine I’m developing as a hobby project called Bismuth. This post will touch on some of the design fundamentals and goals, with future posts going into more detail on each.

But to explain how I got here I first have to tell you about Bismuth, the kernel.

Bismuth OS kernel boot up sequence in terminal
Continue reading...
Eniko Fox

There is life after Twitter

Elon Musk just forced through the new blocking changes on Twitter (also known as X, but I refuse to call it that) where blocking someone means they can still see your posts. That and the news that in November all data will be used to train his shitty AI, Grok, without an opt-out, has caused another exodus from Twitter.

As a result my Bluesky account has gone from 2.5k followers to 3k. On the fediverse my Mastodon account just hit 9,900 followers, and I’m hoping I’ll get to that coveted 10k before the end of the year. I’m not writing this to humble brag about my internet clout though, there is a point: there is life after Twitter.

Continue reading...
Eniko Fox

Fediverse comments with Publii

I decided I wanted something a little slicker than a command line for my new blog so I went with Publii. Unfortunately, that made integrating pulling a thread from Mastodon for comments a little bit trickier than I think it would’ve been otherwise. In this post I’ll go through how I wound up doing it.

Continue reading...
Eniko Fox

What the Ultima series means to me

One of my earliest childhood memories, and one of the few positive memories I have of my dad (a malignant narcissist and an alcoholic who drank himself to death) was my father playing Ultima 4. Well, not so much “playing” as mapping out the world. The living room floor would be covered in graph paper that he meticulously filled in with all the tiles in the game.

I remember playing Ultima 4, 5, 6, and 7 as a kid. I wasn’t good at playing them, mind you. I spent most of my time in Ultima 6 telling Iolo “spam spam spam humbug,” the iddqd equivalent for RPG nerds. I’d then pick a spot in the world and spend inordinate amounts of time painstakingly moving furniture from halfway across the map into a house to make it mine. I don’t think I ever completed a single Ultima game, really, but it was great anyway.

Ultima 6 running under Nuvie

The Ultima games were my first taste of virtual worlds, and I loved them so much they were the biggest influence that started me down the path of game development. There were other influences of course, but I think it’s fair to say it all started with Ultima.

Continue reading...