GNU bug report logs -
#50834
Feature request: cl-remove-method (prototyped) and buttons for it
Previous Next
Reported by: akater <nuclearspace <at> gmail.com>
Date: Mon, 27 Sep 2021 01:21:01 UTC
Severity: wishlist
Tags: moreinfo
Done: Stefan Kangas <stefankangas <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #16 received at 50834 <at> debbugs.gnu.org (full text, mbox):
Lars Ingebrigtsen [2022-09-02 12:56:05] wrote:
> akater <nuclearspace <at> gmail.com> writes:
>> +(cl-defgeneric cl-remove-method (generic-function method)
>> + "Remove METHOD from GENERIC-FUNCTION by modifying the
>> +GENERIC-FUNCTION (if necessary).
> I think this sounds very useful -- I don't think we have any other ways
> to remove a method, and that's something that I've been missing
> sometimes when implementing stuff.
I'd challenge your use of "very", but I agree it's missing.
> Perhaps Stefan has some comments here; added to the CCs.
Not much to say, except:
> + (cl-loop for k being hash-key in cl--generic-combined-method-memoization
> + when (and (eq generic-function (car k))
> + (memq method (cdr k)))
> + do (remhash k cl--generic-combined-method-memoization))
I don't see why we'd need this.
This is a cache that tries to speed up the construction of combined
methods, whereas in `cl-remove-method` we should only need to flush the
cache that maps tags to their corresponding combined methods and this is
done implicitly by `cl--generic-make-function` (which returns a new
function with a branch new fresh cache).
Stefan
This bug report was last modified 1 year and 257 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.