From unknown Tue Aug 19 02:58:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#50246: 28.0.50; persist.el will incorrectly serialize a symbol's value... sometimes Resent-From: Felipe Lema Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 29 Aug 2021 05:19:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 50246 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 50246@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.163021432217032 (code B ref -1); Sun, 29 Aug 2021 05:19:01 +0000 Received: (at submit) by debbugs.gnu.org; 29 Aug 2021 05:18:42 +0000 Received: from localhost ([127.0.0.1]:55279 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mKDDK-0004Qa-Ic for submit@debbugs.gnu.org; Sun, 29 Aug 2021 01:18:42 -0400 Received: from lists.gnu.org ([209.51.188.17]:33014) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mKC1B-0002XU-Rk for submit@debbugs.gnu.org; Sun, 29 Aug 2021 00:02:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58964) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mKC1A-0003RK-3D for bug-gnu-emacs@gnu.org; Sun, 29 Aug 2021 00:02:00 -0400 Received: from confino.investici.org ([2a00:c38:11e:ffff::a020]:36293) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mKC15-0003V2-Hk for bug-gnu-emacs@gnu.org; Sun, 29 Aug 2021 00:01:59 -0400 Received: from mx1.investici.org (unknown [127.0.0.1]) by confino.investici.org (Postfix) with ESMTP id 4Gy0Bg6fx2z12RJ for ; Sun, 29 Aug 2021 04:01:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mortemale.org; s=stigmate; t=1630209707; bh=pv8+A+GQjx0x6LRsEJRf5uZdDsbqrQlYvb+Z6oUkOdU=; h=From:To:Subject:Date:From; b=V0EcPgW1qiz91DV8839iQy77241Cg/G8DWUzSlCimKJi9nP0BAjCan2KZVBcgwqUq domCJCeX6d6TuK1A8Ob+O0GpcC0yRvW/OmuMMhDB/8X0CLdpeNG4yq69xYr6DBCo6O NXVInDaqkETjPUF6tcWvO4OB7WnHyRrygtHi32ZU= Received: from [212.103.72.250] (mx1.investici.org [212.103.72.250]) (Authenticated sender: felipelema@mortemale.org) by localhost (Postfix) with ESMTPSA id 4Gy0Bg1Qscz12RF for ; Sun, 29 Aug 2021 04:01:46 +0000 (UTC) From: Felipe Lema Date: Sun, 29 Aug 2021 00:01:43 -0400 Message-ID: <2298697.oZjkexYfyW@felipe-thinkpad-x200> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="nextPart2925373.F23kOkfdJu" Content-Transfer-Encoding: 7Bit Received-SPF: pass client-ip=2a00:c38:11e:ffff::a020; envelope-from=felipelema@mortemale.org; helo=confino.investici.org X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Mailman-Approved-At: Sun, 29 Aug 2021 01:18:38 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) This is a multi-part message in MIME format. --nextPart2925373.F23kOkfdJu Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" 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)) --nextPart2925373.F23kOkfdJu Content-Disposition: attachment; filename="persist-fix.patch" Content-Transfer-Encoding: 7Bit Content-Type: text/x-patch; charset="utf-8"; name="persist-fix.patch" diff --git a/persist.el b/persist.el index 091e428..0bd3845 100644 --- a/persist.el +++ b/persist.el @@ -139,8 +139,15 @@ variables persist automatically when Emacs exits." (persist--file-location symbol)))) (unless (file-exists-p dir-loc) (mkdir dir-loc))) + (with-temp-buffer - (print (symbol-value symbol) (current-buffer)) + (let (print-level + print-length + print-quoted + (print-escape-control-characters t) + (print-escape-nonascii t) + (print-circle t)) + (print (symbol-value symbol) (current-buffer))) (write-region (point-min) (point-max) (persist--file-location symbol) nil 'quiet)))) --nextPart2925373.F23kOkfdJu-- From unknown Tue Aug 19 02:58:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#50246: 28.0.50; persist.el will incorrectly serialize a symbol's value... sometimes Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 29 Aug 2021 19:40:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 50246 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Felipe Lema Cc: 50246@debbugs.gnu.org, Phillip Lord Received: via spool by 50246-submit@debbugs.gnu.org id=B50246.163026596212758 (code B ref 50246); Sun, 29 Aug 2021 19:40:02 +0000 Received: (at 50246) by debbugs.gnu.org; 29 Aug 2021 19:39:22 +0000 Received: from localhost ([127.0.0.1]:57424 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mKQeH-0003Ji-QG for submit@debbugs.gnu.org; Sun, 29 Aug 2021 15:39:21 -0400 Received: from quimby.gnus.org ([95.216.78.240]:55592) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mKQeF-0003JP-RD for 50246@debbugs.gnu.org; Sun, 29 Aug 2021 15:39:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=jQuOlCkVZ0ZwNvsE/OJEXyfO4dxmeumUk8hHLRDnFdw=; b=h0g4C0OAAriVDUfhI44TSJgR5j Nb2gQp5IxO9ZhTBmfrVFkZ1wczzRJXs23+Dx8J4/syd8b62bmZu4WU79WlMNphoQME0RrJ8mTeyJ0 HZtvdP9N8GaIh7k4j6JkSKfjIJmJV8utwQFYHBatGFQ7kpUnpV5IPeBwt8VL/KRs7f/o=; Received: from [84.212.220.105] (helo=elva) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mKQe4-00036u-UX; Sun, 29 Aug 2021 21:39:13 +0200 From: Lars Ingebrigtsen References: <2298697.oZjkexYfyW@felipe-thinkpad-x200> Date: Sun, 29 Aug 2021 21:39:08 +0200 In-Reply-To: <2298697.oZjkexYfyW@felipe-thinkpad-x200> (Felipe Lema's message of "Sun, 29 Aug 2021 00:01:43 -0400") Message-ID: <87wno4dorn.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Felipe Lema 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 ). Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Felipe Lema 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 From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 29 15:39:26 2021 Received: (at control) by debbugs.gnu.org; 29 Aug 2021 19:39:26 +0000 Received: from localhost ([127.0.0.1]:57427 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mKQeM-0003Jy-0Z for submit@debbugs.gnu.org; Sun, 29 Aug 2021 15:39:26 -0400 Received: from quimby.gnus.org ([95.216.78.240]:55604) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mKQeK-0003JY-Kl for control@debbugs.gnu.org; Sun, 29 Aug 2021 15:39:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=HCeo1Bw8pNrymHH+kcU4fQfRmYDUevRi7QtsfrBi8TE=; b=OUS6GcCBR1Mx2z6ATG3JG2vXTQ dNjhmm3GO/1Q+5rbPKYLbPmP15fxTXQ7N31qsSj7LGrzGi6HrThAsFaivJG6/gttps25CoMfc6MZp 6mWkSSWq0s3fO9tjDGG0KTPhC6KMFXMM9DXuHK+1dmbmOaLOCdyAr2/YlyuoLVJZ2dHg=; Received: from [84.212.220.105] (helo=elva) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mKQeC-000371-FZ for control@debbugs.gnu.org; Sun, 29 Aug 2021 21:39:18 +0200 Date: Sun, 29 Aug 2021 21:39:15 +0200 Message-Id: <87v93odorg.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #50246 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: close 50246 28.1 quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) close 50246 28.1 quit