Another work log :) I know I should write something useful but, hey, this writing kind of motivates me to actually do some real work.
So since my last post I have completed two “iterations” or two pages in my notepad.
I have continued to develop the little compiler. Type checking is kind of working, it is limited as the number of supported types is very low. In fact it is barely a language. I add a AST Tree walk interpreter plus we now have a sane error handling mechanism in the parser. Finally I integrated Catch2 for testing. I haven’t really written many tests yet but the next lump of work is to start to add them.
My approach to code is not great, I am not attempting to write something well engineered in fact it is deliberately sloppy or bad for want of a better word. As I don’t expect much of this code to live for long I am experimenting with not worrying about it and being confident that I can refactor, anythings that sticks around, into something robust. So if you look at the code and thing it is terrible, I agree. You might also notice a lot of it is easily replaceable, that’s by design.
I am continuing to read
Engineering a Compiler I read one section
per iteration and have just finished the Chapter on types. I will be
honest and say I didn’t enjoy it that much. I found much of it to be
fairly common sense. I guess I have written a few types checkers in
the past (although a long time ago) and was hoping the book would say
I had been doing it all wrong and here was a better approach. Alas
not. The book is well written and honestly I am more excited for the
discussion on the intermediate representation and compiler back
ends. The next chapter starts touching on this.
As happens occasionally, I did a fresh reinstall of Linux. I have switched from Ubuntu to XUbuntu. I was tempted my Manjaro but Phoronix had some not great performance comparisons that kind of put me off. Perhaps next time.
The nice thing is I can be back up and coding in less than 2 hours. Perhaps an indication the my daily workflow doesn’t use that many tools. This makes me a bit happy.
While the compiler project is the main task in each iteration I do a number of other things, like this blog post. There have have been other tasks that have slowly got me ready to start messing in the world of gamedev again. It is going to be SDL2 based in either C or C++. Probably just getting graphics up on the screen kind of stuff for a few iterations. Maybe leading to some very small games. It might all die out before I get there.
Anyway that just about covers my tech life at the moment. My final task on this iteration is to create all the tasks for the next iteration.