Happy new year! It is a new year! So this will be a year in review for this project. First thing to get is the number of commits I did in 2019.

There are 2,662 commits that I made in 2019. Which is really nice, I put much work into this project. I know March, April, May, and June I had put in alot of work because I was laid off at the start of March so this definitely does play a part. Wheras in 2018 I was a employed throughout the entire year!

I did not do any releases in 2019, I know there was a plan to release in four months after 0.2.0 but that was not going to happen.

I am also glad that I have descriptive commits for everything.


This is the month that was right after 0.2.0 was released. I started the initial work on SummerCoat which has taken pretty much the entire year and more to develop, it is a really complex system and it really shows. From this run I had the initial SCRF compiler which would eventually be thrown out and which would result in the current compiler that I wrote. I even had a base project setup for RatufaCoat at the middle of January. I also performed some refactoring of the compiler stuff as well making it cleaner because it did get a bit messy. I did get method processing put in but that was later split apart because wow it was complex. Also added a bunch of new tests and implemented parts of the class library since they were needed for the VM to function. I figured at this time that I should write a compiler which is not all that optimized to keep it simpler, although today I do have basic optimation in place. For CircleCI I put in JUnit reporting for the tests that ran which has been around for awhile now. Also for the tests that run within the VM, the profiler snapshots are stored as well so that way I can determine how fast stuff has been running accordingly. I defined an API level for 0.4.0 but eventually later in the year I determined that the API stuff is too complex, so I opted for the much simpler system call stuff. I added system properties support for SpringCoat since I needed to enable or disable debugging.


More work was done with SCRF. Added the ability to launch tasks with system properties and such. SummerCoat VM went through a slight refactor as well. Some of the stuff that I worked on this month have somewhat survived to the end of the year such as the stack map stuff which worked well. I mostly just implemented a ton of methods. Not much here this month.


This month was very rough for me because I had gotten laid off at the start of the month and it was devastating to me. I pretty much still worked on this project because it helped me get through the rough times and it also acted as a resume for me as well. I was in and out of depression so I did not exactly work on this every single day as I was job hunting as well.

One big thing I did was remove tool-scrf and put it in tool-classfile and built it up from that. I know in 2020 I will be pretty much splitting that back out and writing a far more streamlined compiler which hopefully is faster and more efficient as well. This is where the MinimizedClassFile started from so it has quite been around. It is still around and it has always been improving from this point. SummerCoat had this class library kind of thing that basically cached single classes and such I believe in memory. I know with the compiler refactoring I brought stuff back in from SCRF since it still worked just fine. For the class file stuff I implemented more things that were missing such as the exception handler. I had all of the narrow and long stuff which was a bit confusing, I know later this eventually was removed because it was just impossible to handle while keeping things simpler. I know today that everything is 32-bit for the most part. I also worked on the graphics stuff too, which is interesting. This was even the advanced graphics stuff. This graphics stuff needs to be refactored but that will get done eventually. I also worked on Squirrel Quarrel when it was a Starcraft clone still, but now today it is more of its own original game that I have planned. You could kind of play it and command units I think and such. For graphics I added a serializer so that it could be done by the host VM, being faster. I may do that again for SummerCoat although it would be a bit more difficult. This was also when I was more going twords https://squirreljme.cc/ instead of my standard domain that I use. I also am actually glad the complex type handling was removed from SummerCoat. Even reference queues and such were their own instructions, but now that is different.


At the start of this month I did some fixing of the class parser. I did lots more compiler work. More library methods were implemented.

I renamed my Twitter and used my MultiPhasicApps handle for SquirrelJME stuff, which actually helped me much.

I worked on the graphics stuff. Implemented some base record store stuff which was nice. Refactored XPM and PNG image loading. Added a Null Audio system.

Lots of more compiler work.

Later in the month I completely refactored SummerCoat, it pretty much should be the same as it is today just more worked on.

Also corrected testing stuff.

At the end of the month I put a bunch of work into the fonts too, I did so much with them! I actually still need to finish the symbol fonts a bunch too.

Also kinda glad I do not have class IDs and such today as well.


More font stuff, yay!

This month I added the concept of BootRAM and this has actually simplified things making things easier to load and such.

Added some more implementations to methods as well and HTTP support!

Also big refactor of the testing framework, which ended up going rather nicely. I also added my first sorting algorithm which was shell sort. But I guess now there is just block sort which does nothing? Oh wait no there is ShellSort.


Kinda getting back into library development after doing this review, gets me excited some.


Actually the ROM does not build for the TestDupXTwoJI test, it cannot find a shuffle state. So I am assuming that it is wrong.


Oh wow, I forgot the second form of DUP_X2, good thing for tests!


Definitely going to need the tests for the other DUP instructions, but I have an issue with a key on my keyboard sticking I need to fix.