Where we left off last time, we'd just barely scratched the surface of what it will take to self-host the
This time we'll keep digging into that. I will skip or gloss over fixes to some bugs etc., and focus mostly on the bits that are filling ...
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 ...
Where we left off, we had a simple but tolerable register allocator. But as it happens, for now at least the code will not often get all that huge benefits from it, for the simple reason that a huge amount of a typical Ruby application consists ...
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, ...