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 _______________________________________________ asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel