Reported by: Tassilo Horn <tsdh <at> gnu.org>
Date: Sun, 25 Jan 2015 06:57:02 UTC
Severity: normal
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Tassilo Horn <tsdh <at> gnu.org> To: 19683 <at> debbugs.gnu.org Subject: bug#19683: Emacs commit fd62486 broke Gnus registry DB Date: Sun, 25 Jan 2015 07:56:07 +0100
The Gnus Registry uses a eieio/cl defclass object as its registry db. See the defclass `registry-db' in registry.el and `gnus-registry-db' in gnus-registry.el. With the changes of Emacs commit fd62486 applied, starting Gnus results in the following error: --8<---------------cut here---------------start------------->8--- Debugger entered--Lisp error: (error "Haven't found no-next-method-sample in cnm-sample") signal(error ("Haven't found no-next-method-sample in cnm-sample")) error("Haven't found no-next-method-sample in cnm-sample") cl--generic-isnot-nnm-p(#[128 "\302\300.\206.\301\"\207" [#[513 ".\211\300HJ\262.\211\301H.\302H.\2030.\303.@!\211.@=\204$.\304..@.#\210\210.A\262.\211A\262.\202. \266.\305.\"\207" [0 5 6 eieio-default-eval-maybe eieio-oset shared-initialize] 10 "Construct the new object THIS based on SLOTS.\nSLOTS is a tagged list where odd numbered elements are tags, and\neven numbered elements are the values to store in the tagged slot.\nIf you overload the `initialize-instance', there you will need to\ncall `shared-initialize' yourself, or you can call `call-next-method'\nto have this constructor called automatically. If these steps are\nnot taken, then new objects of your class will not have their values\ndynamically set from SLOTS.\n\n(fn THIS &optional SLOTS)"] ([eieio-class-tag--registry-db #:unbound nil 2305843009213693951 0.1 nil nil #:unbound #:unbound] (:file "~/.gnus.d/.gnus.registry.eieio" :max-size 2305843009213693951 :version 0.2 :precious nil :tracked nil)) apply] 4 "\n\n(fn &rest CNM-ARGS)"]) #[385 "\300.!\205\n.\301.\"\207" [cl--generic-isnot-nnm-p apply] 5 "\n\n(fn CNM &rest ARGS)"](#[128 "\302\300.\206.\301\"\207" [#[513 ".\211\300HJ\262.\211\301H.\302H.\2030.\303.@!\211.@=\204$.\304..@.#\210\210.A\262.\211A\262.\202. \266.\305.\"\207" [0 5 6 eieio-default-eval-maybe eieio-oset shared-initialize] 10 "Construct the new object THIS based on SLOTS.\nSLOTS is a tagged list where odd numbered elements are tags, and\neven numbered elements are the values to store in the tagged slot.\nIf you overload the `initialize-instance', there you will need to\ncall `shared-initialize' yourself, or you can call `call-next-method'\nto have this constructor called automatically. If these steps are\nnot taken, then new objects of your class will not have their values\ndynamically set from SLOTS.\n\n(fn THIS &optional SLOTS)"] ([eieio-class-tag--registry-db #:unbound nil 2305843009213693951 0.1 nil nil #:unbound #:unbound] (:file "~/.gnus.d/.gnus.registry.eieio" :max-size 2305843009213693951 :version 0.2 :precious nil :tracked nil)) apply] 4 "\n\n(fn &rest CNM-ARGS)"] [eieio-class-tag--registry-db #:unbound nil 2305843009213693951 0.1 nil nil #:unbound #:unbound] (:file "~/.gnus.d/.gnus.registry.eieio" :max-size 2305843009213693951 :version 0.2 :precious nil :tracked nil)) apply(#[385 "\300.!\205\n.\301.\"\207" [cl--generic-isnot-nnm-p apply] 5 "\n\n(fn CNM &rest ARGS)"] #[128 "\302\300.\206.\301\"\207" [#[513 ".\211\300HJ\262.\211\301H.\302H.\2030.\303.@!\211.@=\204$.\304..@.#\210\210.A\262.\211A\262.\202. \266.\305.\"\207" [0 5 6 eieio-default-eval-maybe eieio-oset shared-initialize] 10 "Construct the new object THIS based on SLOTS.\nSLOTS is a tagged list where odd numbered elements are tags, and\neven numbered elements are the values to store in the tagged slot.\nIf you overload the `initialize-instance', there you will need to\ncall `shared-initialize' yourself, or you can call `call-next-method'\nto have this constructor called automatically. If these steps are\nnot taken, then new objects of your class will not have their values\ndynamically set from SLOTS.\n\n(fn THIS &optional SLOTS)"] ([eieio-class-tag--registry-db #:unbound nil 2305843009213693951 0.1 nil nil #:unbound #:unbound] (:file "~/.gnus.d/.gnus.registry.eieio" :max-size 2305843009213693951 :version 0.2 :precious nil :tracked nil)) apply] 4 "\n\n(fn &rest CNM-ARGS)"] ([eieio-class-tag--registry-db #:unbound nil 2305843009213693951 0.1 nil nil #:unbound #:unbound] (:file "~/.gnus.d/.gnus.registry.eieio" :max-size 2305843009213693951 :version 0.2 :precious nil :tracked nil))) #[128 "\302\300\303\304\305\306\307\301.\"\310\"\311\312%.#\207" [#[385 "\300.!\205\n.\301.\"\207" [cl--generic-isnot-nnm-p apply] 5 "\n\n(fn CNM &rest ARGS)"] #[513 ".\211\300HJ\262.\211\301H.\302H.\2030.\303.@!\211.@=\204$.\304..@.#\210\210.A\262.\211A\262.\202. \266.\305.\"\207" [0 5 6 eieio-default-eval-maybe eieio-oset shared-initialize] 10 "Construct the new object THIS based on SLOTS.\nSLOTS is a tagged list where odd numbered elements are tags, and\neven numbered elements are the values to store in the tagged slot.\nIf you overload the `initialize-instance', there you will need to\ncall `shared-initialize' yourself, or you can call `call-next-method'\nto have this constructor called automatically. If these steps are\nnot taken, then new objects of your class will not have their values\ndynamically set from SLOTS.\n\n(fn THIS &optional SLOTS)"] apply make-byte-code 128 "\302\300.\206.\301\"\207" vconcat vector [apply] 4 "\n\n(fn &rest CNM-ARGS)"] 10 "\n\n(fn &rest ARGS)"]([eieio-class-tag--registry-db #:unbound nil 2305843009213693951 0.1 nil nil #:unbound #:unbound] (:file "~/.gnus.d/.gnus.registry.eieio" :max-size 2305843009213693951 :version 0.2 :precious nil :tracked nil)) apply(#[128 "\302\300\303\304\305\306\307\301.\"\310\"\311\312%.#\207" [#[385 "\300.!\205\n.\301.\"\207" [cl--generic-isnot-nnm-p apply] 5 "\n\n(fn CNM &rest ARGS)"] #[513 ".\211\300HJ\262.\211\301H.\302H.\2030.\303.@!\211.@=\204$.\304..@.#\210\210.A\262.\211A\262.\202. \266.\305.\"\207" [0 5 6 eieio-default-eval-maybe eieio-oset shared-initialize] 10 "Construct the new object THIS based on SLOTS.\nSLOTS is a tagged list where odd numbered elements are tags, and\neven numbered elements are the values to store in the tagged slot.\nIf you overload the `initialize-instance', there you will need to\ncall `shared-initialize' yourself, or you can call `call-next-method'\nto have this constructor called automatically. If these steps are\nnot taken, then new objects of your class will not have their values\ndynamically set from SLOTS.\n\n(fn THIS &optional SLOTS)"] apply make-byte-code 128 "\302\300.\206.\301\"\207" vconcat vector [apply] 4 "\n\n(fn &rest CNM-ARGS)"] 10 "\n\n(fn &rest ARGS)"] ([eieio-class-tag--registry-db #:unbound nil 2305843009213693951 0.1 nil nil #:unbound #:unbound] (:file "~/.gnus.d/.gnus.registry.eieio" :max-size 2305843009213693951 :version 0.2 :precious nil :tracked nil))) #[128 "\300\211\203. \211@\303.\"\210.A\266\202\202. \210\303\302.\"\301\211\203+.\211@\303.\"\210.A\266\202\202. \210\207" [(#[(this slots) "\303\304\"\205.\305\304\"\211.\203. \306 \307\"\205R.\310\311\305\312\"#.\310\304\n#\211.@\312=\2037.\211AA\262.\202<.\313\312\"\210@\314=\203N.\211AA\262.\315\202R.\313\314\")\207" [slots current-version registry-db-version plist-member :version plist-get eql 0.1 plist-put :max-size :max-hard cl--do-remf :max-soft t] 7 "Check whether a registry object needs to be upgraded."]) (#[(this slots) "\304\235\204. .\305\n\306\307\310\311\312\313\314\315&.#\210)\316\235?\205+. .\305\317\307\310\320\312\321$#)\207" [slots this #:v #:v :data eieio-oset data make-hash-table :size 10000 :rehash-size 2.0 :test equal :tracker tracker 100 2.0] 10 "Set value of data slot of THIS after initialization."]) #[128 "\302\300\303\304\305\306\307\301.\"\310\"\311\312%.#\207" [#[385 "\300.!\205\n.\301.\"\207" [cl--generic-isnot-nnm-p apply] 5 "\n\n(fn CNM &rest ARGS)"] #[513 ".\211\300HJ\262.\211\301H.\302H.\2030.\303.@!\211.@=\204$.\304..@.#\210\210.A\262.\211A\262.\202. \266.\305.\"\207" [0 5 6 eieio-default-eval-maybe eieio-oset shared-initialize] 10 "Construct the new object THIS based on SLOTS.\nSLOTS is a tagged list where odd numbered elements are tags, and\neven numbered elements are the values to store in the tagged slot.\nIf you overload the `initialize-instance', there you will need to\ncall `shared-initialize' yourself, or you can call `call-next-method'\nto have this constructor called automatically. If these steps are\nnot taken, then new objects of your class will not have their values\ndynamically set from SLOTS.\n\n(fn THIS &optional SLOTS)"] apply make-byte-code 128 "\302\300.\206.\301\"\207" vconcat vector [apply] 4 "\n\n(fn &rest CNM-ARGS)"] 10 "\n\n(fn &rest ARGS)"] apply] 7 "\n\n(fn &rest ARGS)"]([eieio-class-tag--registry-db #:unbound nil 2305843009213693951 0.1 nil nil #:unbound #:unbound] (:file "~/.gnus.d/.gnus.registry.eieio" :max-size 2305843009213693951 :version 0.2 :precious nil :tracked nil)) apply(#[128 "\300\211\203. \211@\303.\"\210.A\266\202\202. \210\303\302.\"\301\211\203+.\211@\303.\"\210.A\266\202\202. \210\207" [(#[(this slots) "\303\304\"\205.\305\304\"\211.\203. \306 \307\"\205R.\310\311\305\312\"#.\310\304\n#\211.@\312=\2037.\211AA\262.\202<.\313\312\"\210@\314=\203N.\211AA\262.\315\202R.\313\314\")\207" [slots current-version registry-db-version plist-member :version plist-get eql 0.1 plist-put :max-size :max-hard cl--do-remf :max-soft t] 7 "Check whether a registry object needs to be upgraded."]) (#[(this slots) "\304\235\204. .\305\n\306\307\310\311\312\313\314\315&.#\210)\316\235?\205+. .\305\317\307\310\320\312\321$#)\207" [slots this #:v #:v :data eieio-oset data make-hash-table :size 10000 :rehash-size 2.0 :test equal :tracker tracker 100 2.0] 10 "Set value of data slot of THIS after initialization."]) #[128 "\302\300\303\304\305\306\307\301.\"\310\"\311\312%.#\207" [#[385 "\300.!\205\n.\301.\"\207" [cl--generic-isnot-nnm-p apply] 5 "\n\n(fn CNM &rest ARGS)"] #[513 ".\211\300HJ\262.\211\301H.\302H.\2030.\303.@!\211.@=\204$.\304..@.#\210\210.A\262.\211A\262.\202. \266.\305.\"\207" [0 5 6 eieio-default-eval-maybe eieio-oset shared-initialize] 10 "Construct the new object THIS based on SLOTS.\nSLOTS is a tagged list where odd numbered elements are tags, and\neven numbered elements are the values to store in the tagged slot.\nIf you overload the `initialize-instance', there you will need to\ncall `shared-initialize' yourself, or you can call `call-next-method'\nto have this constructor called automatically. If these steps are\nnot taken, then new objects of your class will not have their values\ndynamically set from SLOTS.\n\n(fn THIS &optional SLOTS)"] apply make-byte-code 128 "\302\300.\206.\301\"\207" vconcat vector [apply] 4 "\n\n(fn &rest CNM-ARGS)"] 10 "\n\n(fn &rest ARGS)"] apply] 7 "\n\n(fn &rest ARGS)"] [eieio-class-tag--registry-db #:unbound nil 2305843009213693951 0.1 nil nil #:unbound #:unbound] (:file "~/.gnus.d/.gnus.registry.eieio" :max-size 2305843009213693951 :version 0.2 :precious nil :tracked nil)) initialize-instance([eieio-class-tag--registry-db #:unbound nil 2305843009213693951 0.1 nil nil #:unbound #:unbound] (:file "~/.gnus.d/.gnus.registry.eieio" :max-size 2305843009213693951 :version 0.2 :precious nil :tracked nil)) #[385 "\301.\302N\211\303H\262.!.\203/.@\211;\206. \211?\262.\203/.\203$.\304\202%.\305\306.\211A\262.\242.#\210\307.\"\210\211\207" [eieio-backward-compatibility copy-sequence eieio-class-definition 24 ignore message "Obsolete name %S passed to %S constructor" initialize-instance] 7 "Default constructor for CLASS `eieio-default-superclass'.\nSLOTS are the initialization slots used by `shared-initialize'.\nThis static method is called when an object is constructed.\nIt allocates the vector used to represent an EIEIO object, and then\ncalls `shared-initialize' on that object.\n\n(fn CLASS &rest SLOTS)"](registry-db "Gnus Registry" :file "~/.gnus.d/.gnus.registry.eieio" :max-size 2305843009213693951 :version 0.2 :precious nil :tracked nil) apply(#[385 "\301.\302N\211\303H\262.!.\203/.@\211;\206. \211?\262.\203/.\203$.\304\202%.\305\306.\211A\262.\242.#\210\307.\"\210\211\207" [eieio-backward-compatibility copy-sequence eieio-class-definition 24 ignore message "Obsolete name %S passed to %S constructor" initialize-instance] 7 "Default constructor for CLASS `eieio-default-superclass'.\nSLOTS are the initialization slots used by `shared-initialize'.\nThis static method is called when an object is constructed.\nIt allocates the vector used to represent an EIEIO object, and then\ncalls `shared-initialize' on that object.\n\n(fn CLASS &rest SLOTS)"] registry-db ("Gnus Registry" :file "~/.gnus.d/.gnus.registry.eieio" :max-size 2305843009213693951 :version 0.2 :precious nil :tracked nil)) eieio-constructor(registry-db "Gnus Registry" :file "~/.gnus.d/.gnus.registry.eieio" :max-size 2305843009213693951 :version 0.2 :precious nil :tracked nil) apply(eieio-constructor registry-db ("Gnus Registry" :file "~/.gnus.d/.gnus.registry.eieio" :max-size 2305843009213693951 :version 0.2 :precious nil :tracked nil)) registry-db("Gnus Registry" :file "~/.gnus.d/.gnus.registry.eieio" :max-size 2305843009213693951 :version 0.2 :precious nil :tracked nil) gnus-registry-make-db() (defvar gnus-registry-db (gnus-registry-make-db) ("/home/horn/Repos/el/gnus/lisp/gnus-registry.elc" . 7556)) (gnus-registry-initialize) eval-buffer(#<buffer *load*> nil "/home/horn/.gnus.el" nil t) ; Reading at buffer position 2225 load-with-code-conversion("/home/horn/.gnus.el" "/home/horn/.gnus.el" nil t) load("~/.gnus.el" nil t) gnus-read-init-file() gnus-1(nil nil nil) gnus(nil) funcall-interactively(gnus nil) call-interactively(gnus record nil) command-execute(gnus record) execute-extended-command(nil "gnus" "gnus") funcall-interactively(execute-extended-command nil "gnus" "gnus") call-interactively(execute-extended-command nil nil) command-execute(execute-extended-command) --8<---------------cut here---------------end--------------->8--- For the time being, I reverted my local checkout to f02406c to keep Gnus functional. Ma Gnus v0.12 GNU Emacs 25.0.50.32 (x86_64-unknown-linux-gnu, GTK+ Version 3.14.7) of 2015-01-25 on thinkpad-t440p 200 news.gmane.org InterNetNews NNRP server INN 2.5.1 ready (posting ok) 100 Legal commands ARTICLE [message-ID|number] AUTHINFO USER name|PASS password|GENERIC program [argument ...] BODY [message-ID|number] CAPABILITIES [keyword] DATE GROUP newsgroup HDR header [message-ID|range] HEAD [message-ID|number] HELP IHAVE message-ID LAST LIST [ACTIVE [wildmat]|ACTIVE.TIMES [wildmat]|DISTRIB.PATS|DISTRIBUTIONS|HEADERS [MSGID|RANGE]|MODERATORS|MOTD|NEWSGROUPS [wildmat]|OVERVIEW.FMT|SUBSCRIPTIONS] LISTGROUP [newsgroup [range]] MODE READER NEWGROUPS [yy]yymmdd hhmmss [GMT] NEWNEWS wildmat [yy]yymmdd hhmmss [GMT] NEXT OVER [range] POST QUIT STARTTLS STAT [message-ID|number] XGTITLE [wildmat] XHDR header [message-ID|range] XOVER [range] XPAT header message-ID|range pattern [pattern ...] Report problems to <usenet <at> ger.gmane.org>. . 382 Begin TLS negotiation now 100 Legal commands ARTICLE [message-ID|number] AUTHINFO USER name|PASS password|GENERIC program [argument ...] BODY [message-ID|number] CAPABILITIES [keyword] DATE GROUP newsgroup HDR header [message-ID|range] HEAD [message-ID|number] HELP IHAVE message-ID LAST LIST [ACTIVE [wildmat]|ACTIVE.TIMES [wildmat]|DISTRIB.PATS|DISTRIBUTIONS|HEADERS [MSGID|RANGE]|MODERATORS|MOTD|NEWSGROUPS [wildmat]|OVERVIEW.FMT|SUBSCRIPTIONS] LISTGROUP [newsgroup [range]] MODE READER NEWGROUPS [yy]yymmdd hhmmss [GMT] NEWNEWS wildmat [yy]yymmdd hhmmss [GMT] NEXT OVER [range] POST QUIT STARTTLS STAT [message-ID|number] XGTITLE [wildmat] XHDR header [message-ID|range] XOVER [range] XPAT header message-ID|range pattern [pattern ...] Report problems to <usenet <at> ger.gmane.org>. .
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.