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: Must be fast The IR must be compatible with standard C Can run in a browser The VM must be easy to implement Not to give away the twist, but when you combine p...