L1VM - the story

The L1VM project started on 9. November 2017 as an experimental fast VM. I had some knowledge already from my Nano VM project. But I started from scratch.

I did develop Nano VM before. The main disadvantage was the execution speed: it was slow! It has hundreds of opcodes. Everything was build in the binary. So it already was difficult to maintain.

One day I did start my text editor and wrote some new code. Then I had this new idea. What happens if I put all variables into one byte array? Like I did it for the VM opcodes.

I did write a program, hard coded into my new VM code. It was a loop counting to about 100000 or so.
I did wait for the program to finish. Now something special happened. I could not believe what I did see now. The new VM code was seven times faster than Nano VM! At this time I did stop developing my Nano VM project. I did design a new opcode set with about 60 opcodes. The L1VM has a RISC like CPU.

I did work on the new VM L1VM in my free time. I did develop an assembler and later wrote a new programming language: Brackets. At the beginning I did set four design rules:

  • be small
  • be fast
  • be simple
  • be modular

Now, If I look back, I think it was worth to start from scratch. I did learn a lot. And when I look at the support I get on GitHub, then I’m glad to be part of this.