Sila Dev Log: Getting Back in the Saddle and Starting From Scratch With Haskell
Posted on 23rd of July 2025 | 499 wordsPlug: Follow the Sila development here. |
Some time ago I was quite actively working on my very own compiler project whenever I had some spare time. Unfortunately, due to personal time constraints this has been in the back-burner for some time and I haven’t really have time to work on it. Also part of the reason was also coding myself little bit into a corner. Mainly due to bad architecture.
Some time ago, I had some efforts in refactoring the still, fortunately, quite small code base, but even with this smaller size, it proved to be quite annoying to work with. Big part in this was the dynamic nature of Common Lisp, that at least in my personal experience, made this refactoring feel “unnecessarily” difficult.
Now I admit, this is mainly a skill issue and not a negative thing about the language. I still love the language and the dynamic nature is a great perk on it. I definitely won’t stop using Common Lisp at all, since I do use Opusmodus for composing and analyzing music, which all Common Lisp.
That being said, personally I feel that this nature is shining in other domains. Especially when working with compilers, having good and strong type system, also preferably statically typed, would be something that I would like to have.
Sure, Common Lisp has a strong typing on its own, and the type system generally speaking is good. Common Lisp also has projects such as Coalton which brings optional almost Haskell-like typing to Common Lisp. Optional in a sense that with Coalton you’re able to mix regular Common Lisp and Coalton as you please. Giving you the best of both worlds.
So this made me start eyeing into languages such as Haskell. Of course, due to its type system, but partly also due to personal needs and interests. Personal needs and interests in a sense that in my professional life I have ran into a situation where I need Haskell, so naturally I wanted to become better at it. Which is fun also due to the fact, while I’m not a beginner in Haskell, every single line of Haskell I’ve written has been pro bono just out of personal interest.
Haskell, and other ML languages, of course has a long history in compiler writing, being quite common choice in that world. Not saying that Common Lisp would be worse option in any way. Old Yale Haskell compiler for example was written in Common Lisp and also the famous SBCL being another great example of state of the art compiler written in Common Lisp. The static, pure and rigorous typing system of Haskell also offers a nice shift in the design of architecture, which hopefully will lead to a more robust and formally sound architecture.
So I guess this a nice fresh start but also a continuation, personal reboot in a sense and I’m quite excited to see where it leads. I plan to return to regular updates regarding the compiler so people interested can follow the progress.
NB: If you want to read earlier posts of this dev log, head over here. |