MAKE function documentation -- example of use?
rpgoldman at sift.net
Sun Jan 31 22:47:16 UTC 2016
On 1/30/16 Jan 30 -6:22 PM, Faré wrote:
> On Sat, Jan 30, 2016 at 6:59 PM, Robert Goldman <rpgoldman at sift.net> wrote:
>> The make function description in the documentation is not described
>> well. It seems to imply that there is a default operation for each
>> system that the system developer can specify somehow, without saying
>> how. I see that there's a FIXME suggesting that we need to document the
>> BUILD-OPERATION option for DEFSYSTEM.
>> It would be nice to have an example that shows how MAKE is intended to
>> be used. Not a super-detailed example, just a quickie to show that this
>> is not a feature in search of a use....
>> Anyone used this?
> The idea is that some systems (primary or particularly secondary
> systems) can have a default operation specified by :build-operation
> that isn't load-op.
> Thus you can declare make targets for creating executables, printing
> documentation, etc.
> Admittedly, you could do the same with fake secondary systems that
> have an :in-order-to ((load-op (,build-operation ,real-target))). But
> I figured it would be nicer to have a more direct solution.
I have pushed a modification for BUILD-OPERATION, but I don't know what
to do about BUILD-PATHNAME:
1. Lots of operations don't /have/ an output pathname.
2. How is this build-pathname to be specified?
3. How does it interact with the build cache?
I see two "big picture" problems with BUILD-PATHNAME:
1. The ASDF operations could have arbitrary tailoring that they need.
It seems like it would be better to put in a way of making an operation
instance, with added slot fillers if that's what you want. Why give
preference to BUILD-PATHNAME?
2. BUILD-PATHNAME seems to violate your own guidelines for ASDF division
of labor. How does the system developer know where the user wants the
system's output dumped?
Since MAKE seems largely unused, I'm flagging it as experimental and
"use at your own risk." An interesting idea, but right now more a tool
in search of a user than a tool that users are looking for. Probably
partly because we don't yet have a lot of alternative operations
More information about the asdf-devel