Zenhack.net

ZLisp: Status Update

25 May 2014

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.