GNU bug report logs - #50246
28.0.50; persist.el will incorrectly serialize a symbol's value... sometimes

Previous Next

Package: emacs;

Reported by: Felipe Lema <felipelema <at> mortemale.org>

Date: Sun, 29 Aug 2021 05:19:01 UTC

Severity: normal

Found in version 28.0.50

Fixed in version 28.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 50246 in the body.
You can then email your comments to 50246 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#50246; Package emacs. (Sun, 29 Aug 2021 05:19:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Felipe Lema <felipelema <at> mortemale.org>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 29 Aug 2021 05:19:01 GMT) Full text and rfc822 format available.

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

From: Felipe Lema <felipelema <at> mortemale.org>
To: bug-gnu-emacs <at> gnu.org
Subject: 28.0.50;
 persist.el will incorrectly serialize a symbol's value... sometimes
Date: Sun, 29 Aug 2021 00:01:43 -0400
[Message part 1 (text/plain, inline)]
Hello, there

I've been using persist.el for quite a while (through frecentf.el from MELPA) and it seems that sometimes persist will truncate hash tables (as described in `print-length` 's documentation, using ellipsis).
This ends up in Emacs erroring out at startup due to the serialization being un-hash-table-ish (due to the (quote ...) ).

Unfortunately, I haven't been able to reproduce this problem consistently.

However, I do have a fix for this problem and I've attached it as a patch. It's basically ensuring that printing / serializing a symbol uses the safest configuration possible (no limit for elements, no problems with special characters such as '\0', etc).

The `let` bindings were developed by experience and I'm already using this "safe serialization" config in another package I maintain ( session-async.el ).

Thanks y'all for maintaining Emacs. It's a very useful tool and I use it every day at work.

Felipe

In GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, cairo version 1.15.10)
 of 2021-08-28 built on felipe-ThinkPad-X200
Repository revision: 692da8c6a82f8de376a2eec9304773b3e85205f3
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
System Description: Trisquel GNU/Linux Etiona (9.0)

Configured using:
 'configure --without-native-compilation --with-x-toolkit=no
 --without-xpm --without-gnutls'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GSETTINGS HARFBUZZ JPEG LCMS2 LIBXML2
MODULES NOTIFY INOTIFY OLDXMENU PDUMPER PNG SECCOMP SOUND THREADS TIFF
X11 XDBE XIM ZLIB

Important settings:
  value of $LC_ALL: 
  value of $LC_MESSAGES: en_DK.UTF-8
  value of $LC_MONETARY: en_DK.UTF-8
  value of $LC_NUMERIC: en_DK.UTF-8
  value of $LC_TIME: en_DK.UTF-8
  value of $LANG: en_DK.UTF-8
  locale-coding-system: utf-8-unix

Major mode: DOOM v3.0.0-alpha

Minor modes in effect:
  gcmh-mode: t
  global-hl-line-mode: t
  hl-line-mode: t
  winner-mode: t
  show-paren-mode: t
  smartparens-global-mode: t
  ws-butler-global-mode: t
  global-undo-fu-session-mode: t
  undo-fu-session-mode: t
  undo-fu-mode: t
  global-flycheck-mode: t
  which-key-mode: t
  better-jumper-mode: t
  better-jumper-local-mode: t
  global-company-mode: t
  company-mode: t
  vertico-mode: t
  marginalia-mode: t
  evil-goggles-mode: t
  evil-escape-mode: t
  evil-snipe-override-mode: t
  evil-snipe-mode: t
  evil-snipe-override-local-mode: t
  evil-snipe-local-mode: t
  global-git-commit-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  savehist-mode: t
  solaire-global-mode: t
  solaire-mode: t
  doom-modeline-mode: t
  persp-mode: t
  shell-dirtrack-mode: t
  evil-mode: t
  evil-local-mode: t
  windmove-mode: t
  +popup-mode: t
  general-override-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  window-divider-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org-contrib/ox-koma-letter hides /home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ox-koma-letter
/home/felipe/.emacs.d/.local/straight/build-28.0.50/use-package/use-package hides /home/felipe/.emacs.d/.local/straight/repos/use-package/use-package
/home/felipe/.emacs.d/.local/straight/build-28.0.50/use-package/use-package-lint hides /home/felipe/.emacs.d/.local/straight/repos/use-package/use-package-lint
/home/felipe/.emacs.d/.local/straight/build-28.0.50/use-package/use-package-jump hides /home/felipe/.emacs.d/.local/straight/repos/use-package/use-package-jump
/home/felipe/.emacs.d/.local/straight/build-28.0.50/use-package/use-package-ensure hides /home/felipe/.emacs.d/.local/straight/repos/use-package/use-package-ensure
/home/felipe/.emacs.d/.local/straight/build-28.0.50/use-package/use-package-diminish hides /home/felipe/.emacs.d/.local/straight/repos/use-package/use-package-diminish
/home/felipe/.emacs.d/.local/straight/build-28.0.50/use-package/use-package-delight hides /home/felipe/.emacs.d/.local/straight/repos/use-package/use-package-delight
/home/felipe/.emacs.d/.local/straight/build-28.0.50/use-package/use-package-core hides /home/felipe/.emacs.d/.local/straight/repos/use-package/use-package-core
/home/felipe/.emacs.d/.local/straight/build-28.0.50/use-package/use-package-bind-key hides /home/felipe/.emacs.d/.local/straight/repos/use-package/use-package-bind-key
/home/felipe/.emacs.d/.local/straight/build-28.0.50/bind-key/bind-key hides /home/felipe/.emacs.d/.local/straight/repos/use-package/bind-key
/home/felipe/.emacs.d/.local/straight/build-28.0.50/straight/straight hides /home/felipe/.emacs.d/.local/straight/repos/straight.el/straight
/home/felipe/.emacs.d/.local/straight/build-28.0.50/straight/straight-x hides /home/felipe/.emacs.d/.local/straight/repos/straight.el/straight-x
/home/felipe/.emacs.d/.local/straight/repos/straight.el/indent hides /usr/local/share/emacs/28.0.50/lisp/indent
/home/felipe/.emacs.d/.local/straight/build-28.0.50/transient/transient hides /usr/local/share/emacs/28.0.50/lisp/transient
/home/felipe/.emacs.d/.local/straight/build-28.0.50/project/project hides /usr/local/share/emacs/28.0.50/lisp/progmodes/project
/home/felipe/.emacs.d/.local/straight/build-28.0.50/xref/xref hides /usr/local/share/emacs/28.0.50/lisp/progmodes/xref
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-ruby hides /usr/local/share/emacs/28.0.50/lisp/org/ob-ruby
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ol-info hides /usr/local/share/emacs/28.0.50/lisp/org/ol-info
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-clojure hides /usr/local/share/emacs/28.0.50/lisp/org/ob-clojure
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-emacs-lisp hides /usr/local/share/emacs/28.0.50/lisp/org/ob-emacs-lisp
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-css hides /usr/local/share/emacs/28.0.50/lisp/org/ob-css
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-eshell hides /usr/local/share/emacs/28.0.50/lisp/org/ob-eshell
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ol-irc hides /usr/local/share/emacs/28.0.50/lisp/org/ol-irc
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ox-texinfo hides /usr/local/share/emacs/28.0.50/lisp/org/ox-texinfo
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-datetree hides /usr/local/share/emacs/28.0.50/lisp/org/org-datetree
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-ctags hides /usr/local/share/emacs/28.0.50/lisp/org/org-ctags
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-indent hides /usr/local/share/emacs/28.0.50/lisp/org/org-indent
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-table hides /usr/local/share/emacs/28.0.50/lisp/org/org-table
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-perl hides /usr/local/share/emacs/28.0.50/lisp/org/ob-perl
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-plantuml hides /usr/local/share/emacs/28.0.50/lisp/org/ob-plantuml
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-protocol hides /usr/local/share/emacs/28.0.50/lisp/org/org-protocol
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-agenda hides /usr/local/share/emacs/28.0.50/lisp/org/org-agenda
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ox-org hides /usr/local/share/emacs/28.0.50/lisp/org/ox-org
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-capture hides /usr/local/share/emacs/28.0.50/lisp/org/org-capture
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ox-md hides /usr/local/share/emacs/28.0.50/lisp/org/ox-md
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-ocaml hides /usr/local/share/emacs/28.0.50/lisp/org/ob-ocaml
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-org hides /usr/local/share/emacs/28.0.50/lisp/org/ob-org
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-core hides /usr/local/share/emacs/28.0.50/lisp/org/ob-core
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-goto hides /usr/local/share/emacs/28.0.50/lisp/org/org-goto
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-J hides /usr/local/share/emacs/28.0.50/lisp/org/ob-J
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ox-odt hides /usr/local/share/emacs/28.0.50/lisp/org/ox-odt
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ol-bbdb hides /usr/local/share/emacs/28.0.50/lisp/org/ol-bbdb
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-groovy hides /usr/local/share/emacs/28.0.50/lisp/org/ob-groovy
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-gnuplot hides /usr/local/share/emacs/28.0.50/lisp/org/ob-gnuplot
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-inlinetask hides /usr/local/share/emacs/28.0.50/lisp/org/org-inlinetask
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-picolisp hides /usr/local/share/emacs/28.0.50/lisp/org/ob-picolisp
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-src hides /usr/local/share/emacs/28.0.50/lisp/org/org-src
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-forth hides /usr/local/share/emacs/28.0.50/lisp/org/ob-forth
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-footnote hides /usr/local/share/emacs/28.0.50/lisp/org/org-footnote
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ol-bibtex hides /usr/local/share/emacs/28.0.50/lisp/org/ol-bibtex
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-octave hides /usr/local/share/emacs/28.0.50/lisp/org/ob-octave
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-element hides /usr/local/share/emacs/28.0.50/lisp/org/org-element
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ol-gnus hides /usr/local/share/emacs/28.0.50/lisp/org/ol-gnus
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-C hides /usr/local/share/emacs/28.0.50/lisp/org/ob-C
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-ebnf hides /usr/local/share/emacs/28.0.50/lisp/org/ob-ebnf
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ox-ascii hides /usr/local/share/emacs/28.0.50/lisp/org/ox-ascii
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-calc hides /usr/local/share/emacs/28.0.50/lisp/org/ob-calc
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-tangle hides /usr/local/share/emacs/28.0.50/lisp/org/ob-tangle
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-lilypond hides /usr/local/share/emacs/28.0.50/lisp/org/ob-lilypond
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-mobile hides /usr/local/share/emacs/28.0.50/lisp/org/org-mobile
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ol-rmail hides /usr/local/share/emacs/28.0.50/lisp/org/ol-rmail
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-macro hides /usr/local/share/emacs/28.0.50/lisp/org/org-macro
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-hledger hides /usr/local/share/emacs/28.0.50/lisp/org/ob-hledger
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-sed hides /usr/local/share/emacs/28.0.50/lisp/org/ob-sed
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-attach hides /usr/local/share/emacs/28.0.50/lisp/org/org-attach
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-sqlite hides /usr/local/share/emacs/28.0.50/lisp/org/ob-sqlite
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-sass hides /usr/local/share/emacs/28.0.50/lisp/org/ob-sass
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-scheme hides /usr/local/share/emacs/28.0.50/lisp/org/ob-scheme
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-ref hides /usr/local/share/emacs/28.0.50/lisp/org/ob-ref
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-exp hides /usr/local/share/emacs/28.0.50/lisp/org/ob-exp
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-lisp hides /usr/local/share/emacs/28.0.50/lisp/org/ob-lisp
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-vala hides /usr/local/share/emacs/28.0.50/lisp/org/ob-vala
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-fortran hides /usr/local/share/emacs/28.0.50/lisp/org/ob-fortran
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ol-mhe hides /usr/local/share/emacs/28.0.50/lisp/org/ol-mhe
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ox-man hides /usr/local/share/emacs/28.0.50/lisp/org/ox-man
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-coq hides /usr/local/share/emacs/28.0.50/lisp/org/ob-coq
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-awk hides /usr/local/share/emacs/28.0.50/lisp/org/ob-awk
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob hides /usr/local/share/emacs/28.0.50/lisp/org/ob
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-shen hides /usr/local/share/emacs/28.0.50/lisp/org/ob-shen
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ol-eshell hides /usr/local/share/emacs/28.0.50/lisp/org/ol-eshell
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-matlab hides /usr/local/share/emacs/28.0.50/lisp/org/ob-matlab
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-R hides /usr/local/share/emacs/28.0.50/lisp/org/ob-R
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-macs hides /usr/local/share/emacs/28.0.50/lisp/org/org-macs
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-timer hides /usr/local/share/emacs/28.0.50/lisp/org/org-timer
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-clock hides /usr/local/share/emacs/28.0.50/lisp/org/org-clock
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-haskell hides /usr/local/share/emacs/28.0.50/lisp/org/ob-haskell
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-crypt hides /usr/local/share/emacs/28.0.50/lisp/org/org-crypt
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-lua hides /usr/local/share/emacs/28.0.50/lisp/org/ob-lua
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-abc hides /usr/local/share/emacs/28.0.50/lisp/org/ob-abc
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-refile hides /usr/local/share/emacs/28.0.50/lisp/org/org-refile
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-id hides /usr/local/share/emacs/28.0.50/lisp/org/org-id
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-dot hides /usr/local/share/emacs/28.0.50/lisp/org/ob-dot
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-num hides /usr/local/share/emacs/28.0.50/lisp/org/org-num
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ox hides /usr/local/share/emacs/28.0.50/lisp/org/ox
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ox-publish hides /usr/local/share/emacs/28.0.50/lisp/org/ox-publish
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-makefile hides /usr/local/share/emacs/28.0.50/lisp/org/ob-makefile
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-mscgen hides /usr/local/share/emacs/28.0.50/lisp/org/ob-mscgen
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-lint hides /usr/local/share/emacs/28.0.50/lisp/org/org-lint
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-attach-git hides /usr/local/share/emacs/28.0.50/lisp/org/org-attach-git
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-screen hides /usr/local/share/emacs/28.0.50/lisp/org/ob-screen
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-processing hides /usr/local/share/emacs/28.0.50/lisp/org/ob-processing
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-list hides /usr/local/share/emacs/28.0.50/lisp/org/org-list
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-tempo hides /usr/local/share/emacs/28.0.50/lisp/org/org-tempo
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-js hides /usr/local/share/emacs/28.0.50/lisp/org/ob-js
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ol hides /usr/local/share/emacs/28.0.50/lisp/org/ol
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-sql hides /usr/local/share/emacs/28.0.50/lisp/org/ob-sql
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org hides /usr/local/share/emacs/28.0.50/lisp/org/org
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-maxima hides /usr/local/share/emacs/28.0.50/lisp/org/ob-maxima
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ol-docview hides /usr/local/share/emacs/28.0.50/lisp/org/ol-docview
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-table hides /usr/local/share/emacs/28.0.50/lisp/org/ob-table
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ox-beamer hides /usr/local/share/emacs/28.0.50/lisp/org/ox-beamer
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-loaddefs hides /usr/local/share/emacs/28.0.50/lisp/org/org-loaddefs
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-plot hides /usr/local/share/emacs/28.0.50/lisp/org/org-plot
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-shell hides /usr/local/share/emacs/28.0.50/lisp/org/ob-shell
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-python hides /usr/local/share/emacs/28.0.50/lisp/org/ob-python
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-version hides /usr/local/share/emacs/28.0.50/lisp/org/org-version
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ox-html hides /usr/local/share/emacs/28.0.50/lisp/org/ox-html
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-faces hides /usr/local/share/emacs/28.0.50/lisp/org/org-faces
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-habit hides /usr/local/share/emacs/28.0.50/lisp/org/org-habit
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-archive hides /usr/local/share/emacs/28.0.50/lisp/org/org-archive
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-comint hides /usr/local/share/emacs/28.0.50/lisp/org/ob-comint
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ol-eww hides /usr/local/share/emacs/28.0.50/lisp/org/ol-eww
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-pcomplete hides /usr/local/share/emacs/28.0.50/lisp/org/org-pcomplete
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ox-latex hides /usr/local/share/emacs/28.0.50/lisp/org/ox-latex
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-stan hides /usr/local/share/emacs/28.0.50/lisp/org/ob-stan
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-ditaa hides /usr/local/share/emacs/28.0.50/lisp/org/ob-ditaa
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-colview hides /usr/local/share/emacs/28.0.50/lisp/org/org-colview
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-latex hides /usr/local/share/emacs/28.0.50/lisp/org/ob-latex
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-duration hides /usr/local/share/emacs/28.0.50/lisp/org/org-duration
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-eval hides /usr/local/share/emacs/28.0.50/lisp/org/ob-eval
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ol-w3m hides /usr/local/share/emacs/28.0.50/lisp/org/ol-w3m
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-io hides /usr/local/share/emacs/28.0.50/lisp/org/ob-io
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-asymptote hides /usr/local/share/emacs/28.0.50/lisp/org/ob-asymptote
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-ledger hides /usr/local/share/emacs/28.0.50/lisp/org/ob-ledger
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-keys hides /usr/local/share/emacs/28.0.50/lisp/org/org-keys
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-compat hides /usr/local/share/emacs/28.0.50/lisp/org/org-compat
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-java hides /usr/local/share/emacs/28.0.50/lisp/org/ob-java
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-entities hides /usr/local/share/emacs/28.0.50/lisp/org/org-entities
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-install hides /usr/local/share/emacs/28.0.50/lisp/org/org-install
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ox-icalendar hides /usr/local/share/emacs/28.0.50/lisp/org/ox-icalendar
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/ob-lob hides /usr/local/share/emacs/28.0.50/lisp/org/ob-lob
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-feed hides /usr/local/share/emacs/28.0.50/lisp/org/org-feed
/home/felipe/.emacs.d/.local/straight/build-28.0.50/org/org-mouse hides /usr/local/share/emacs/28.0.50/lisp/org/org-mouse

Features:
(shadow sort disp-table whitespace flycheck-popup-tip
evil-collection-popup popup vi-tilde-fringe display-line-numbers gcmh
hl-line winner paren smartparens-config smartparens-text smartparens
ws-butler undo-fu-session undo-fu flycheck-package package-lint
evil-collection-finder finder finder-inf lisp-mnt
evil-collection-flycheck flycheck mail-extr emacsbug sendmail mule-util
vertico-repeat cursor-sensor evil-collection-which-key which-key
better-jumper company-capf company vertico orderless marginalia
evil-goggles pulse color evil-easymotion avy evil-escape evil-snipe
org-capture org-agenda org-refile evil-collection-magit-todos
magit-todos pcre2el rxt re-builder hl-todo async evil-collection-grep
grep evil-collection-compile compile orgit smartparens-org org-yt
org-element avl-tree generator org ob ob-tangle ob-ref ob-lob ob-table
ob-exp org-macro org-footnote org-src ob-comint org-pcomplete org-list
org-faces org-entities noutline outline org-version ob-emacs-lisp
ob-core ob-eval org-table ol org-keys oc org-cite org-compat org-macs
org-loaddefs find-func evil-collection-calendar cal-menu calendar
cal-loaddefs github-review ghub-graphql treepy gsexp ghub url-http
url-gw nsm url-auth gnutls deferred a evil-collection-magit
magit-autoloads magit-submodule magit-obsolete magit-popup magit-blame
magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch
magit-clone magit-remote magit-commit magit-sequence magit-notes
magit-worktree magit-tag magit-merge magit-branch magit-reset
magit-files magit-refs magit-status magit magit-repos magit-apply
magit-wip magit-log which-func evil-collection-imenu imenu magit-diff
smerge-mode diff evil-collection-diff-mode diff-mode magit-core
magit-autorevert magit-margin magit-transient magit-process magit-mode
core-packages package browse-url url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-domsuf url-util mailcap
url-handlers url-parse url-vars git-commit transient format-spec
evil-collection-log-edit log-edit message rmc puny evil-collection-dired
dired dired-loaddefs rfc822 mml mml-sec evil-collection-epa epa epg
epg-config gnus-util rmail rmail-loaddefs auth-source password-cache
json map text-property-search time-date mm-decode mm-bodies mm-encode
mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr
mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log magit-git
magit-section magit-utils crm eieio eieio-core eieio-loaddefs
with-editor doom-snippets doom-snippets-lib yasnippet
evil-collection-elisp-mode evil-collection-custom cus-edit cus-start
cus-load evil-collection-comint evil-collection annalist elisp-mode
savehist recentf tree-widget wid-edit server autorevert filenotify
dtrt-indent doom-themes-ext-org solaire-mode face-remap doom-one-theme
doom-themes doom-themes-base doom-modeline doom-modeline-segments
doom-modeline-env doom-modeline-core shrink-path rx f s all-the-icons
all-the-icons-faces data-material data-weathericons data-octicons
data-fileicons data-faicons data-alltheicons dash persp-mode let-alist
evil evil-integration evil-maps evil-commands reveal flyspell ispell
evil-jumps evil-command-window evil-types evil-search shell pcomplete
comint ansi-color evil-macros evil-repeat evil-states evil-core advice
evil-common windmove calc calc-loaddefs calc-macs thingatpt rect
evil-digraphs evil-vars ring derived edmacro kmacro core-editor
core-projects core-ui easy-mmode core-keybinds pp general cl-extra
help-mode seq byte-opt cl-seq use-package-core bytecomp byte-compile
cconv core-modules core core-lib pcase cl-macs gv cl-loaddefs cl-lib
subr-x iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel term/x-win x-win term/common-win x-dnd 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 cl-generic 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 charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
cairo x multi-tty make-network-process emacs)

Memory information:
((conses 16 587619 800008)
 (symbols 48 57496 132)
 (strings 32 143994 58963)
 (string-bytes 1 4531494)
 (vectors 16 62829)
 (vector-slots 8 946917 532203)
 (floats 8 953 1827)
 (intervals 56 882 467)
 (buffers 992 11))
[persist-fix.patch (text/x-patch, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#50246; Package emacs. (Sun, 29 Aug 2021 19:40:02 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Felipe Lema <felipelema <at> mortemale.org>
Cc: 50246 <at> debbugs.gnu.org, Phillip Lord <phillip.lord <at> russet.org.uk>
Subject: Re: bug#50246: 28.0.50; persist.el will incorrectly serialize a
 symbol's value... sometimes
Date: Sun, 29 Aug 2021 21:39:08 +0200
Felipe Lema <felipelema <at> mortemale.org> writes:

> The `let` bindings were developed by experience and I'm already using
> this "safe serialization" config in another package I maintain (
> session-async.el ).

Thanks; looks good to me, so I've now applied it to the persist package
(but haven't bumped the version number in case Phillip has other changes
planned).

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




bug marked as fixed in version 28.1, send any further explanations to 50246 <at> debbugs.gnu.org and Felipe Lema <felipelema <at> mortemale.org> Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Sun, 29 Aug 2021 19:40:03 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 27 Sep 2021 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 212 days ago.

Previous Next


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