Closed GrumpyOldGandalf closed 3 months ago
The Issue was fixed yesterday. See #97. It will be in ultralisp spinneret end of tommorow.
Ah, I didn't immediate recognize the problem from the title of #97 when I skimmed over the existing issues, but I should have. Sorry for the duplicate entry.
I don't think it's true to say serapeum no longer uses alexandria at all (at least not judging by the package.lisp for the project at the main branch), but it definitely isn't importing those two symbols anymore.
I will check out the commit that fixes it since I'm curious what exactly was provoking it. Thanks for letting me know it's already fixed! Should it be possible for me to clone it locally to get it to load today?
Oh I see why I didn't notice #97 - it's no longer open so didn't show up in the open list. duh. :)
OK I can confirm that checking out the latest spinneret at master into ~/common-lisp/ did the trick. I am now able to load spinneret. However, I do understand that after the change propagates to ultralisp I'm probably better off removing the local clone to stay current.
When attempting to load 'spinneret' from Quicklisp, I get the following consecutive error conditions:
I can, however, load serapeum independently.
So on the surface it looks like spinneret is expecting serapeum to provide
hash-table-keys
andalist-hash-table
symbols, but it isn't, and the rest of the issues are just results of that failure. Looking at the package.lisp definition in serapeum:https://github.com/ruricolist/serapeum/blob/master/package.lisp
It seems that serapeum is explicitly importing
plist-hash-table
andhash-table-values
from Alexandria, but notalist-hash-table
orhash-table-keys
but the compiler is trying to internalist-hash-table
andhash-table-keys
in the serapeum package. It also appears that SBCL package locking is a known problem with other symbols in serapeum, judging by the comment near the top of the package.lisp listing:So perhaps something about the way serapeum is loading those symbols that are defined in Alexandria is causing this package lock issue, and the solution is on the serapeum side. However, why it manifests only when loading spinneret for me is not clear.
This is preventing me from using another package that depends on spinneret, namely reblocks. I can't seem to produce it loading any other package besides spinneret at the moment, nor am I sure how to reproduce it - I'm on a deadline and am having to rule out using the packages I wanted to use because of this error.
I am also logging this issue in serapeum's GitHub repository, since
#+sb-package-locks (:lock t)
is specified in the package.lisp file so they should be aware this is causing problems loading a package that uses it.I am running on MacBook Pro M1 Max with SBCL via Roswell on Sonoma 14.5.