Yes, this works as expected for me: (defclass foosys (asdf/system:system) () (:default-initargs :default-component-class 'foo))
(asdf/component:module-default-component-class (make-instance 'foosys)) => foo -- Martin Simmons LispWorks Ltd http://www.lispworks.com/ >>>>> On Wed, 22 Dec 2021 08:46:02 -0600, Robert P Goldman said: > > 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: > > make-instance creates an empty instance. > make-instance passes the instance and the other arguments to > initialize-instance. > initialize-instance first uses any explicit initargs that you gave to > make-instance. > For slots still unitialized, it then uses any default initargs that have been > defined. > Finally, for slots still unitialized, it uses any default initforms that have > been defined. > > > 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 > (att...@lendvai.name(mailto:att...@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). > > > > https://lisptips.com/post/11728375873/initform-and-default-initargs > > > > i'm sending it for your consideration, it's not a pressing issue on my side. > > > > - attila > > PGP: 5D5F 45C7 DFCD 0A39 > > >