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