I don’t fully understand the issue. I followed up the reference you posted, and the follow-on reference to Chris Riesbeck’s web page, and there I see the following:

make-instance (in conjunction with initialize-instance) creates an instance of a circle as follows:

So one difference is that default initargs take priority over initforms.

———-

This suggests that your default initargs (Apple tried to make that “unitards”!) should, in fact, shadow the initforms.

This seems to be consistent with what is in the spec here http://www.lispworks.com/documentation/HyperSpec/Body/07_a.htm

I’ll have to look at the actual code (not at my desk rn) to see what’s going on, but it does not seem to be an issue with default initargs vs. initforms 

If anyone else beats me to it, that would be great.


-- 
Robert P. Goldman

On December 22, 2021 at 05:18:58, Attila Lendvai (attila@lendvai.name) wrote:

dear list,

i wanted to set the default-component-class of our own system subclass using :default-initargs, but it's ignored because the slot has a :initform (as opposed to setting the default value using a :default-initargs entry).

in the current ASDF setup, i need to override the slot (or the accessor method), which involves messing with internal symbols.

if ASDF used :default-initargs then i could just override that using a :default-initargs entry on my own subclass (IIUC).


i'm sending it for your consideration, it's not a pressing issue on my side.

- attila
PGP: 5D5F 45C7 DFCD 0A39