RCC | ruby compiler compilerJust a quick note to say there’s been no new progress. 70 hours of paying work last week. Until that lets up (later this week, I hope), I won’t be getting any RCC work done.
0.25 seconds. Yay! Last night I moved the lexical processing out of the main parser and into a mini parser of its own. It still works the same way, but dispenses with the main parser’s overhead. I still have some loose ends to tie up, but that alone pulled the test run from 1.37 seconds down [...]
Well, the interpreter is interpreting again, with the integrated lexer, and runs to completion. Yay! Unfortunately, it is now taking 1.37 seconds to process a source file it used to do in 0.17 seconds. Which SUCKS. I have some ideas on how to improve the situation, but they will have to wait for another day . . . . G’night.
Well, I’ve committed the new integrated lexer/parser to Subversion. The state generation time has increased between 20 and 50% over the previous version (depending on which runs you compare), but the state tables do look correct for little things like gateway expressions and discard processing, so I’ll live with it. And I’m pretty sure I [...]
Well, this latest plan to integrate lexing and parsing has proven to me that I’m not nearly as smart as I like to think I am. However, I think I’m over the hump. I bloody well hope. In redesigning stuff, I was forced to deal with a number of design flaws that I’d kind of hoped [...]
Grrrr. Integrating backtracking and error recovery has proven much more difficult than I had expected. :-( The existing error recovery code works at the syntactic level, but in order to behave correctly in a backtracking context, it has to effect changes at the lexical level, as syntactic changes don’t survive a branch change. Unfortunately, [...]
Well, between real life obligations and several design flaws, I’m about a week behind my last schedule. I’ve completely rewritten the backtracking and discard management systems, and I think they are both now mostly correct. I’ve got to take a final (I hope) pass on error recovery, then do code generation, and out the door [...]
Error recovery is working. Haven’t tested it much, and I know there are some bugs, but the code that was working before the rewrite is working again now. Release this weekend is seeming likely. Finally.
RCC just loaded a real grammar file (ie. not its own), built a parser from it (using the same machinery it used to build its own parser), and read and correctly processed a program with it. Yay!
Well, another week, more progress. The AST transformation system has been completely redesigned (again), is implemented, and has had some basic testing. This is a critical step in getting RCC processing grammars, as the internal machinery expects the parsed grammar to be in a transformed state. I am now working through a shake-down run of parsing [...]