Yeah. Scatterbrained describes it.
I think part of the problem is how I go about writing software. I find that when I’m working on a project, I have too many things on my mind at once. For example, in my compiler, I tried writing completely top-down, doing all of the tokenizing (I’m doing it by hand for practice) at once and then trying to compile it. Now I have a goal of compiling and running my code after every few lines. I set things up so this can be done quickly (with unit tests). So far it’s been going much better.
I wrote something in Perl last night that cracks an Excel file open using the same ideas. But instead of unit tests, since it is a simple script I just had debugging messages for the latest things (in the order in which the script runs). I didn’t feel even a little bit confused about how the library worked as I was using it, even though the documentation wasn’t very straightforward.
Thank you for the words of encouragement. Your JIT Compiler seems interesting, especially the fact that you’re using it for real work. And the fact you’ve got it done :)