Re: problem after upgrading
Brent Busby <[email protected]> Thu, 08 Aug 2019 20:20:12 -0500
| Newsgroups | gmane.emacs.bbdb.user |
|---|---|
| Message-ID | <[email protected]> |
"Roland Winkler" <[email protected]> writes: > On Tue Aug 6 2019 Brent Busby wrote: >> "Roland Winkler" <[email protected]> writes: >> > Are you using a compiled BBDB? - Make sure that you have loaded the >> > current bbdb.el(c) and your problem should go away. >> >> I was sure that was probably it, so because I had so many old packages >> from 2015 in ~/.emacs.d/elpa/, I uninstalled everything as a separate >> operation before proceeding, confirmed that my packages subdirectory was >> clear, then installed the packages I mainly wanted fresh from the package >> menu. >> >> It still gives me the "invalid function: bbdb-pushnew" error, > > Something odd seems to be happening here: > > - Can you possibly get a more complete backtrace from the debugger > if you first run M-x toggle-debug-on-error Here's what I get from that, with real names and email addresses obfuscated to protect the guilty: --8<---------------cut here---------------start------------->8--- Debugger entered--Lisp error: (invalid-function bbdb-pushnew) bbdb-pushnew(["Klingon" "Hamster" nil nil nil nil nil ("[email protected]") nil "ba4a6872-5939-4209-b44b-4367798e94c0" "2016-08-01 17:14:52 +0000" "2016-08-01 17:14:52 +0000" ["Klingon Hamster" "Hamster, Klingon" nil ("[email protected]") nil #<marker at 6067 in bbdb>]] nil) bbdb-update-records((("Klingon Hamster" "[email protected]" "From" sender gnus) ("Jumping Jacks" "[email protected]" "CC" recipients gnus)) bbdb-select-message nil) bbdb-mua-update-records(nil bbdb-select-message) bbdb-mua-auto-update() run-hooks(gnus-article-prepare-hook) apply(run-hooks gnus-article-prepare-hook) gnus-run-hooks(gnus-article-prepare-hook) gnus-article-prepare(19119 nil) gnus-summary-display-article(19119 nil) gnus-summary-select-article(nil nil pseudo) gnus-summary-scroll-up(1) funcall-interactively(gnus-summary-scroll-up 1) call-interactively(gnus-summary-scroll-up nil nil) command-execute(gnus-summary-scroll-up) --8<---------------cut here---------------end--------------->8--- > Is this error triggered by some uncompiled or compiled code? That I can't tell from the above, though my ~/.emacs.d/elpa/bbdb-20190609.316/ subdirectory contains both .el and .elc files for everything, including bbdb.el / bbdb.elc. > Is this code part of bbdb itself or is the error triggered by some > "third-party code" that uses bbdb? It's almost certainly being triggered by Gnus. In fact, I don't see it until I view an email in Gnus containing a name/email address that's in my addressbook, and it never appears any other time. The error is emitted every time such an email is viewed, not just the first time. Running gnus-version says I'm on Gnus 5.13, which I got bundled with GNU Emacs 26.2. > - Can you locate the file bbdb.el on your computer and check that it > contains the line > > (defmacro bbdb-pushnew (element listname) Yes, in fact here's the whole excerpt from ~/.emacs.d/elpa/bbdb-20190609.316/bbdb/el. There are no other versions of BBDB installed anywhere, either as MELPA packages nor system-wide through Linux, besides this version: --8<---------------cut here---------------start------------->8--- ;; The following macros implement variants of `pushnew' (till emacs 24.2) ;; or `cl-pushnew' (since emacs 24.3). To be compatible with older and newer ;; versions of emacs we use our own macros. We call these macros often. ;; So we keep them simple. Nothing fancy is needed here. (defmacro bbdb-pushnew (element listname) "Add ELEMENT to the value of LISTNAME if it isn't there yet. The test for presence of ELEMENT is done with `equal'. The return value is the new value of LISTNAME." `(let ((elt ,element)) (if (member elt ,listname) ,listname (setq ,listname (cons elt ,listname))))) --8<---------------cut here---------------end--------------->8--- > What happens if you load this file before doing anything else? Nothing different, but then I do have (require 'bbdb) in my ~/.emacs, so that's already being done for me when Emacs starts.