Of course, I forgot to attach the patch. Here it is. If you think it's satisfactory, I can push.
Hopefully, the added test will convince you that it is all working.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org To converse at the distance of the Indes by means of sympathetic contrivances may be as natural to future times as to us is a literary correspondence. — Joseph Glanvill, 1661
On Thu, Mar 13, 2014 at 7:11 PM, Faré fahree@gmail.com wrote:
On Thu, Mar 13, 2014 at 4:24 PM, Robert P. Goldman rpgoldman@sift.info wrote:
For the record, it's not that I'm objecting to the build-operation idea. I'm sorry if you got that idea, and felt that you had to spend a lot of time convincing me!
My concern was a much more limited one: that the word "build" doesn't properly convey what is going to happen.
Well, ASDF itself has long been described as a build system or build tool (including in our ILC 2010 article), just like make, ant, etc. See also Wikipedia pages for each of these. What do these programs do? They build. I don't love the word, but I don't know a better one.
I believe that the operation is "prepare the direct object system for me to use it."
Here are some suggestion:
prepare (shorthand: p) update (shorthand: u) build (shorthand: b) build-and-update (shorthand: bu) build-and-maintain (shorthand: bnm, or |bnm,|, which perfectly fits the asdf keyboard pattern) build-operation or build-op (shorthand: bo, or bop) default-operation (shorthand: do, shadowing cl:do, or dop) operate 'build-op (shorthand: op, or ob) operate-default (shorthand: od) ok (shorthand: o) ensure-component-is-built-and-update-current-image-for-component (shorthand: ecibaucifc)
If we pick the latter, we have utterly failed the user. Actually, I already have failed the user by naming the function build-system, which is too long a name, and deceiving because it's not just for systems: you can (build-system '("system" "module" "component")) to build a targetted component. Since obviously no one is using it yet, I propose we remove it from 3.1.
I don't think "build" is the right word for this, but I am happy to see some sort of "do the default operation," as long as we can come up with a name that conveys the meaning to the user.
I think "build" in its normal sense has a connotation much closer to the things that bundle-op or save-image-op would do.
I don't think it's right, only that it's the rightest available so far.
PS: here is a second patch on top of the former one, that makes string designators for operations, so that :build-operation "foo::op" works. Added a suitable test for defsystem-depends-on to the test suite. Without this feature, build-op is much less useful.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org The Party will yield power when and only when it is in the best interest of its members. Don't fight the Party: buy It with the profits of Liberty.