Re: Maven and ABCL
Mark Evenson <[email protected]>
| Newsgroups | gmane.editors.j.devel |
|---|---|
| Message-ID | <925a1887-9f2d-5e05-718d-a7bc137d6134__34954.8048725866$1491650439$gmane$org@panix.com> |
On 4/8/17 01:15, Alan Ruttenberg wrote: > Hi Robert, > > If you are familiar with the architecture, perhaps you can give me some > hints where to intervene. The behavior I want is: > > Assume I load a system at top-level and sprinkled in it or its dependencies > there are a number of :mvn-modules as described earlier. > During preparation, the dependencies, exclusions, and managed-dependencies > are collected at the level of the top-level system. > Then, before any lisp or other files are loaded a single call is made to > compute the combined maven dependencies and they are resolved and added to > the classpath. > Finally the rest of the load goes as it usually does, although the > :mvn-module components compile and loads are no-ops since their work has > already been done up-front. The architecture of ASDF can be likened to that of the [ship of Theseus][1], being replaced as it sails the seas of compatibility; Robert is just the latest in the line of captains who have attempted to navigate its passage. [1]: https://en.wikipedia.org/wiki/Ship_of_Theseus It was suggested at [ELS 2017][2], that while ASDF has a firm abstraction at the upper level in the CLOS abstraction and a recently concertized cross-implementation compatibility layer in UIOP, it may be said to be missing large swathes of reusable abstraction to bridge the two. [2]: urn:"Loading Multiple Versions of an ASDF System in the Same Lisp Image"/"10th European Lisp Symposium Session: Session I: Tools"/"Vsevolod Domkin". I think the first step forward will be recognizing that the current [ABCL-ASDF:RESOLVE][3] machinery works on an "internal state", opaque to ASDF for resolution. What is needed is to somehow explicitly return all the dependencies in a format that the properly overloaded ASDF CLOS machinery can understand. [3]: https://gitlab.common-lisp.net/abcl/abcl/blob/master/contrib/abcl-asdf/abcl-asdf.lisp -- "A screaming comes across the sky. It has happened before, but there is nothing to compare to it now."