Progress on ZLisp has been slow but steady. Having made a commitment not to work on/start other projects by myself has been very helpful in keeping me on task. The thing is, this isn’t something I need. It isn’t something I necessarily expect to ever be of any use to me. And right now, frankly, there’s a lot of grunt work to do up front. I probably could avoid this by not manually writing a parser in C, but I knew that going in.
That’s kind of the point anyhow - I usually don’t finish things like this, specifically because after that initial burst of creative energy, it feels like the gain is disproportionately small compared to the effort required to finish the project (or, bring it to a point of usability. Very few pieces of software are ever truly finished). At the end of the day though, I’m more interested in building things than in the things themselves.
This was a weird realization to me when I first noticed it. Looking back, it’s always been there. I decided I wanted to write an operating system when I was 15 or 16. I don’t remember why. I’m not sure I had a reason. I’m still interested, and I’m not sure I have a reason now.
So too with this project. I’m building a lisp. Why? Because I want to. I’m also using it as an excuse to learn to commit to a project.
Okay, for real: status update
It parses some forms - lists, numbers, symbols, and some shorthands like
'foo
for (quote foo)
. I have a partial roadmap. I have some ideas in
my head as well about things to do down the line. I feel like I should
be writing more tests, instead of relying so much on interactive
testing. Story of my life.
The Makefile doesn’t deal with header files. I do know how to get
GNU make to do this, but haven’t bothered - for a small project
like this it’s not really worth the effort to get that working
correctly. cc *.c
would almost be enough of a build system for
this. I could probably write a whole blog post about build systems,
but I’ll stop here.