From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Matthew Newton Newsgroups: gmane.emacs.bugs Subject: bug#24576: 25.1; desktop.el does not fully preserve registers with macros Date: Fri, 10 May 2019 13:53:54 -0700 Message-ID: References: <874m4wwu6n.fsf@gmail.com> Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.8\)) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="56004"; mail-complaints-to="usenet@blaine.gmane.org" Cc: dpaduchikh@gmail.com To: 24576@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat May 11 00:42:15 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hPEDT-000ELL-B8 for geb-bug-gnu-emacs@m.gmane.org; Sat, 11 May 2019 00:42:12 +0200 Original-Received: from localhost ([127.0.0.1]:50969 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hPEDS-0000KN-49 for geb-bug-gnu-emacs@m.gmane.org; Fri, 10 May 2019 18:42:10 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:59187) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hPEDL-0000KD-Ja for bug-gnu-emacs@gnu.org; Fri, 10 May 2019 18:42:04 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hPEDK-0005Yp-H1 for bug-gnu-emacs@gnu.org; Fri, 10 May 2019 18:42:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:54082) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hPEDJ-0005Ye-Up for bug-gnu-emacs@gnu.org; Fri, 10 May 2019 18:42:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hPEDJ-00070w-OE for bug-gnu-emacs@gnu.org; Fri, 10 May 2019 18:42:01 -0400 X-Loop: help-debbugs@gnu.org In-Reply-To: <874m4wwu6n.fsf@gmail.com> Resent-From: Matthew Newton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 10 May 2019 22:42:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 24576 X-GNU-PR-Package: emacs Original-Received: via spool by 24576-submit@debbugs.gnu.org id=B24576.155752808226915 (code B ref 24576); Fri, 10 May 2019 22:42:01 +0000 Original-Received: (at 24576) by debbugs.gnu.org; 10 May 2019 22:41:22 +0000 Original-Received: from localhost ([127.0.0.1]:39393 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hPECg-000702-EI for submit@debbugs.gnu.org; Fri, 10 May 2019 18:41:22 -0400 Original-Received: from wout4-smtp.messagingengine.com ([64.147.123.20]:35637) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hPCWq-0002Ja-IZ for 24576@debbugs.gnu.org; Fri, 10 May 2019 16:54:05 -0400 Original-Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id 8624740B; Fri, 10 May 2019 16:53:58 -0400 (EDT) Original-Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Fri, 10 May 2019 16:53:58 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=knosis.org; h= from:content-type:content-transfer-encoding:mime-version:subject :message-id:date:cc:to; s=fm3; bh=rnx2/0vBCfmWu+ODFLp/MI1WKhyWy0 eZTiAPXQEniyY=; b=TnmPmZrj4kvqBCLMaDESdyrQfN4rHb/DAEgmqyP/HsSVSw 5OjKNV51GV0aYBQt8osmoGrVRMtlZJCXpj635aiRXv8mv3jW8YAXxisJfGHqzomX COBObKt4A2a8N5jcdWJrWPXV4eUp3r6yo+lwYygL5XjwP5txfLTWkwdhY2ZHyJoh y/QlnBUM9tj2vPcW7qODBtNRsTUIk0a1jMUMxoVisn3kKePe7oQFeNKabHPHFCld lyMmtZEH6x1h+wgkaNFIr8TrLXUVKskiqcMuFZzlyePLGwFvQ+8K2bb6CcEx17EY YnJCGMOk5c1XgjPgg7JDgm6zk3QofeiwmCAwPUUA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=rnx2/0 vBCfmWu+ODFLp/MI1WKhyWy0eZTiAPXQEniyY=; b=Tdg0nCoo+9lAKKgAeRrZ3J Z7g5IdfKMfF4lA0VgBHZDeHYNUj2bllNEF7poRIP5Efu9Hs5QvsnYYOAX8pKdhY1 D/Uzu3cAeZzd+wqoS6CI8Fr4WuojrDLK3SX1aW1aB8cJ2C2MUFgkt7rDzszDKS5c JCkMdukW93Ie6cjMgxnKtFM2rhi2PAsC1gTWRnry+cfXF7IhdSqXn68zolnboRWP 8RYylyAbIXGBQMQM84IEOOwtk5sJoSLuZz//IjpgY0Z/DtMceJY9cBmLSve7hzHW rvyPht7Py+N4PNhwpCpGbsGgD2OGwFiGH4F8U5bzK+z/Uu6+R7LW4IZfaki/N+HA == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduuddrkeekgdduheeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhtgfgggfukfffvffosehtqhhmtd hhtdejnecuhfhrohhmpeforghtthhhvgifucfpvgifthhonhcuoehmrghttheskhhnohhs ihhsrdhorhhgqeenucfkphepudehjedrudefuddrvdehuddrgeelnecurfgrrhgrmhepmh grihhlfhhrohhmpehmrghttheskhhnohhsihhsrdhorhhgnecuvehluhhsthgvrhfuihii vgeptd X-ME-Proxy: Original-Received: from [192.168.0.112] (157-131-251-49.fiber.dynamic.sonic.net [157.131.251.49]) by mail.messagingengine.com (Postfix) with ESMTPA id 8065110379; Fri, 10 May 2019 16:53:57 -0400 (EDT) X-Mailer: Apple Mail (2.3445.104.8) X-Mailman-Approved-At: Fri, 10 May 2019 18:41:21 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:159057 Archived-At: Apologies for reviving a stale bug but it appears to not be resolved = yet. Here is my experience with this, running my own build from a recent = master: GNU Emacs 27.0.50 (build 1, x86_64-apple-darwin18.5.0, NS appkit-1671.40 = Version 10.14.4 (Build 18E226)) of 2019-04-22 ;; .emacs (require =E2=80=98desktop) (desktop-save-mode 1) ;; before killing Emacs (pp register-alist) ((107 . #s(registerv "=05" #[257 "\300\301\302\303=04!\"!\207" [princ format "a keyboard macro:\n %s" = format-kbd-macro] 6 "\n\n(fn K)"] kmacro-execute-from-register #[257 "\300=01!c\207" [format-kbd-macro] 3 "\n\n(fn K)"]))) `M-x list-registers` Register k contains a keyboard macro: C-e Register p contains a buffer position: buffer t.el, position 21 ;; after killing Emacs and running it again (pp register-alist) ((107 . #s(registerv "=05" "Unprintable entity" = kmacro-execute-from-register "Unprintable entity"))) `M-x list-registers` Invalid function: "Unprintable entity=E2=80=9D ;; Abbreviated stack trace Debugger entered--Lisp error: (invalid-function "Unprintable entity") "Unprintable entity"("\5") #f(compiled-function (val verbose) #)(#s(registerv :data "\5" :print-func "Unprintable entity" = :jump-func kmacro-execute-from-register :insert-func "Unprintable = entity") nil) apply(#f(compiled-function (val verbose) #) = #s(registerv :data "\5" :print-func "Unprintable entity" :jump-func = kmacro-execute-from-register :insert-func "Unprintable entity") nil) register-val-describe(#s(registerv :data "\5" :print-func "Unprintable = entity" :jump-func kmacro-execute-from-register :insert-func = "Unprintable entity") nil) describe-register-1(107) list-registers() funcall-interactively(list-registers) call-interactively(list-registers record nil) command-execute(list-registers record) (closure ((externs) (initial-input) smex-ido-cache smex-initialized-p = amx-cache amx-initialized info-lookup-mode t) (cmd) (setq cmd (intern = cmd)) (cond ((and (boundp 'amx-initialized) amx-initialized) (amx-rank = cmd)) ((and (boundp 'smex-initialized-p) smex-initialized-p) (smex-rank = cmd))) (setq prefix-arg current-prefix-arg) (setq this-command cmd) = (setq real-this-command cmd) (command-execute cmd = 'record))("list-registers") #f(compiled-function (x) #)("list-registers") So there seem to be two bugs: 1. `desktop-save-mode` doesn=E2=80=99t serialize/deserialize keyboard = macros properly (is it difficult to serialize a function object?) 2. Either :print-func and :insert-func should never be set to = =E2=80=9CUnprintable entity=E2=80=9D or `register-val-describe` should = handle the case where they are set to that value instead of a function. = I=E2=80=99ve also seen =E2=80=9CUnprintable entity=E2=80=9D show up when = a buffer position register points to a nonexistent buffer. Not sure how = to reproduce that one. I could probably dive deeper and see if I can fix this. But I would = appreciate some thoughts from experienced Emacs devs about whether I = understand the problem correctly. Any hints as to the best solution = would also be great. Cheers, Matt=