One of the great "joys" of trying to compile Ruby is the level of dynamism. Especially when trying to make the compiler as static as possible.
In which we continue the circuitous approach towards parsing s-expressions.
Eigenclasses, or meta-classes in Ruby are effectively regular classes that gets "injected" into the inheritance chain, but hidden...
The main reason for handling re-opening of class-definitions at this stage, is for a simple reason:
We're going to attack eigenclasses soon, and being able to handle class re-opening makes that a lot simpler in addition to being needed in and of itself too.
Part of the reason ...
This part is going to be a hodge-podge of changes, as I walk through a good chunk of changes needed to prepare to compile the tokenization code in tokenizer.rb
, and improves what we can handle from scanner.rb
.
I'm going to start by briefly talking about this ...
Next up in my attempt to self-host parts of the parser, is Scanner#expect
. This was no fun, and this part again recounts a long string of attempts at addressing relatively small annoying issues that will seem disjoint and probably confusing, but possibly useful in showing some of the debugging ...
One of the big elephants sauntering around the room for a long time has been the issue of how to handle the specifics of how Ruby handles nil
, true
and false
. To a lesser extent this issue also affects numbers, but it is those ...
I've been lazy again. Just today I realized that not only has it been two months since last post, but I still have one more post queued than I thought. I hope to clean up the next post in 2-3 weeks time, and another one in the following 2-3 weeks. I've ...
(I will be at the Brighton Ruby Conference on Monday July 20th if you're attending and follow my series or just want to talk about Ruby in general, I'm happy to have a chat)
First order of business today is to get rid of this abomination from last ...