On 2009-07-14, at 18:56 , Robert Goldman wrote:

james anderson wrote:


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

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.