[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