GNU bug report logs - #50834
Feature request: cl-remove-method (prototyped) and buttons for it

Previous Next

Package: emacs;

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):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: akater <nuclearspace <at> gmail.com>, 50834 <at> debbugs.gnu.org
Subject: Re: bug#50834: Feature request: cl-remove-method (prototyped) and
 buttons for it
Date: Fri, 02 Sep 2022 09:29:16 -0400
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.