GNU bug report logs - #72788
30.0.50; multisession--ensure-db: Symbol’s function definition is void: sqlite-open [2 times]

Previous Next

Package: emacs;

Reported by: Jean Louis <bugs <at> gnu.support>

Date: Sat, 24 Aug 2024 12:55:01 UTC

Severity: normal

Found in version 30.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #29 received at 72788 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 72788 <at> debbugs.gnu.org, Jean Louis <bugs <at> gnu.support>
Subject: Re: bug#72788: 30.0.50; multisession--ensure-db: Symbol’s function
 definition is void: sqlite-open [2 times]
Date: Sat, 31 Aug 2024 10:09:05 -0400
> Stefan, do we have a way of causing the cl-defmethod dispatch reject a
> method due to a failed predicate?  The relevant method of
> multisession.el says:
>
>   (cl-defmethod multisession-backend-value ((_type (eql 'sqlite)) object)
>
> How can I modify this (or its callers?) to make this implementation be
> called only if sqlite-available-p returns non-nil?

AFAIK, the standard way to do that is:

    (cl-defmethod multisession-backend-value ((_type (eql 'sqlite)) object)
      (if (not (sqlite-available-p))
          (cl-call-next-method)
        ...do the usual thing...))

> Btw, it looks like it's okay to have cl-defmethod without a
> cl-defgeneric for the same method?  Is that expected?

Yes.  It's a bit like having a `setq` on a global var without
a matching `defvar`.


        Stefan





This bug report was last modified 257 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.