Posted January 23, 2025 by screwtape
#common lisp #git #merge requests #arrokoth #asdf #lisp #interactive development
So, I found an old gitlab account I had from university, and opened a PR to add asdf https://github.com/fare/asdf/blob/master/doc/best_practices.md to https://mdhughes.tech's https://gitlab.com/mdhughes/arrokoth. I dunno if you caught the show, but the one point I repeated over and over was that Arrokoth in a diamond in the rough.
According to gitlab dot com, My changes were:
change the invocation to
``` sbcl --noinform --eval '(asdf:load-system :arrokoth)' --eval '(arrokoth:run)' ```
oops, I accidentally nuked those markdown block backticks. Those feels when merge rejected
I changed however it is the non-asdf load was working to asdf package-inferred-system
(uiop:define-package :arrokoth/arrokoth (:import-from :clx) (:mix :clim :clim-lisp :arrokoth/marklib :cl) (:export run) (:nicknames :arrokoth) ) (ql:quickload :mcclim)
Tbh I think that (:import-from :clx) should replace (ql:Quickload :mcclim), but I'm pretty sure it doesn't.
I did some housekeeping- not interning export symbols, which causes conflicts when systems that depend on this system are loaded I think,
and I changed the reference "imgs/" (ie a local dir named imgs/) to
(merge-pathnames "img/" (asdf:system-source-directory :arrokoth))
Oops, I meant to write #p"img/". Well, whatever, it doesn't matter.
This always refers to the directory arrokoth.asd was found in, so path/to/arrokoth/img/ in the end.
Similar, now it can either be referred to inside Arrokoth, though it might eventually become its own asdf system.