Will you please send me the example (with ancillary files), so that I can see exactly what's going wrong?

Most of my actual systems reverted to using

(asdf:load-system "fiveam-asdf")

in the .asd file, because I didn't know about the keyword trick, so I haven't tested it extensively.

Also, I tend not to use the ASDF/USER package, but instead be old school and make a package for each .asd file.

Best,
r

On 6 Jun 2018, at 13:45, Mark Evenson wrote:

On Jun 6, 2018, at 19:14, Robert Goldman rpgoldman@sift.info wrote:

[…]

If you get a chance, can you eyeball [my example code to try to use FIVEAM-ASDF][2] to tell me if that looks like the correct usage?

[2]: https://github.com/emotiq/asdf-test-harness/blob/master/eg/fiveam-asdf-example.asd

Various versions of ASDF-3.1.x (SBCL, CCL, ABCL) are failing with problems about symbols:

Error while trying to load definition for system
fiveam-asdf-example from pathname
/Users/evenson/work/asdf-test-harness/eg/fiveam-asdf-example.asd:

EXPORT ASDF/INTERFACE::FIVEAM-TESTER-SYSTEM causes
name-conflicts in #<PACKAGE "ASDF/USER"> between the
following symbols:
ASDF/INTERFACE::FIVEAM-TESTER-SYSTEM,
ASDF/USER::FIVEAM-TESTER-SYSTEM
[Condition of type ASDF/FIND-SYSTEM:LOAD-SYSTEM-DEFINITION-ERROR]

I had problems like this, too -- it's because of the fact that when the defsystem form is first read, before the :defsystem-depends-on is loaded, the symbol named "FIVEAM-TESTER-SYSTEM" gets interned in ASDF/USER and then when it's later exported from ASDF/INTERFACE (used by ASDF/USER) it collides with the earlier-read symbol.

I believe that the correct fix for this is to use any new symbols (like fiveam-tester-system) in the keyword package, so

:class :fiveam-tester-system

and then when the defsystem form is processed after the defsystem dependencies (in this case, fiveam-asdf), ASDF will look for keyword symbols in the current package.

Give that a try and see if it fixes your problem.

Unfortunately, it doesn’t help to specify a keyword, but one gets a new error:

Error while trying to load definition for system
asdf-test-harness-example from pathname
/Users/evenson/work/asdf-test-harness/eg/asdf-test-harness-example.asd:

The following symbols need to be imported to #<Package "ASDF/INTERFACE"> before they can be exported
from that package:
(:HARNESS-TEST):

I think with some futzing around with EVAL-WHEN around EXPORT statements we can get this to work.

I’m coming to the end of my day with a Common Lisp Foundation board meeting, so I will probably get back to this tomorrow.

best,
Mark

--
"A screaming comes across the sky. It has happened before but there is nothing
to compare to it now."