Hi, I am writing in regards to the CLISP CLOS style warnings reported in https://sourceforge.net/p/clisp/mailman/message/35946823/ Specifically:
--8<---------------cut here---------------start------------->8--- WARNING: Adding method #<STANDARD-METHOD (#<STANDARD-CLASS TEST-OP> (EQL #<SYSTEM "alexandria">))> to an already called generic function #<STANDARD-GENERIC-FUNCTION OPERATION-DONE-P> WARNING: Adding method #<STANDARD-METHOD (#<STANDARD-CLASS TEST-OP> (EQL #<SYSTEM "alexandria">))> to an already called generic function #<STANDARD-GENERIC-FUNCTION PERFORM> WARNING: Adding method #<STANDARD-METHOD (#<STANDARD-CLASS TEST-OP> (EQL #<SYSTEM "babel">))> to an already called generic function #<STANDARD-GENERIC-FUNCTION OPERATION-DONE-P> --8<---------------cut here---------------end--------------->8---
The rationale for these warnings is explained in http://clisp.org/impnotes/mop-clisp.html#mop-clisp-gf-already-called-warning
However, when the normal use case for a generic function is being extended by its users (e.g., `print-object`), this warning is inappropriate. ASDF user macros, apparently, expand to method definitions, thus they are similar to `print-object`. To mark a generic function as user-extendable, one can now use a declaration:
--8<---------------cut here---------------start------------->8--- (defgeneric perform (...) (declare #+clisp (dynamically-modifiable)) ...) (defgeneric operation-done-p (...) (declare #+clisp (dynamically-modifiable)) ...) --8<---------------cut here---------------end--------------->8---
The declaration is now in `hg tip` (but has not been released yet).
Thank you!