On 18 Mar 2021, at 11:59, Didier Verna wrote:

Hi,

I would like to remove some old workaround code from a couple of
systems, wrt to ASDF 3.1.4 bugs (see below). Is it safe to do so now, or
are these "bugs" still lurking around?

The relevant parts are as follows:

:defsystem-depends-on
(:net.didierverna.clon.setup/termio
#+sbcl ;; BUG in ASDF 3.1.4: d-d-o can't deal dependency expanding to NIL
(:feature :sbcl (:require :sb-grovel))
#+(or allegro clisp lispworks)
(:feature (:or :allegro :clisp :lispworks) :cffi-grovel))

Looking at the test suite, I see this test specifically aimed to check this:

(eval `(def-test-system test-defsystem-depends-on-4
         :defsystem-depends-on ((:feature ,*newsym* "test-defsystem-depends-on-3"))))

(assert (find-system "test-defsystem-depends-on-4"))

and

:components (;; bug in ASDF 3.1.4: cannot deal with conditionally defined
;; component class!
#+sbcl (sb-grovel:grovel-constants-file "sbcl/constants"
:package :net.didierverna.clon :if-feature :sbcl)
#+(or allegro clisp lispworks)
(:cffi-grovel-file "cffi/constants"
:if-feature (:or :allegro :clisp :lispworks))

I don't understand this well enough to know whether it's fixed or not. What's a minimum working example? Is sb-grovel:grovel-constants-file a component class? Is this issue with conditionally defined component class, or is this a package issue? Can't tell. Can you offer an alternative that wouldn't involve having to pull over a lot of systems?

This one seems complex enough -- and so much trouble to make a MWE -- that maybe you want to just change it and see if it breaks.

Thank you!

--
¡En Seguida! -- New album: https://www.didierverna.com/records/en-seguida.php
Available on all digital platforms now!

Lisp, Jazz, Aïkido: http://www.didierverna.info

Robert P. Goldman
Research Fellow
Smart Information Flow Technologies (d/b/a SIFT, LLC)

319 N. First Ave., Suite 400
Minneapolis, MN 55401

Voice: (612) 326-3934
Email: rpgoldman@SIFT.net