<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8">
</head>
<body>
<div style="font-family:sans-serif"><div style="white-space:normal">
<p dir="auto">On 6 Jun 2018, at 11:37, Mark Evenson wrote:</p>
</div>
<div style="white-space:normal"><blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px"><blockquote style="border-left:2px solid #777; color:#999; margin:0 0 5px; padding-left:5px; border-left-color:#999"><p dir="auto">On Jun 5, 2018, at 18:44, Robert Goldman <rpgoldman@sift.info> wrote:<br>
<br>
I have pushed the system fiveam-asdf, which supports integration between ASDF and the FIVEAM test library, to the contribs directory in the ASDF repo. Please have a look.<br>
<br>
Be warned! It is old, and not being broke, hasn't been fixed. It inappropriately is housed in the ASDF package and inappropriately exports extensions from that package.<br>
<br>
But I believe it's still useful as an example of how to raise conditions when the test operation goes wrong. Catching those exceptions can be used to cause a build to fail in a CI system, typically by running lisp in batch mode and having it exit with a nonzero error code if the test operation fails.<br>
</p>
</blockquote><p dir="auto">Robert,<br>
<br>
Thanks ever so much for [releasing the fiveam-asdf code][1].<br>
<br>
[1]: <a href="https://gitlab.common-lisp.net/asdf/asdf/tree/master/contrib/fiveam-asdf" style="color:#777">https://gitlab.common-lisp.net/asdf/asdf/tree/master/contrib/fiveam-asdf</a><br>
<br>
I seemingly misunderstand how to use the :CLASS argument to ASDF:DEFSYSTEM, as I cannot quite get your code to work.<br>
<br>
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?<br>
<br>
[2]: <a href="https://github.com/emotiq/asdf-test-harness/blob/master/eg/fiveam-asdf-example.asd" style="color:#777">https://github.com/emotiq/asdf-test-harness/blob/master/eg/fiveam-asdf-example.asd</a><br>
<br>
Various versions of ASDF-3.1.x (SBCL, CCL, ABCL) are failing with problems about symbols:<br>
<br>
Error while trying to load definition for system<br>
fiveam-asdf-example from pathname<br>
/Users/evenson/work/asdf-test-harness/eg/fiveam-asdf-example.asd:<br>
<br>
EXPORT ASDF/INTERFACE::FIVEAM-TESTER-SYSTEM causes<br>
name-conflicts in #<PACKAGE "ASDF/USER"> between the<br>
following symbols:<br>
ASDF/INTERFACE::FIVEAM-TESTER-SYSTEM,<br>
ASDF/USER::FIVEAM-TESTER-SYSTEM<br>
[Condition of type ASDF/FIND-SYSTEM:LOAD-SYSTEM-DEFINITION-ERROR]</p>
</blockquote></div>
<div style="white-space:normal">
<p dir="auto">I had problems like this, too -- it's because of the fact that when the <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">defsystem</code> form is first read, <em>before</em> the <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">:defsystem-depends-on</code> is loaded, the symbol named "FIVEAM-TESTER-SYSTEM" gets interned in <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">ASDF/USER</code> and then when it's later exported from <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">ASDF/INTERFACE</code> (used by <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">ASDF/USER</code>) it collides with the earlier-read symbol.</p>
<p dir="auto">I believe that the correct fix for this is to use any new symbols (like <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">fiveam-tester-system</code>) in the keyword package, so<br>
<code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7"><br>
:class :fiveam-tester-system<br>
</code><br>
and then when the <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">defsystem</code> form is processed <em>after</em> the defsystem dependencies (in this case, <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">fiveam-asdf</code>), ASDF will look for keyword symbols in the current package.</p>
<p dir="auto">Give that a try and see if it fixes your problem.</p>
<p dir="auto">We should check and see if the processing of keyword symbols is documented clearly in the manual. Possibly there should be a FAQ entry for this issue....</p>
<p dir="auto">Best,<br>
Robert</p>
</div>
</div>
</body>
</html>