The recent addition of the asdf:ensure-parsed-mvn call in the RESOLVE defmethod form has the problem that the ensure-parsed-mvn symbol isn’t exported at the time the defmethod is compiled. Assuming that the intended behavior of export is not to change things at compile time, we need to wrap the export call in an appropriate eval-when form. The following seems to fix things for me:
diff --git i/contrib/abcl-asdf/abcl-asdf.lisp w/contrib/abcl-asdf/abcl-asdf.lisp index 401487b..b96457e 100644 --- i/contrib/abcl-asdf/abcl-asdf.lisp +++ w/contrib/abcl-asdf/abcl-asdf.lisp @@ -85,8 +85,9 @@ (defun ensure-parsed-mvn (component) (setf path (format nil "~A/~A/~A" group-id artifact-id version)))) component))
-(export `(mvn iri ensure-parsed-mvn group-id artifact-id version) - 'asdf) +(eval-when (:compile-toplevel :load-toplevel :execute) + (export `(mvn iri ensure-parsed-mvn group-id artifact-id version) + 'asdf))
(defmethod source-file-type ((component iri) (system system)) nil)
On 2/21/14, 15:43, Cyrus Harmon wrote:
The recent addition of the asdf:ensure-parsed-mvn call in the RESOLVE defmethod form has the problem that the ensure-parsed-mvn symbol isn’t exported at the time the defmethod is compiled. Assuming that the intended behavior of export is not to change things at compile time, we need to wrap the export call in an appropriate eval-when form. The following seems to fix things for me:
Your diagnosis sounds correct, so I have applied your patch as [r14629][].
[r14629]: http://abcl.org/trac/changeset/14629
I naively wonder why I didn't run into problems with this without your EVAL-WHEN clause…
I’m guessing that you didn’t run into this problem because you had a fasl lying around that had this exported. To test that, you could revert this, delete your fasls and load abcl-asdf and see if it occurs, but I’m not sure it’s worth it.
I believe there are also some other package wierdnesses having to do with deleting packages, but that’s another issue.
On Feb 21, 2014, at 10:15 AM, Mark Evenson evenson@panix.com wrote:
On 2/21/14, 15:43, Cyrus Harmon wrote:
The recent addition of the asdf:ensure-parsed-mvn call in the RESOLVE defmethod form has the problem that the ensure-parsed-mvn symbol isn’t exported at the time the defmethod is compiled. Assuming that the intended behavior of export is not to change things at compile time, we need to wrap the export call in an appropriate eval-when form. The following seems to fix things for me:
Your diagnosis sounds correct, so I have applied your patch as [r14629][].
I naively wonder why I didn't run into problems with this without your EVAL-WHEN clause…
-- "A screaming comes across the sky. It has happened before, but there is nothing to compare to it now."
armedbear-devel@common-lisp.net