From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eric Abrahamsen Newsgroups: gmane.emacs.help Subject: Re: "fall-through" generic function args plus &context Date: Tue, 27 Dec 2016 09:23:07 -0800 Message-ID: <87y3z1z3pg.fsf@ericabrahamsen.net> References: <87r34u8m55.fsf@ericabrahamsen.net> <87d1gexq6v.fsf@ericabrahamsen.net> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1482870344 6437 195.159.176.226 (27 Dec 2016 20:25:44 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 27 Dec 2016 20:25:44 +0000 (UTC) User-Agent: Gnus/5.130014 (Ma Gnus v0.14) Emacs/26.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Tue Dec 27 21:25:40 2016 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cLyJP-0000Aq-6C for geh-help-gnu-emacs@m.gmane.org; Tue, 27 Dec 2016 21:25:31 +0100 Original-Received: from localhost ([::1]:56041 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cLyJU-0007e8-1Y for geh-help-gnu-emacs@m.gmane.org; Tue, 27 Dec 2016 15:25:36 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:60811) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cLvTF-0002sd-9M for help-gnu-emacs@gnu.org; Tue, 27 Dec 2016 12:23:30 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cLvTC-0001N8-5x for help-gnu-emacs@gnu.org; Tue, 27 Dec 2016 12:23:29 -0500 Original-Received: from [195.159.176.226] (port=40308 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cLvTB-0001Mw-Ui for help-gnu-emacs@gnu.org; Tue, 27 Dec 2016 12:23:26 -0500 Original-Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1cLvT2-0001ys-Rb for help-gnu-emacs@gnu.org; Tue, 27 Dec 2016 18:23:16 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 29 Original-X-Complaints-To: usenet@blaine.gmane.org Cancel-Lock: sha1:SO8+6rE/cowaxkZMuIQH0rzJVk8= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 195.159.176.226 X-Mailman-Approved-At: Tue, 27 Dec 2016 15:24:50 -0500 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.org gmane.emacs.help:112006 Archived-At: Stefan Monnier writes: >> Come to think of it, how does one override `cl-no-applicable-method' for >> a specific generic? > > Good question. > > I guess in CLOS, this works by creating a new class that derives from > the standard "generic function" class, then make your generic function > be an instance of *that* class, at which point you can then define your > `cl-no-applicable-method` method which specializes on the class of the > `generic` argument. > > But currently cl-generic does not support this notion of "generic > function" quite the way CLOS does (for one our "generic functions" > objects are `defstruct` rather than `defclass` objects, and also > they're not callable so the function cell is yet different (a fairly > standard closure)). Thanks for the tips! Using fundamental-mode didn't work (at least not in the emacs-lisp buffer I tested it in), but the empty arg-list did, so that's sorted. I haven't looked too hard at the specializer code, but if we can already dispatch on defstructs, it seems like it wouldn't be that hard to make something that dispatches on generics? But I really don't know... Thanks again, Eric