As mentioned last time, this time around, I've first landed a number of changes that will make the parser able to parse the entire compiler (whether or not it parses it correctly or not remains to be seen, and is outside the scope).
You can find these ...
It took me two months to push this out, but I promise it doesn't mean I'm about to stop publishing these again anytime soon. I intend to shorten my "lead time" further again, so I'm hoping to publish the next one in 2-3 weeks time.
We saw in some ...
Unit testing code generation poses some particular challenges because so many things can go wrong, and they can go wrong in all kinds of horrible ways that makes them extremely nasty to track down,
I promised to get a second part out in December somewhere, and it seems like I only barely made it. I'm still hoping to push two out in January, but that's contingent on actually getting time to finish the next one too. But there'll be at least one in January, sometimes ...
Where we left off last time, we had everything but comparison operators and
! sorted out. When I started replacing
runtime.c, I expected to do it in one go, as I've mentioned, but as you have seen there was quite a bit to ...
Where we left off last time, we transform numbers into
Fixnum objects, and turn
+ and other operators into method calls. In theory at least
- we haven't actually tested that functionality properly in practice.
(or small enough integers into
Fixnum's, at least)
As a recap from last time, where we left off we can parse our new, completely useless and primitive
FixNum classes, but our numbers aren't actually members of those classes, ...
As mentioned last time, over the previous parts I at some point brutally broke our built in operators. I did so by actually implementing proper method calls.
It also made the compiler largely unusuable, and went unnoticed because, well, the compiler is still largely unusable....