unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#72788: 30.0.50; multisession--ensure-db: Symbol’s function definition is void: sqlite-open [2 times]
@ 2024-08-24  8:54 Jean Louis
  2024-08-24 13:01 ` Eli Zaretskii
  0 siblings, 1 reply; 10+ messages in thread
From: Jean Louis @ 2024-08-24  8:54 UTC (permalink / raw)
  To: 72788



Following bug does not appear from 'emacs -Q':

When I press C-x 8 e s to search for emoji, and then for example I
choose "mobile phone", when I press RET, then I get this error:

multisession--ensure-db: Symbol’s function definition is void: sqlite-open

I am not using function 'sqlite-open' and I do not see why should I get
this error, I did not have it before.


In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.38, cairo version 1.16.0) of 2024-05-04 built on lco2
Repository revision: fd859fbea2e9d13e76db1c5295d9ddd1c5955d83
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12201009
System Description: Debian GNU/Linux 12 (bookworm)

Configured using:
 'configure --with-x-toolkit=gtk3'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG LCMS2
LIBSELINUX LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG
SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM XINPUT2
XPM GTK3 ZLIB

Important settings:
  value of $LC_ALL: en_US.UTF-8
  value of $LC_MONETARY: en_US.UTF-8
  value of $LC_NUMERIC: en_US.UTF-8
  value of $LC_TIME: en_US.UTF-8
  value of $LANG: de_DE.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068
epg-config gnus-util text-property-search time-date subr-x mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
cl-extra cl-print byte-opt gv bytecomp byte-compile thingatpt help-fns
radix-tree help-mode cl-loaddefs cl-lib rmc iso-transl tooltip cconv
eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq
simple cl-generic indonesian philippine cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button
loaddefs theme-loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
cairo gtk x-toolkit xinput2 x multi-tty move-toolbar
make-network-process native-compile emacs)

Memory information:
((conses 16 68768 16261) (symbols 48 6251 0) (strings 32 19746 1582)
 (string-bytes 1 532956) (vectors 16 11442)
 (vector-slots 8 154781 11438) (floats 8 46 105) (intervals 56 303 0)
 (buffers 984 13))

-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

✡️🛡️ Proudly standing with Israel, a nation rooted in history and culture. Let's condemn hatred and promote understanding.

In support of Richard M. Stallman
https://stallmansupport.org/





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#72788: 30.0.50; multisession--ensure-db: Symbol’s function definition is void: sqlite-open [2 times]
  2024-08-24  8:54 bug#72788: 30.0.50; multisession--ensure-db: Symbol’s function definition is void: sqlite-open [2 times] Jean Louis
@ 2024-08-24 13:01 ` Eli Zaretskii
  2024-08-24 21:59   ` Jean Louis
  0 siblings, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2024-08-24 13:01 UTC (permalink / raw)
  To: Jean Louis; +Cc: 72788

> Date: Sat, 24 Aug 2024 11:54:49 +0300
> From: Jean Louis <bugs@gnu.support>
> 
> Following bug does not appear from 'emacs -Q':

Then please show the minimal recipe to reproduce it, starting from
"emacs -Q".

> When I press C-x 8 e s to search for emoji, and then for example I
> choose "mobile phone", when I press RET, then I get this error:
> 
> multisession--ensure-db: Symbol’s function definition is void: sqlite-open
> 
> I am not using function 'sqlite-open' and I do not see why should I get
> this error, I did not have it before.

I cannot reproduce this.  If you cannot show a reproduction recipe,
please show the Lisp backtrace from this error (by setting
debug-on-error non-nil), then we could try to figure out why this
happened to you.

Thanks.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#72788: 30.0.50; multisession--ensure-db: Symbol’s function definition is void: sqlite-open [2 times]
  2024-08-24 13:01 ` Eli Zaretskii
@ 2024-08-24 21:59   ` Jean Louis
  2024-08-25  5:36     ` Eli Zaretskii
  0 siblings, 1 reply; 10+ messages in thread
From: Jean Louis @ 2024-08-24 21:59 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 72788

* Eli Zaretskii <eliz@gnu.org> [2024-08-24 16:03]:
> > Date: Sat, 24 Aug 2024 11:54:49 +0300
> > From: Jean Louis <bugs@gnu.support>
> > 
> > Following bug does not appear from 'emacs -Q':
> 
> Then please show the minimal recipe to reproduce it, starting from
> "emacs -Q".
> 
> > When I press C-x 8 e s to search for emoji, and then for example I
> > choose "mobile phone", when I press RET, then I get this error:
> > 
> > multisession--ensure-db: Symbol’s function definition is void: sqlite-open
> > 
> > I am not using function 'sqlite-open' and I do not see why should I get
> > this error, I did not have it before.
> 
> I cannot reproduce this.  If you cannot show a reproduction recipe,
> please show the Lisp backtrace from this error (by setting
> debug-on-error non-nil), then we could try to figure out why this
> happened to you.

Debugger entered--Lisp error: (void-function sqlite-open)
  sqlite-open("/home/data1/protected/.emacs.d/multisession/sqlite/multisession.sqlite")
  multisession--ensure-db()
  #f(compiled-function (type object) #<bytecode -0x15e791ee860f7dc6>)(sqlite #s(multisession :key "emoji--recent" :initial-value ("😀" "😖") :package "emoji" :storage sqlite :synchronized nil :cached-value unbound :cached-sequence 0))
  apply(#f(compiled-function (type object) #<bytecode -0x15e791ee860f7dc6>) sqlite #s(multisession :key "emoji--recent" :initial-value ("😀" "😖") :package "emoji" :storage sqlite :synchronized nil :cached-value unbound :cached-sequence 0))
  multisession-backend-value(sqlite #s(multisession :key "emoji--recent" :initial-value ("😀" "😖") :package "emoji" :storage sqlite :synchronized nil :cached-value unbound :cached-sequence 0))
  multisession-value(#s(multisession :key "emoji--recent" :initial-value ("😀" "😖") :package "emoji" :storage sqlite :synchronized nil :cached-value unbound :cached-sequence 0))
  emoji--add-recent("📱")
  emoji-search("📱" nil)
  funcall-interactively(emoji-search "📱" nil)
  command-execute(emoji-search)

I have no idea where .emacs.d/multisession/ directory comes from. 

Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

✡️🛡️ Proudly standing with Israel, a nation rooted in history and culture. Let's condemn hatred and promote understanding.

In support of Richard M. Stallman
https://stallmansupport.org/





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#72788: 30.0.50; multisession--ensure-db: Symbol’s function definition is void: sqlite-open [2 times]
  2024-08-24 21:59   ` Jean Louis
@ 2024-08-25  5:36     ` Eli Zaretskii
  2024-08-26  7:57       ` Jean Louis
  2024-08-26  7:57       ` Jean Louis
  0 siblings, 2 replies; 10+ messages in thread
From: Eli Zaretskii @ 2024-08-25  5:36 UTC (permalink / raw)
  To: Jean Louis; +Cc: 72788

> Date: Sun, 25 Aug 2024 00:59:34 +0300
> From: Jean Louis <bugs@gnu.support>
> Cc: 72788@debbugs.gnu.org
> 
> * Eli Zaretskii <eliz@gnu.org> [2024-08-24 16:03]:
> > > Date: Sat, 24 Aug 2024 11:54:49 +0300
> > > From: Jean Louis <bugs@gnu.support>
> > > 
> > > Following bug does not appear from 'emacs -Q':
> > 
> > Then please show the minimal recipe to reproduce it, starting from
> > "emacs -Q".
> > 
> > > When I press C-x 8 e s to search for emoji, and then for example I
> > > choose "mobile phone", when I press RET, then I get this error:
> > > 
> > > multisession--ensure-db: Symbol’s function definition is void: sqlite-open
> > > 
> > > I am not using function 'sqlite-open' and I do not see why should I get
> > > this error, I did not have it before.
> > 
> > I cannot reproduce this.  If you cannot show a reproduction recipe,
> > please show the Lisp backtrace from this error (by setting
> > debug-on-error non-nil), then we could try to figure out why this
> > happened to you.
> 
> Debugger entered--Lisp error: (void-function sqlite-open)
>   sqlite-open("/home/data1/protected/.emacs.d/multisession/sqlite/multisession.sqlite")
>   multisession--ensure-db()
>   #f(compiled-function (type object) #<bytecode -0x15e791ee860f7dc6>)(sqlite #s(multisession :key "emoji--recent" :initial-value ("😀" "😖") :package "emoji" :storage sqlite :synchronized nil :cached-value unbound :cached-sequence 0))
>   apply(#f(compiled-function (type object) #<bytecode -0x15e791ee860f7dc6>) sqlite #s(multisession :key "emoji--recent" :initial-value ("😀" "😖") :package "emoji" :storage sqlite :synchronized nil :cached-value unbound :cached-sequence 0))
>   multisession-backend-value(sqlite #s(multisession :key "emoji--recent" :initial-value ("😀" "😖") :package "emoji" :storage sqlite :synchronized nil :cached-value unbound :cached-sequence 0))
>   multisession-value(#s(multisession :key "emoji--recent" :initial-value ("😀" "😖") :package "emoji" :storage sqlite :synchronized nil :cached-value unbound :cached-sequence 0))
>   emoji--add-recent("📱")
>   emoji-search("📱" nil)
>   funcall-interactively(emoji-search "📱" nil)
>   command-execute(emoji-search)
> 
> I have no idea where .emacs.d/multisession/ directory comes from. 

Did you customize multisession-storage to the value 'sqlite?  The
default is 'files.  You cannot customize it to use 'sqlite if your
Emacs doesn't have sqlite support (as it seems to be the case).

In addition, you seem to be using a very old build of Emacs 30, so
please update from Git and rebuild, to avoid having bugs that were
long ago fixed.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#72788: 30.0.50; multisession--ensure-db: Symbol’s function definition is void: sqlite-open [2 times]
  2024-08-25  5:36     ` Eli Zaretskii
@ 2024-08-26  7:57       ` Jean Louis
  2024-08-31 10:27         ` Eli Zaretskii
  2024-08-26  7:57       ` Jean Louis
  1 sibling, 1 reply; 10+ messages in thread
From: Jean Louis @ 2024-08-26  7:57 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 72788

* Eli Zaretskii <eliz@gnu.org> [2024-08-25 08:38]:
> Did you customize multisession-storage to the value 'sqlite?  The
> default is 'files.  You cannot customize it to use 'sqlite if your
> Emacs doesn't have sqlite support (as it seems to be the case).

Yes, it was customized that way. When I changed the operating system,
then the sqlite development library was not there.

But if Emacs is trying to use sqlite functions, then it would be
better that program verifies if sqlite functions are there, and then
use default "files" as option.

I have now compiled it with development libraries and it works again.

> In addition, you seem to be using a very old build of Emacs 30, so
> please update from Git and rebuild, to avoid having bugs that were
> long ago fixed.

Sure, I was busy for longer time. 

Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

✡️🛡️ Proudly standing with Israel, a nation rooted in history and culture. Let's condemn hatred and promote understanding.

In support of Richard M. Stallman
https://stallmansupport.org/





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#72788: 30.0.50; multisession--ensure-db: Symbol’s function definition is void: sqlite-open [2 times]
  2024-08-25  5:36     ` Eli Zaretskii
  2024-08-26  7:57       ` Jean Louis
@ 2024-08-26  7:57       ` Jean Louis
  2024-08-31 10:28         ` Eli Zaretskii
  1 sibling, 1 reply; 10+ messages in thread
From: Jean Louis @ 2024-08-26  7:57 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 72788

I think it can be closed now.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#72788: 30.0.50; multisession--ensure-db: Symbol’s function definition is void: sqlite-open [2 times]
  2024-08-26  7:57       ` Jean Louis
@ 2024-08-31 10:27         ` Eli Zaretskii
  2024-08-31 14:09           ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2024-08-31 10:27 UTC (permalink / raw)
  To: Jean Louis, Stefan Monnier; +Cc: 72788

> Date: Mon, 26 Aug 2024 10:57:43 +0300
> From: Jean Louis <bugs@gnu.support>
> Cc: 72788@debbugs.gnu.org
> 
> * Eli Zaretskii <eliz@gnu.org> [2024-08-25 08:38]:
> > Did you customize multisession-storage to the value 'sqlite?  The
> > default is 'files.  You cannot customize it to use 'sqlite if your
> > Emacs doesn't have sqlite support (as it seems to be the case).
> 
> Yes, it was customized that way. When I changed the operating system,
> then the sqlite development library was not there.
> 
> But if Emacs is trying to use sqlite functions, then it would be
> better that program verifies if sqlite functions are there, and then
> use default "files" as option.
> 
> I have now compiled it with development libraries and it works again.

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?

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





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#72788: 30.0.50; multisession--ensure-db: Symbol’s function definition is void: sqlite-open [2 times]
  2024-08-26  7:57       ` Jean Louis
@ 2024-08-31 10:28         ` Eli Zaretskii
  0 siblings, 0 replies; 10+ messages in thread
From: Eli Zaretskii @ 2024-08-31 10:28 UTC (permalink / raw)
  To: Jean Louis; +Cc: 72788

> Date: Mon, 26 Aug 2024 10:57:58 +0300
> From: Jean Louis <bugs@gnu.support>
> Cc: 72788@debbugs.gnu.org
> 
> I think it can be closed now.

Thanks, I will close if we don't have any better way of handling this
situation than signaling an error.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#72788: 30.0.50; multisession--ensure-db: Symbol’s function definition is void: sqlite-open [2 times]
  2024-08-31 10:27         ` Eli Zaretskii
@ 2024-08-31 14:09           ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-09-07  7:43             ` Eli Zaretskii
  0 siblings, 1 reply; 10+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-08-31 14:09 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 72788, Jean Louis

> 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






^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#72788: 30.0.50; multisession--ensure-db: Symbol’s function definition is void: sqlite-open [2 times]
  2024-08-31 14:09           ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-09-07  7:43             ` Eli Zaretskii
  0 siblings, 0 replies; 10+ messages in thread
From: Eli Zaretskii @ 2024-09-07  7:43 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: bugs, 72788-done

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: Jean Louis <bugs@gnu.support>,  72788@debbugs.gnu.org
> 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...))

Thanks, now done on master, and closing the bug.





^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2024-09-07  7:43 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-24  8:54 bug#72788: 30.0.50; multisession--ensure-db: Symbol’s function definition is void: sqlite-open [2 times] Jean Louis
2024-08-24 13:01 ` Eli Zaretskii
2024-08-24 21:59   ` Jean Louis
2024-08-25  5:36     ` Eli Zaretskii
2024-08-26  7:57       ` Jean Louis
2024-08-31 10:27         ` Eli Zaretskii
2024-08-31 14:09           ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-09-07  7:43             ` Eli Zaretskii
2024-08-26  7:57       ` Jean Louis
2024-08-31 10:28         ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).