Skip to content

Releases: TheRealMichaelWang/minima

Various Performance-Related Improvements

30 Jul 20:33
efae0e2
Compare
Choose a tag to compare

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.

Operator Overloading

11 Jul 22:54
3df03e0
Compare
Choose a tag to compare

Changes in this Release

  • Added operator overloading for records
  • Created a separate area in memory that doesn't require dynamic allocation, thereby dramatically increasing performance.
  • Added hashset.min to the STL
  • Added map.min to the STL

Inheritance

26 Jun 04:34
2fe49b9
Compare
Choose a tag to compare
Merge pull request #5 from TheRealMichaelWang/inheritance

Inheritance

Records and Objects

15 Jun 00:30
2ee4151
Compare
Choose a tag to compare

Minima, version 0.1.1

The biggest additions in this update revolve around records (Minima's equivalent of C structs, although they support much much more). You can read more about records here. Other major changes include major bug fixes, most notably several involving the garbage collector.

Aside from updates to the Minima interpreter, a small somewhat functional standard library has been added - though, at present, it's still in its's testing phase. To utilize the standard library, which includes a linked list for dynamically sized collections, unzip stl.zip and place it's contents in the same directory as minima.exe. Use the include keyword (ie include "list.min") to include the library.

First Workable Release

09 Jun 00:39
4418ed9
Compare
Choose a tag to compare
Pre-release
0.1

Add files via upload