From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Eric Abrahamsen Newsgroups: gmane.emacs.devel Subject: Re: Turning Gnus groups into real objects Date: Fri, 19 Jul 2019 16:56:57 -0700 Message-ID: <87lfwt60ja.fsf@ericabrahamsen.net> References: <87k1cg5ujl.fsf@ericabrahamsen.net> <87wogf8sei.fsf@mouse.gnus.org> <87zhlb2per.fsf@ericabrahamsen.net> <877e8e89os.fsf@mouse.gnus.org> <87ftn17tey.fsf@ericabrahamsen.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="51641"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Jul 20 01:57:18 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hockY-000DLL-D9 for ged-emacs-devel@m.gmane.org; Sat, 20 Jul 2019 01:57:18 +0200 Original-Received: from localhost ([::1]:48832 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hockX-0005I8-1n for ged-emacs-devel@m.gmane.org; Fri, 19 Jul 2019 19:57:17 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:57647) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hockP-0005Hp-9Y for emacs-devel@gnu.org; Fri, 19 Jul 2019 19:57:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hockO-00061F-9l for emacs-devel@gnu.org; Fri, 19 Jul 2019 19:57:09 -0400 Original-Received: from 195-159-176-226.customer.powertech.no ([195.159.176.226]:44520 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hockO-00060C-3n for emacs-devel@gnu.org; Fri, 19 Jul 2019 19:57:08 -0400 Original-Received: from list by blaine.gmane.org with local (Exim 4.89) (envelope-from ) id 1hockL-000DAl-EB for emacs-devel@gnu.org; Sat, 20 Jul 2019 01:57:05 +0200 X-Injected-Via-Gmane: http://gmane.org/ Cancel-Lock: sha1:SaYkLv8+ifCPLeKc+LL0rej4awc= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 195.159.176.226 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:238719 Archived-At: Stefan Monnier writes: >> (defclass gnus-server () >> ((address :type string) >> ...)) >> >> (defclass gnus-nnimap (gnus-server) >> ((capabilities >> :type string) >> (newlinep >> :type boolean) >> ...)) > > Aka > > (cl-defstruct (gnus-server) > (address nil :type string)) > > (cl-defstruct (gnus-nnimap > (:include gnus-server)) > (capabilities nil :type string) > (newlinep nil :type boolean)) > >> (cl-defmethod gnus-request-list ((server gnus-nnimap)) Aw... I was also considering a bit of (tastefully designed) multiple inheritance. > BTW, I was wondering whether we could preserve backward compatiblity with > defvoo and defffoo. But I guess for `defvoo`, we'd need the equivalent > of `define-symbol-macro` whereas we currently only have `cl-symbol-macrolet`. That would be an interesting thing to have for many reasons. But here it seems like it would mainly be useful to support backends defined outside of Gnus, in which case we'd also have to cover `nnoo-declare' and friends, and... yuck.