From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.devel Subject: Help with cl-generic.el, please! Date: Sun, 19 Mar 2023 11:27:55 +0000 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5845"; mail-complaints-to="usenet@ciao.gmane.io" To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Mar 19 12:28:47 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pdrDT-0001Ov-OK for ged-emacs-devel@m.gmane-mx.org; Sun, 19 Mar 2023 12:28:47 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pdrCu-0000FX-7g; Sun, 19 Mar 2023 07:28:12 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pdrCs-0000FN-SV for emacs-devel@gnu.org; Sun, 19 Mar 2023 07:28:10 -0400 Original-Received: from mx3.muc.de ([193.149.48.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pdrCq-0002RB-MX for emacs-devel@gnu.org; Sun, 19 Mar 2023 07:28:10 -0400 Original-Received: (qmail 98772 invoked by uid 3782); 19 Mar 2023 12:27:56 +0100 Original-Received: from acm.muc.de (p4fe152f0.dip0.t-ipconnect.de [79.225.82.240]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Sun, 19 Mar 2023 12:27:56 +0100 Original-Received: (qmail 6829 invoked by uid 1000); 19 Mar 2023 11:27:55 -0000 Content-Disposition: inline X-Submission-Agent: TMDA/1.3.x (Ph3nix) X-Primary-Address: acm@muc.de Received-SPF: pass client-ip=193.149.48.5; envelope-from=acm@muc.de; helo=mx3.muc.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:304578 Archived-At: Hello, Emacs. I'm having trouble with cl-generic.el. I'm constructing a variant Emacs. Consider the test function in ..../test/lisp/progmodes/elisp-mode-tests.el: (cl-defmethod xref-elisp-generic-implicit-generic (arg1 arg2) "Doc string generic implicit-generic default." "default for implicit generic" (list arg1 arg2)) ; silence byte-compiler .. When I evaluate this in Emacs, I get a byte-compiled function. Element 4 of this vector is a doc string "\n\n(fn ARG &rest ARGS)". This is correct. When I do the same in my Emacs variant, that element 4 of the function vector is nil. This is a bug I'm trying to solve. I find the complexity of cl-generic.el unfathomable. I've spent several days trying to make sense of it, without much success. I would have expected to solve the sort of bug I'm faced with in a few hours at most, but with cl-defmethod and friends, this has already stretched to several days. The problem is cl-generic.el is almost entirely undocumented. The vast bulk of functions in it have no doc string. There are no comments explaining what the code does and why. There is no documentation of what the internal structures are. There is no explanation of terms such as dispatcher, generalizer, specializer, tag, ...., all of which are used in a tighly context dependent way. I think cl-generic.el needs to be documented. Back to my bug. Somewhere in the tree of functions invoked from cl-defmethod and friends, some function causes element 4 of the function vector to get set to a doc string. Would somebody (?Stefan) familiar with cl-generic.el please identify where in the source code this happens, so as to help me solve my bug. Thanks! -- Alan Mackenzie (Nuremberg, Germany).