Faré wrote:
Well, but consider this hypothetical person who doesn't know what's going to happen and who isn't familiar with ASDF already.
S/he types (asdf:make "foo") and *either* gets foo loaded into his/her lisp image or.... an executable file gets dropped onto his/her disk?
Whichever makes sense for the given system, and that's the feature: the user doesn't have to know which newfangled operation the system is using, that will do the Right Thing™. Once again, the person who knows the Right Thing™ is the system author, so they get to specify the operation via :build-operation. The user calls (asdf:build "foo") or (asdf:make "foo"), and the Right Thing™ happens. The user justs want to use the system and gets it to do its thing.
I still don't follow this claim. Consider my example again. I'm the user. I don't know whether (MAKE "FOO-SYSTEM") is going to load FOO-SYSTEM into my current lisp image or dump a standalone executable.
So I type (MAKE "FOO-SYSTEM"). In what sense do I know how to get it to do its thing now? I don't know whether I should be exiting lisp and returning to the shell to invoke an executable, or whether I should be calling some API functions.
I apologize if I seem dim, but I don't see how this hypothetical MAKE function actually creates more simplicity than confusion.
The use case I *do* understand is one where, for example, the system provider knows that to make the system usable I should *both* do LOAD-SYSTEM *and* (OOS 'DOC-OP <SYSTEM>) because the system provider knows that the system has a manual, which requires formatting; something the user cannot be expected to know.
I'm not going to kick and scream too much about this since, as I said, I don't think it's actively harmful. But I am not ready to make the end-to-end modifications to the ASDF manual required to substitute MAKE for LOAD-SYSTEM, and I'm unconvinced that this is the Right Thing.
I will therefore leave this on the BUILD-OP topic branch until after the next release.