The Goal of the Next Release

Due to the school year I have been pretty silent on MufiZ as I have had no time to work on it during that period, now that its spring break for me, I have more time to work on this, and I am proud to say this next release’s goal is to not add that much new features!
Wait…what? The goal of this is to cleanup our codebase, and fix functionality into the language, and increase our test suite to be able to catch more and more bugs in our language.
For example did you know MufiZ v0.8.0 can’t even run this program:
class Zoo {
init() {
self.aardvark = 1;
self.baboon = 1;
self.cat = 1;
self.donkey = 1;
self.elephant = 1;
self.fox = 1;
}
ant() { return self.aardvark; }
banana() { return self.baboon; }
tuna() { return self.cat; }
hay() { return self.donkey; }
grass() { return self.elephant; }
mouse() { return self.fox; }
}
var zoo = Zoo();
var sum = 0;
var start = now();
while (sum < 100000000) {
sum = sum + zoo.ant()
+ zoo.banana()
+ zoo.tuna()
+ zoo.hay()
+ zoo.grass()
+ zoo.mouse();
}
print now() - start;
print sum;
Because we had an issue on how self was being initialized in the Virtual Machine, it would just crash.
In this release, we are not only cleaning up the language and fixing it, we also are removing a lot of our C dependence. What does that mean in practice, it means that currently I have been able to keep the language using realloc, and free but it no longer points to malloc in the C standard library, but instead is a wrapper to use Zig’s General Purpose Allocator.
I also hope to be able to remove the use of C pointers in the language, and be able to just use Zig’s native types. This release may not include new features, but it will ease development and hopefully reduce the amount of cruff in the language.






