Subject: Re: bug#32770: Packaging SLIME/SWANK as Common Lisp library

From: Pierre Neidhardt <[email-masked]>
Date: Mon, 01 Oct 2018 15:53:50 +0200

Another issue, Andy, is with the new `normalize-dependency' function that adds
support for the dependency syntax as specified by the ASDF grammar.  I think
your approach is good but it fails for `jpl-queues` because it produces the
following .asd file in the store:

--8<---------------cut here---------------start------------->8---
(asdf:defsystem
  "jpl-queues"
  :class
  asdf/bundle:prebuilt-system
  :version
  "0.1"
  :depends-on
  ("bordeaux-threads" (:version "jpl-util" "0.2"))
  :components
  ((:compiled-file "jpl-queues--system")))

(progn (asdf/source-registry:ensure-source-registry)
       (setf (gethash
               "bordeaux-threads"
               asdf/source-registry:*source-registry*)
             #p
             "/gnu/store/67dhvxva7345r2xijz9yqp94s0fslrpn-sbcl-bordeaux-threads-0.8.5-1.354abb0/share/common-lisp/sbcl-bundle-systems/bordeaux-threads.asd"))
--8<---------------cut here---------------end--------------->8---

Note that jpl-util is missing from the registry link list.

It turns out that it fails because the match-lambda you've used to implement the
standard are case-sensitive, while the standard is case-insensitive.

Adn... jpl-queues uses ":VERSION" and not ":version" as you expected :(

I think the simple fix would be to make the two match-lambda case-insensitive
(both in generate-dependency-links and in make-asd-file).

What do you think?

-- 
Pierre Neidhardt
https://ambrevar.xyz/