Tuesday 2 July 2024 Clisp static site builder working ================================= Recently I started building a replacement for my static site builder, this time in Clisp. Like I wrote before [1], I wanted to play a bit with Clisp, and it is a nice project to gain more experience. The writing of the code was interrupted by a few camping trips, it is summer after all. Today I completed the project with building the functionality to create the RSS feed. Performance ----------- The performance of this new builder, compiled with Clisp, is not very convincing. Curious, I started it with the use of `time', which showed the building of the site takes 48 seconds. The idea is that the new builder replaces my previous created builder, which runs in SBCL. For comparison, I let this SBCL run also with the use of `time'. It showed the build takes 2,2 seconds. During the coding sessions, I tested parts of the code with the REPL, and I discovered that the Markdown to HTML conversion takes the most time. All other functionality operates at the blink of an eye. My guess is that the new builder will run significantly faster if compiled using SBCL. The SBCL compiler has a reputation for producing fast code and is threaded. Clisp is not that sophisticated. Both the prior and new builder create the entire website, including the tags page, individual tag pages, and RSS feed. The previous version built it so quickly that I didn't care to construct only the pages that were new or needed to be recreated. Of course, just 48 seconds the build the complete web site is still great, when compared with scripted site builders like ikiwiki. Package system -------------- I use a FreeBSD jail specific for working with Clisp. For the Clisp projects I use the Quicklisp local-projects mechanism. New projects are created with a simple quicklisp command. This creates a small directory tree for the project under ~/quicklisp/local-projects, including an asd-file with a `defsystem' command, README files, and a `src'-subdirectory. Using this method, I have created a few Common Lisp projects, and decided to adopt this workflow. I haven't set that up in the jail that I use for working with SBCL. This is a (small) project for the coming days, After that, I can discover how fast the new program will run when compiled with SBCL. Something to look forward to :) [1]: gopher://box.matto.nl/0/coding-in-elisp-and-common-lisp-enhances-your-skills-in-both.txt Last edited: $Date: 2024/07/02 21:04:07 $