all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Stefan Kangas <stefankangas@gmail.com>
To: Adam Porter <adam@alphapapa.net>, luangruo@yahoo.com
Cc: eliz@gnu.org, emacs-devel@gnu.org, sbaugh@catern.com
Subject: Re: Turning on savehist-mode by default
Date: Sat, 16 Dec 2023 23:49:56 -0800	[thread overview]
Message-ID: <CADwFkmm0P7rH69tM=KxMsXhEzzTWds7=VSP5piwagkKHN7kctw@mail.gmail.com> (raw)
In-Reply-To: <461a0999-6005-4aa4-a4b3-988123855f92@alphapapa.net>

Adam Porter <adam@alphapapa.net> writes:

> In addition to what Po said, I'd like to gently reiterate what I said
> earlier in this thread: Given my experience with savehist causing
> unexpected and hard-to-debug performance problems[0], I'd guess that
> there are more such cases in the wild waiting to be triggered.  If, e.g.
> Emacs 30.1 enabled it by default, I can imagine a number of users
> suddenly encountering weird pauses, and they'd probably blame GC
> initially[1].
>
> As well, I have some concerns about savehist's having the potential to
> cause weird bugs in other libraries: The savehist-save function seems to
> comment out individual elements of savehist-minibuffer-history-variables
> that it determines are unreadable.  That's understandable from its
> perspective, but what effect will that have on libraries that may not be
> expecting for their data structures to have certain parts disappear
> after restarting Emacs?  I can just imagine the bug reports from users
> showing apparently corrupted or elided data structures, and having no
> clue as to what is mutating them, because the code isn't within the
> library having a bug reported against it.
>
> IMHO, a feature like this is indeed expected and overdue in Emacs, but I
> don't think savehist is a good way to enable it, given its current
> implementation.  ISTM that something built on top of the new
> multisession library would be more appropriate and (at least, have the
> potential to be) more robust.

Thanks, this is clear and compelling.

It seems to me that savehist-mode is *not* ready for being enabled by
default.  I think the best we can do at this point is to start working
on improve and/or replace it.

Would anyone like to volunteer to do that?

> 0: https://github.com/alphapapa/ement.el/issues/216

Did you think about how issues like the above could be solved (in
general, not necessarily in savehist specifically)?

> 1: Which may, in fact, be part of the problem, considering how
> savehist-save works: it prints a Lisp object to a buffer, then tries to
> read it to determine whether it's readable--doesn't that generate
> garbage?  Now consider doing that every 1-5 minutes and upon exit.

savehist (or it's replacement) could also be smarter about it, for
example you could skip re-serializing history variables that have not
been touched.



  reply	other threads:[~2023-12-17  7:49 UTC|newest]

Thread overview: 118+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-18 14:54 Turning on savehist-mode by default sbaugh
2023-11-18 16:33 ` [External] : " Drew Adams
2023-11-18 18:19   ` Philip Kaludercic
2023-11-18 21:06     ` Drew Adams
2023-11-18 21:42       ` Philip Kaludercic
2023-11-18 23:01         ` Drew Adams
2023-11-19  6:02           ` Eli Zaretskii
2023-11-19  6:56             ` Drew Adams
2023-11-19  7:05           ` Juri Linkov
2023-11-19  7:32             ` Yuri Khan
2023-11-19  8:26               ` Eli Zaretskii
2023-11-19  9:06                 ` Yuri Khan
2023-11-19  9:24                   ` Eli Zaretskii
2023-11-19 15:09                   ` Spencer Baugh
2023-11-20  9:53                 ` Manuel Giraud via Emacs development discussions.
2023-11-20 12:23                   ` Eli Zaretskii
2023-11-20 13:15                     ` Manuel Giraud via Emacs development discussions.
2023-11-20 14:05                       ` Eli Zaretskii
2023-11-23 15:57                         ` Eli Zaretskii
2023-11-23 16:31                           ` Manuel Giraud via Emacs development discussions.
2023-11-20 16:57                     ` Drew Adams
2023-11-20 18:34                       ` Eli Zaretskii
2023-11-20 18:54                         ` Drew Adams
2023-11-20 19:16                           ` Eli Zaretskii
2023-11-19 16:42               ` Drew Adams
2023-11-19 16:42             ` Drew Adams
2023-11-19 16:27         ` Visuwesh
2023-11-19 17:33           ` sbaugh
2023-11-19  6:59 ` Po Lu
2023-11-19  7:10   ` Eli Zaretskii
2023-11-19  7:27     ` Po Lu
2023-11-19  8:23       ` Eli Zaretskii
2023-11-19 14:08   ` Dmitry Gutov
2023-11-19 14:38     ` Po Lu
2023-11-19 14:43       ` Dmitry Gutov
2023-11-20  0:11         ` Po Lu
2023-11-19 15:17       ` Spencer Baugh
2023-11-20  0:09         ` Po Lu
2023-11-20  3:15           ` sbaugh
2023-11-20  3:40             ` Po Lu
2023-11-20 14:32               ` Spencer Baugh
2023-11-20  5:55         ` [OT] Not clobbering bash history brickviking
2023-11-20 17:50           ` Juri Linkov
2023-11-22  3:01           ` [OT] " Richard Stallman
2023-11-22  3:32             ` Arsen Arsenović
2023-11-22 20:43               ` Jens Schmidt via Emacs news and miscellaneous discussions outside the scope of other Emacs mailing lists
2023-11-22 21:50                 ` Arsen Arsenović via Emacs news and miscellaneous discussions outside the scope of other Emacs mailing lists
2023-11-23 12:42                   ` Spencer Baugh
2023-11-23 20:12                     ` Jens Schmidt via Emacs news and miscellaneous discussions outside the scope of other Emacs mailing lists
2023-11-25  2:58               ` Richard Stallman
2023-11-26 10:20                 ` Arsen Arsenović
2023-12-04  3:10                   ` Richard Stallman
2023-12-04 13:05                     ` Arsen Arsenović
2023-12-07  2:49                       ` Richard Stallman
2023-12-07  5:34                         ` mbork
2023-12-07  5:48                           ` Emanuel Berg
2023-12-07  9:34                             ` mbork
2023-12-07  5:52                           ` Yuri Khan
2023-12-07  6:22                             ` Emanuel Berg
2023-12-07  6:44                         ` Jean Louis
2023-12-11 12:09                           ` Arsen Arsenović via Emacs news and miscellaneous discussions outside the scope of other Emacs mailing lists
2023-12-07 13:06                         ` Arsen Arsenović via Emacs news and miscellaneous discussions outside the scope of other Emacs mailing lists
2023-12-08  3:56                           ` Richard Stallman
2023-12-08 10:15                             ` Arsen Arsenović via Emacs news and miscellaneous discussions outside the scope of other Emacs mailing lists
2023-12-08  3:54                       ` Richard Stallman
2023-12-08  6:22                         ` brickviking
2023-12-08 10:13                         ` Arsen Arsenović via Emacs news and miscellaneous discussions outside the scope of other Emacs mailing lists
2023-12-08  3:54                       ` Richard Stallman
2023-12-16 18:56   ` Turning on savehist-mode by default Stefan Kangas
2023-11-20  3:08 ` Richard Stallman
2023-11-20  3:16   ` Spencer Baugh
2023-11-28 11:04 ` Thanos Apollo
2023-11-28 14:11   ` Thanos Apollo
2023-11-28 14:38   ` Eli Zaretskii
2023-11-28 21:07     ` Adam Porter
2023-11-28 21:46       ` Dmitry Gutov
2023-11-29 12:31       ` Eli Zaretskii
2023-12-01  1:50 ` Björn Bidar
2023-12-16 19:01 ` Stefan Kangas
2023-12-16 19:40   ` Eli Zaretskii
2023-12-16 22:57     ` Stefan Kangas
2023-12-16 23:57       ` Po Lu
2023-12-17  5:42         ` Adam Porter
2023-12-17  7:49           ` Stefan Kangas [this message]
2023-12-17 11:09             ` Adam Porter
2023-12-22 10:45               ` Stefan Kangas
2023-12-22 11:48                 ` Visuwesh
2023-12-22 11:52                 ` Adam Porter
2023-12-22 14:22                   ` Yuri Khan
2023-12-17 12:02             ` Adam Porter
2023-12-17  8:12           ` Eli Zaretskii
2023-12-17 11:19             ` Adam Porter
2023-12-17 12:11               ` Eli Zaretskii
2023-12-19  3:49                 ` Richard Stallman
2023-12-17 18:48           ` [External] : " Drew Adams
2023-12-17  7:50         ` Eli Zaretskii
2023-12-17 11:48           ` Po Lu
2023-12-17 12:26             ` Eli Zaretskii
2023-12-17 13:31               ` Po Lu
2023-12-17 13:45                 ` Eli Zaretskii
2023-12-17 17:55                   ` Juergen Fenn
2023-12-17 18:09                     ` Eli Zaretskii
2023-12-17 19:51                       ` Juergen Fenn
2023-12-17 20:20                         ` Eli Zaretskii
2023-12-17 20:21                         ` Dmitry Gutov
2023-12-17 20:38                           ` Juergen Fenn
2023-12-17 20:52                             ` Dmitry Gutov
2023-12-17 21:12                               ` [External] : " Drew Adams
2023-12-17 21:16                                 ` Dmitry Gutov
2023-12-17 21:47                                   ` Juergen Fenn
2023-12-17 22:22                                     ` Drew Adams
2023-12-17 21:55                                   ` Drew Adams
2023-12-17 21:57                                     ` Dmitry Gutov
2023-12-17 22:34                                       ` Drew Adams
2023-12-18  0:47                           ` Po Lu
2023-12-18  3:36                             ` Eli Zaretskii
2023-12-17  7:40       ` Eli Zaretskii
2023-12-17 10:03         ` tomas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CADwFkmm0P7rH69tM=KxMsXhEzzTWds7=VSP5piwagkKHN7kctw@mail.gmail.com' \
    --to=stefankangas@gmail.com \
    --cc=adam@alphapapa.net \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=luangruo@yahoo.com \
    --cc=sbaugh@catern.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.