From unknown Sat Aug 16 23:51:00 2025 X-Loop: help-debbugs@gnu.org Subject: bug#17490: 24.3.91; describe-function on some eieio class give (wrong-type-argument char-or-string-p nil) Resent-From: Nicolas Richard Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 14 May 2014 09:33:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 17490 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 17490@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.14000599354070 (code B ref -1); Wed, 14 May 2014 09:33:02 +0000 Received: (at submit) by debbugs.gnu.org; 14 May 2014 09:32:15 +0000 Received: from localhost ([127.0.0.1]:34714 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WkVXp-00013Z-Qr for submit@debbugs.gnu.org; Wed, 14 May 2014 05:32:14 -0400 Received: from eggs.gnu.org ([208.118.235.92]:56674) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WkVXm-00013H-HX for submit@debbugs.gnu.org; Wed, 14 May 2014 05:32:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WkVXb-0001xa-0G for submit@debbugs.gnu.org; Wed, 14 May 2014 05:32:05 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:36101) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WkVXa-0001xV-U7 for submit@debbugs.gnu.org; Wed, 14 May 2014 05:31:58 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58306) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WkVXV-0007GH-2C for bug-gnu-emacs@gnu.org; Wed, 14 May 2014 05:31:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WkVXP-0001uY-3v for bug-gnu-emacs@gnu.org; Wed, 14 May 2014 05:31:53 -0400 Received: from mxin.ulb.ac.be ([164.15.128.112]:10345) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WkVXO-0001u8-UC for bug-gnu-emacs@gnu.org; Wed, 14 May 2014 05:31:47 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArQEAPM2c1OkD4Xx/2dsb2JhbABZg1WsHgYFm0t0g2E0AQSJCAEUnFmPcZ0RAYdChVSBf4cYhCoEjyqLZIUVjEGBd4FBOw Received: from mathsrv4.ulb.ac.be (HELO geodiff-mac3.ulb.ac.be) ([164.15.133.241]) by smtp.ulb.ac.be with ESMTP; 14 May 2014 11:31:43 +0200 From: Nicolas Richard Date: Wed, 14 May 2014 11:32:41 +0200 Message-ID: <877g5ok8na.fsf@geodiff-mac3.ulb.ac.be> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.91 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) Hi, Eval the following snippet (taken from (info "(eieio) Quick Start"), except that I removed the docstring in the method): (progn (defclass record () ((name :initarg :name :initform "" :type string :custom string :documentation "The name of a person.") (birthday :initarg :birthday :initform "Jan 1, 1970" :custom string :type string :documentation "The person's birthday.") (phone :initarg :phone :initform "" :documentation "Phone number.")) "A single record for tracking people I know.") (defmethod call-record ((rec record) &optional scriptname) (message "Dialing the phone for %s" (oref rec name)) (shell-command (concat (or scriptname "dialphone.sh") " " (oref rec phone))))) Then do C-h f record RET. This makes an error. Here's the backtrace: Debugger entered--Lisp error: (wrong-type-argument char-or-string-p nil) eieio-help-class(record) class = record doc = (nil nil ((rec &optional scriptname))) counter = 2 type = [":STATIC" ":BEFORE" ":PRIMARY" ":AFTER"] methods = (call-record) cur = ((rec &optional scriptname)) --dolist-tail-- = (((rec &optional scriptname))) debugger-may-continue = t inhibit-redisplay = nil inhibit-debugger = t eieio-help-constructor(record) ctr = record def = (lambda (newname &rest slots) "Create a new object with name NAME of class type record" (apply (quote constructor) record newname slots)) location = nil run-hook-with-args(eieio-help-constructor record) [no locals] describe-function-1(record) [no locals] describe-function(record) The error comes from this part of the code: (insert " " (aref type counter) " " (prin1-to-string (car cur) (current-buffer)) "\n" (cdr cur)) (cdr cur) is nil and can't be inserted FWIW I did this to fix it : Modified lisp/emacs-lisp/eieio-opt.el diff --git a/lisp/emacs-lisp/eieio-opt.el b/lisp/emacs-lisp/eieio-opt.el index a502901..4e0470d 100644 --- a/lisp/emacs-lisp/eieio-opt.el +++ b/lisp/emacs-lisp/eieio-opt.el @@ -141,7 +141,7 @@ If CLASS is actually an object, then also display current values of that object. (insert " " (aref type counter) " " (prin1-to-string (car cur) (current-buffer)) "\n" - (cdr cur))) + (or (cdr cur) " Undocumented"))) (setq counter (1+ counter)))) (insert "\n\n") (setq methods (cdr methods)))))) In GNU Emacs 24.3.91.1 (i686-pc-linux-gnu, X toolkit, Xaw3d scroll bars) of 2014-05-12 on geodiff-mac3 Windowing system distributor `The X.Org Foundation', version 11.0.11304000 System Description: Gentoo Base System release 2.2 Configured using: `configure --with-x-toolkit=lucid --enable-checking 'CFLAGS= -O0 -g3'' Important settings: value of $LANG: fr_FR.UTF-8 locale-coding-system: utf-8-unix -- Nico. From unknown Sat Aug 16 23:51:00 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.503 (Entity 5.503) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Nicolas Richard Subject: bug#17490: closed (Re: bug#17490: 24.3.91; describe-function on some eieio class give (wrong-type-argument char-or-string-p nil)) Message-ID: References: <87r43w3wn3.fsf@engster.org> <877g5ok8na.fsf@geodiff-mac3.ulb.ac.be> X-Gnu-PR-Message: they-closed 17490 X-Gnu-PR-Package: emacs Reply-To: 17490@debbugs.gnu.org Date: Wed, 14 May 2014 20:59:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1400101142-21968-1" This is a multi-part message in MIME format... ------------=_1400101142-21968-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #17490: 24.3.91; describe-function on some eieio class give (wrong-type-arg= ument char-or-string-p nil) which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 17490@debbugs.gnu.org. --=20 17490: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D17490 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1400101142-21968-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 17490-done) by debbugs.gnu.org; 14 May 2014 20:58:51 +0000 Received: from localhost ([127.0.0.1]:34911 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WkgGI-0005hn-FD for submit@debbugs.gnu.org; Wed, 14 May 2014 16:58:50 -0400 Received: from randomsample.de ([5.45.97.173]:54279) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WkgGG-0005he-1S for 17490-done@debbugs.gnu.org; Wed, 14 May 2014 16:58:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=randomsample.de; s=a; h=Content-Type:MIME-Version:Message-ID:Date:References:In-Reply-To:Subject:Cc:To:From; bh=XVQiL+phOpNmoSxVICOSwL+JNbGaTBgNmmvIIE43dTk=; b=eABAVVUYo7r5Jg2e4gABVlSyfMFIT6Es9bcR9c1ICLb87Ppb3Da5W0MSBlZPoDzY0G/ZkhKauGw4xOeoiBZ8uVzhcl3IRxtE2chdBkm+mdjT7AS1+/xOr6epIgGeCeNC; Received: from dslc-082-082-162-074.pools.arcor-ip.net ([82.82.162.74] helo=spaten) by randomsample.de with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from ) id 1WkgGE-0004T9-CR; Wed, 14 May 2014 22:58:46 +0200 From: David Engster To: Nicolas Richard Subject: Re: bug#17490: 24.3.91; describe-function on some eieio class give (wrong-type-argument char-or-string-p nil) In-Reply-To: <877g5ok8na.fsf@geodiff-mac3.ulb.ac.be> (Nicolas Richard's message of "Wed, 14 May 2014 11:32:41 +0200") References: <877g5ok8na.fsf@geodiff-mac3.ulb.ac.be> User-Agent: Gnus/5.13001 (Ma Gnus v0.10) Emacs/24.3.91 (gnu/linux) Date: Wed, 14 May 2014 22:58:40 +0200 Message-ID: <87r43w3wn3.fsf@engster.org> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.6 (/) X-Debbugs-Envelope-To: 17490-done Cc: 17490-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.6 (/) Nicolas Richard writes: > Eval the following snippet (taken from (info "(eieio) Quick Start"), > except that I removed the docstring in the method): [...] > FWIW I did this to fix it : > --- a/lisp/emacs-lisp/eieio-opt.el > +++ b/lisp/emacs-lisp/eieio-opt.el [...] > - (cdr cur))) > + (or (cdr cur) " Undocumented"))) Thanks for the report and the fix, which I just pushed to the emacs-24 branch, albeit with a small change: Instead of printing "Undocumented", it simply prints nothing, since the other EIEIO help functions don't explicitly denote a lack of documentation either. That might be a mistake though, since describe-function/variable do that. I guess this should be changed, but that would belong to trunk. -David ------------=_1400101142-21968-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 14 May 2014 09:32:15 +0000 Received: from localhost ([127.0.0.1]:34714 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WkVXp-00013Z-Qr for submit@debbugs.gnu.org; Wed, 14 May 2014 05:32:14 -0400 Received: from eggs.gnu.org ([208.118.235.92]:56674) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WkVXm-00013H-HX for submit@debbugs.gnu.org; Wed, 14 May 2014 05:32:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WkVXb-0001xa-0G for submit@debbugs.gnu.org; Wed, 14 May 2014 05:32:05 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:36101) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WkVXa-0001xV-U7 for submit@debbugs.gnu.org; Wed, 14 May 2014 05:31:58 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58306) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WkVXV-0007GH-2C for bug-gnu-emacs@gnu.org; Wed, 14 May 2014 05:31:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WkVXP-0001uY-3v for bug-gnu-emacs@gnu.org; Wed, 14 May 2014 05:31:53 -0400 Received: from mxin.ulb.ac.be ([164.15.128.112]:10345) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WkVXO-0001u8-UC for bug-gnu-emacs@gnu.org; Wed, 14 May 2014 05:31:47 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArQEAPM2c1OkD4Xx/2dsb2JhbABZg1WsHgYFm0t0g2E0AQSJCAEUnFmPcZ0RAYdChVSBf4cYhCoEjyqLZIUVjEGBd4FBOw Received: from mathsrv4.ulb.ac.be (HELO geodiff-mac3.ulb.ac.be) ([164.15.133.241]) by smtp.ulb.ac.be with ESMTP; 14 May 2014 11:31:43 +0200 From: Nicolas Richard To: bug-gnu-emacs@gnu.org Subject: 24.3.91; describe-function on some eieio class give (wrong-type-argument char-or-string-p nil) Date: Wed, 14 May 2014 11:32:41 +0200 Message-ID: <877g5ok8na.fsf@geodiff-mac3.ulb.ac.be> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.91 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) Hi, Eval the following snippet (taken from (info "(eieio) Quick Start"), except that I removed the docstring in the method): (progn (defclass record () ((name :initarg :name :initform "" :type string :custom string :documentation "The name of a person.") (birthday :initarg :birthday :initform "Jan 1, 1970" :custom string :type string :documentation "The person's birthday.") (phone :initarg :phone :initform "" :documentation "Phone number.")) "A single record for tracking people I know.") (defmethod call-record ((rec record) &optional scriptname) (message "Dialing the phone for %s" (oref rec name)) (shell-command (concat (or scriptname "dialphone.sh") " " (oref rec phone))))) Then do C-h f record RET. This makes an error. Here's the backtrace: Debugger entered--Lisp error: (wrong-type-argument char-or-string-p nil) eieio-help-class(record) class = record doc = (nil nil ((rec &optional scriptname))) counter = 2 type = [":STATIC" ":BEFORE" ":PRIMARY" ":AFTER"] methods = (call-record) cur = ((rec &optional scriptname)) --dolist-tail-- = (((rec &optional scriptname))) debugger-may-continue = t inhibit-redisplay = nil inhibit-debugger = t eieio-help-constructor(record) ctr = record def = (lambda (newname &rest slots) "Create a new object with name NAME of class type record" (apply (quote constructor) record newname slots)) location = nil run-hook-with-args(eieio-help-constructor record) [no locals] describe-function-1(record) [no locals] describe-function(record) The error comes from this part of the code: (insert " " (aref type counter) " " (prin1-to-string (car cur) (current-buffer)) "\n" (cdr cur)) (cdr cur) is nil and can't be inserted FWIW I did this to fix it : Modified lisp/emacs-lisp/eieio-opt.el diff --git a/lisp/emacs-lisp/eieio-opt.el b/lisp/emacs-lisp/eieio-opt.el index a502901..4e0470d 100644 --- a/lisp/emacs-lisp/eieio-opt.el +++ b/lisp/emacs-lisp/eieio-opt.el @@ -141,7 +141,7 @@ If CLASS is actually an object, then also display current values of that object. (insert " " (aref type counter) " " (prin1-to-string (car cur) (current-buffer)) "\n" - (cdr cur))) + (or (cdr cur) " Undocumented"))) (setq counter (1+ counter)))) (insert "\n\n") (setq methods (cdr methods)))))) In GNU Emacs 24.3.91.1 (i686-pc-linux-gnu, X toolkit, Xaw3d scroll bars) of 2014-05-12 on geodiff-mac3 Windowing system distributor `The X.Org Foundation', version 11.0.11304000 System Description: Gentoo Base System release 2.2 Configured using: `configure --with-x-toolkit=lucid --enable-checking 'CFLAGS= -O0 -g3'' Important settings: value of $LANG: fr_FR.UTF-8 locale-coding-system: utf-8-unix -- Nico. ------------=_1400101142-21968-1--