Skip to content

Various Performance-Related Improvements

Latest
Compare
Choose a tag to compare
@TheRealMichaelWang TheRealMichaelWang released this 30 Jul 20:33
· 13 commits to main since this release
efae0e2

While the syntax hasn't changed significantly, or for that matter at all in this release (should it ever?), several major changes and upgrades have been made to Minima's virtual machine and compiler, mostly regarding performance.

Those changes include, but are not limited to the following:

  • Added a grey-stack area for constants that doesn't rely on dynamic allocations. Because of the fundamental nature of a stack's behavior, certain allocations for constants, not references, can utilize a contiguous block of memory.
  • Branch jumps, referred to as a skip within the opcode enum, are have their destinations pre-computed during compilation. Minima's previously, and still does utilize a stack-based branching system chiefly because it's easy to compile and doesn't impose any significant performance limitations.
  • Added tail call optimizations for top-level procedures. Labels are ultimately still utilized, but Minima's compiler may forgo including a new scope/gc clean opcode.
  • Removed windows dependent code, and added a makefile for compiling with gcc on windows.

Also, it should be noted that a ton of other bugs were patched and fixed - pretty much every issue between #9 and #18 were fixed. And as always, if you notice any bugs or if you're so inclined to propose a feature - feel free to go and make a new issue.

Follow this installation guide if you require detailed installation instruction or if you're not running 64-bit windows.