Digging CLAST

Again, after ELS 2020, I went back to double check the actual status of some of my libraries (after an embarrassing nag by Marco Heisig :) who caught me sleeping).

I updated the documentation of CLAST, and checked that its current status is ok; the only change I had to make was to conform to the latest ASDF expectations for test systems. Of course, you may find many more bugs.

CLAST is a library that produces abstract syntax trees munging Common Lisp sources. To do so, it relies on CLtL2 environments, which, as we all know, are in a sorry state in many implementations. Yet, CLAST is usable, at least for people who are ... CLAZY enough to use it.



  1. Hey! I will check out your library. I recently used something called AGNOSTIC-LIZARD in a paper https://zenodo.org/record/3742759, but it has the "problem", as many walkers do, that different manifestation of the same atoms are EQ. Maybe your CLAST can give me a first-class object representing the macroexpanded form where I can attach different properties to different atoms that compose it.

    1. Yep, some quick experimentation with

      (clast:walk (clast:parse '(let ((x 3)) (+ x x))))

      seems to indicate it does what I want mostly. Pity I didn't know about it.

    2. Thank you. Joao.

      I will be very happy to work on the part beyond the "mostly" you mentioned in your post :) With you help, even better. If you want I can add you as developer.