[asdf-devel] patch system-source-file
Robert Goldman
rpgoldman at sift.info
Tue Jul 14 17:35:43 UTC 2009
james anderson wrote:
>
> On 2009-07-14, at 18:56 , Robert Goldman wrote:
>
>> james anderson wrote:
>>> hello;
>>>
>>> [...]
>>
>> This is a good description of the general problem, but it overstates the
>> problem here. Nobody should be setting these slots after they are set
>> (or not) in the defsystem form, so a slot-unbound error will not be
>> difficult to resolve. However, it /might/ create a cumbersome nuisance
>> for code that wishes to process asdf components.
>
> my experience is that you can change "might" to "did".
>
>>
>> [...]
>>
>>>
>>> 4. if one would like to see the code at the version which constitutes
>>> the current approach to this issue, which revision should one pull?
>>
>> I don't have a good answer for this, sorry.
>>
>> I think that James clearly states the issues. I propose we just try to
>> come to consensus on something like the following:
>>
>> 1. We specify which of the system string initargs are actually optional.
>>
>> then either
>>
>> 2a. We specify these as being of type string and specify that they take
>> "" as a default. Supplying NIL would be a type error. For the benefit
>> of non-type-checking lisps, we could add :after methods on
>> initialize-instance to reject non-string values.
>>
>> 2b. We specify that the type is (or null string) because we want to be
>> able to distinguish unsupplied from explicitly empty.
>>
>>
>> These both seem reasonable alternatives, as long as we state one of them
>> clearly.
>>
>> If someone will express a clear preference that isn't shouted down, I'd
>> be happy to provide help either documenting or coding up support.
>
> i propose, 2b iff some operator depends on the distinction. otherwise 2a.
Here are the initargs from which we have to choose:
:licence :license :maintainer :author :long-description :description
:default-component-class :if-component-dep-fails :components :properties
:pathname :parent :do-first :in-order-to :name :version
Of these, I believe our discussion pertains primarily to
:license/:licence
:maintainer
:author
:description and :long-description
:version
Are these all truly optional? Personally, I wish that :version wasn't,
and/or that we enforced some standard on values supplied there, since
it's easy to put in something that will cause version-satisfies to choke.
How about we confine our attention to all of these EXCEPT :version,
which is worthy of a discussion of its own.
These are all going to be used primarily by software which simply
displays information about the systems, and all of that software (unless
there's a 'describe' method) is going to be external to ASDF proper,
which means it's hard for me to answer James' "some operator depends on
the distinction" question.
Best,
r
More information about the asdf-devel
mailing list