[asdf-devel] ECL tests failing on Mac OS X Lion [Re: asdf 2.23 released]

Faré fahree at gmail.com
Tue Jul 24 21:49:43 UTC 2012


> There have been fixes in ECL regarding asdf-ecl.
>
Oh, I now see that not all of them have made to the official ASDF:
http://ecls.git.sourceforge.net/git/gitweb.cgi?p=ecls/ecl;a=history;f=contrib/asdf/asdf-ecl.lisp;h=971ceb2196d887916293664b1af1c45103b4d069;hb=HEAD

You know, if you would just tell me when you make such fixes, I'd
merge them upstream faster.

Also, it would be nice if those changes that are absolutely necessary
for basic functionality go to asdf.lisp itself rather than
asdf-ecl.lisp -- so that it is possible for e.g. quicklisp to only
load asdf.lisp, then use it to load asdf-bundle, then be alright.

For instance, is this line supposed to be in asdf or in asdf-ecl ?
#+win32 (setf ext:*load-hooks* (append ext:*load-hooks* '(("asd" .
si::load-source))))
and to avoid multiple entries, shouldn't I make it this instead?
#+win32
(unless (assoc "asd" ext:*load-hooks* :test 'equal)
  (appendf ext:*load-hooks* '(("asd" . si::load-source))))

Also, this commit looks just wrong:
http://ecls.git.sourceforge.net/git/gitweb.cgi?p=ecls/ecl;a=commitdiff;h=8ea48c7035b7c4113f6f49916849dc88679f0261
Instead you should
(defclass compiled-file (component)
  ((type :initform "fas")))
or :initform nil if you want to force the user to specify the type, or
(defmethod source-file-type ((component compiled-file) (s module))
  (declare (ignorable s))
  (pathname-type (compile-file-pathname pathname)))
if you want to dynamically consult the results of compile-file-pathname.
Currently, the second clause of your "or" is just wrong.
I'm committing :initform nil in asdf because it's what looks most
compatible with what you have currently: anything that worked with
your current asdf-ecl should work that way, though it may not be a
nice API.

> I need to sit down and see
> how to push these back into asdf-bundle.
>
I pushed all these changes to asdf and asdf-bundle already.
I helps that I can apply patch to one file, then apply the rejects to
the next file.

> Most important is the fact that I do not want the equivalent of asdf-ecl to
> be removed from what ECL users get when loading ASDF. This means I have to
> figure out how to bundle both asdf-bundle and asdf together.
>
This makes total sense.
Could you have (require :asdf) do the equivalent of
(load "asdf.lisp")
(asdf:load-system :asdf-bundle)
?
Then that would make less code to maintain for more results.

Then again, if asdf-bundle is considered mature enough,
it could be merged back into asdf itself if there is strong demand
from ECL users.

> But finally I would like to use this email to push one idea through, which
> that asdf-ecl is not optional for ECL. I have explained this several times,
> but one more will not hurt.
>
Would the "load asdf then have asdf load asdf-bundle" solution automatically
when (require :asdf) is called satisfy you?

> ECL uses shared libraries to load compiled files. In what here is considered
> normal operation, thousand compiled files may be loaded via, say, quicklisp.
> That is a waste of time and resources and hurts ECL's performance. ASDF-ECL
> provides a load operation, ASDF:LOAD-FASL-OP which does this and it should
> be the default operation for ECL, not the one that ASDF provides.
>
I can imagine asdf hooks by which you could make that the default
for asdf:load-system as opposed to load-op.

> My problem right now is that ASDF is moving on the opposite direction to
> what it should be. Since asdf-ecl is no longer part of ASDF, it gives the
> impression of less support. I also have seen recommendations in IRC to not
> use asdf-ecl and just use normal asdf operation, and as I said, this is
> wrong for ECL.
>
Currently, asdf-ecl *is* still part of ASDF and supported
(except that since I have no test cases, I do not guarantee
anything but "it compiles and we make a best effort to fix bugs").
Indeed I'd like in the future to move it out of ASDF into asdf-bundle,
but I hope we can do that together in a way that minimizes
disruption for ECL users.

> Finally, I would like libraries such as quicklisp to use asdf:load-fasl-op
> with ECL, but if this is not sanctioned by ASDF, I doubt this will push
> through.
>
I'd like it to be sanctioned by ASDF.
Once again, what about a hook so load-system can do
something else than 'load-op ?
asdf-bundle could then do that for you.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
The kingly office is entitled to no respect. It was originally procured by the
highwayman's methods; it remains a perpetuated crime, can never be anything but
the symbol of a crime. It is no more entitled to respect than is the flag of
a pirate. — Mark Twain




More information about the asdf-devel mailing list