[asdf-devel] ASDF-BUNDLE breaks ECL (and a rant about related stuff)

Faré fahree at gmail.com
Mon May 13 13:17:46 UTC 2013


Dear Juanjo,

my apologies for breaking program-op on ECL for programs
that didn't explicit depends-on asdf, asdf-driver or uiop,
which used to work earlier, back when
asdf-bundle's program-op used to be an ECL-only feature.

This regression was introduced somewhere in the 2.26.x rewrite,
and is hopefully fixed in asdf 2.33.10. Please test.
This is a somewhat more elaborate version of your patch,
possibly overengineered: if not for initialization functions
causing the whole shebang to be pulled in, it might have been enough
to insert the sys:asdf.lib at the *end* of the link.

> The reason is that all those executables (stupidly in my opinion) have
> dependencies on libraries that should now be linked with the program. In
> particular, ASDF itself, UIOP, etc.
>
> Why is this so? Why do I have to link 800 [Kb] of library (ASDF and all its
> components) with every executable instead of abstracting a simpler load
> process where ASDF is not there unless, of course, a dependency on it is
> declared?
>
While it isn't impossible to make that work, that would have made it
singularly more difficult to achieve, all the more in a portable way,
especially so while preserving all the image life-cycle features:
*image-restore-hook* *image-prelude* *image-entry-point*
*image-postlude* *image-dump-hook*

It was hell enough to implement and debug this program-op feature so it
will work portably on all of eight implementations (untested on mkcl),
and what more support these features. I admit that saving 800kb
on a minority of programs for which that matters was never a priority.

But now that it's working, ASDF could be made to work better
with respect to program-op actually requiring uiop or not:
1- hooks could be provided to explicitly enable or disable
  such dependendency for program-op, and let the asdf and/or the user
  either bypass uiop or provide a "lite" replacement.
2- more useful error messages could be provided when the configuration
  is unusable.
3- the detection of whether uiop or asdf is actually needed
  could be more clever

I am probably not going to write any such feature,
as I'm stepping away from ASDF maintainership,
but I (and/or my successor) will accept patches.

Thanks a lot for finding the bug before I released 3.0.0.
Sometimes, procrastination works.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Comparing oneself with Galileo or Einstein is certainly good for the ego —
provided one refrains from going into too much detail.  — John McCarthy



More information about the asdf-devel mailing list