New feature: initialization keyword arguments.
Initialization keyword arguments can now be declared in class
definitions. They become additional keyword arguments accepted by the
object's `init' effective method. The initialization arguments are
available for use (by name) within slot initializer expressions and
initialization fragments.
* `User' initargs are otherwise passive. They may usefully have a
default value, which is used if the argument is
omitted. (Alternatively, user code can test the `suppliedp' flag
and behave accordingly.)
* `Slot' initargs are associated with an effective slot. If one of a
slot's initargs is provided in the `init' message, then its value is
used to initialize the slot, instead of the slot initializer. If
more than one applicable initarg is provided, then priority is given
to the initargs defined in more specific superclasses; if this
doesn't disambiguate, then one of the initargs is chosen
arbitrarily (this situation is likely an error).
15 files changed: