On Wed, Sep 22, 2010 at 4:35 PM, Robert Goldman <rpgoldman@sift.info> wrote:
On 9/22/10 Sep 22 -5:26 AM, Juan Jose Garcia-Ripoll wrote:> * The bootstrapping code can be different for a shipped asdf (one that
> comes with the implementation) and for the asdf that is loaded by users.
> This can be activated by an implementation by choosing whether to use
> defpackage.lisp or something else. Doing this with the monolithic
> asfd.lisp is a hell.

Can you explain this?  I don't really get it.  Presumably any
implementation that wants to distribute ASDF can add its own "after
hooks" in its own private copy.  I'm clearly missing something here...

I am not only talking about hooks but about to-come features, such as dumping "executables", or creating monolithic fasl (a fasl made of multiple components). This can be done using separate files for each implementation, much like swank does, and requires implementation-dependent code which would be a nightmare to code via #+/#-. Same thing goes for the execution of commands via run-program or the like, or handling of configuration files -- to which implementations might wish to hook.
 
I see some of your points, but I'd encourage you to carefully consider
what I think is the core of Faré's argument:  the cost/benefit tradeoff.

Nobody has really shown me _any_ cost, except that of having to open one or multiple files. Maintainance of each feature (compile-op, load-op, traverse, shell operations, configuration files) must and has to become independent. Otherwise something is broken in the development.

Also this will incur a substantial cost in terms of testing hours, which
are also strictly finite (although larger than the development hours
supply).

No. Why? I mean, the separate components are bundled into a single asdf.lisp and this process is automated (make -f GNUmakefile asdf.lisp). There is no new testing burden. I am just advocating for some common sense in the ASDF codebase, organizing it in a readable and separated way.

Robert, do you realize I already did the job for you? It is not is as if I was asking people here to do anything
   http://tream.dreamhosters.com/git/?p=lisp/asdf-decl.git&a=summary
 
Finally, this seems to make more work for implementation maintainers
that wish to bundle ASDF, although perhaps that could be mitigated...

How? There is no burden. asdf.lisp will be built for them. If they _really_ want to add features, they can. I am thinking of ECL: I *do* want to have features built in ASDF.
 
At the end of the day, of course, these are your hours.  If you think
it's important enough, there's nobody stopping you from forking the repo
and doing this work.  But as you've said yourself, you are primarily the
ECL maintainer.  Is this the location where you will get the most value
from your development hours?

Hmm? I do not get the point of the whole discussion. The splitting _has_ been done, as shown before. I do not have to spend any more hours doing so. However your question generally applies to the whole purpose of getting involve in ASDF maintenance.

Juanjo

--
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com