Robert Goldman writes:
On 10/16/16 Oct 16 -1:31 AM, Mark Evenson wrote:
On 2016/9/11 17:09, Faré wrote:
1- While the trivial convenience function bundle-system was removed, the underlying functionality still exists. The function was ill-named legacy of dubious value. Do ABCL users actually use this function as such?
[Sorry for the late reply]
As far as I know, no one actively uses BUNDLE-SYSTEM for ABCL, instead using the [ASDF-JAR ABCL contrib][1], which allows a system to (optionally recursively) package all dependencies of an ASDF system into a single binary artifact (a jar file containing all the code).
If I understand things conceptually correctly, if their were a stable BUNDLE-SYSTEM, we would move the code for ASDF-JAR to use those interfaces.
So BUNDLE-SYSTEM has been restored, but the comment about its deprecation suggests that we should revisit its arglist to make it useful, if we are not going to remove it.
TBH, I don't understand what bundle-system is supposed to do, versus, for example LOAD-SYSTEM. There seem to be so many different ways to bundle and kinds of bundle that this function seems too ambiguous.
The function is not documented, and reading the code doesn't help me (as someone who doesn't routinely use bundle ops): it defers to DELIVER-ASD-OP, but that operation is documented as:
"produce an asd file for delivering the system as a single fasl"
which suggests that it makes a .asd file, and doesn't bundle anything at all.
So.... help?
Afaik bundle-system creates one fasl for a whole system (if monolithic - for a system and its dependencies). It may be loaded afterwards with simple load. What it lacks is a `:move-here' key parameter or a similar mechanism.
I wouldn't advise to use it, because of an arbitrary decision by Fare to break the API contract (by pushing for removal of `make-build' and `bundle-system' and promoting `program-op' and `deliver-asd-op') - you'll have your api broken with the next or one after next ASDF release.
Best regards, Daniel