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".
[...]
- 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:
- 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.
thanks,