From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Tadeus Prastowo Newsgroups: gmane.emacs.bugs,gmane.emacs.devel Subject: bug#35131: 27.0.50; desktop-save no longer saves register containing frameset Date: Thu, 4 Apr 2019 00:15:41 +0200 Message-ID: Mime-Version: 1.0 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="243106"; mail-complaints-to="usenet@blaine.gmane.org" Cc: Stefan Monnier , emacs-devel To: 35131@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Apr 04 00:17:34 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 1hBoCM-00117X-0e for geb-bug-gnu-emacs@m.gmane.org; Thu, 04 Apr 2019 00:17:34 +0200 Original-Received: from localhost ([127.0.0.1]:40620 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hBoCL-0005Ce-0w for geb-bug-gnu-emacs@m.gmane.org; Wed, 03 Apr 2019 18:17:33 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:60366) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hBoBz-0005Ba-Og for bug-gnu-emacs@gnu.org; Wed, 03 Apr 2019 18:17:12 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hBoBw-0002YH-0C for bug-gnu-emacs@gnu.org; Wed, 03 Apr 2019 18:17:09 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:58061) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hBoBq-0002RX-JQ for bug-gnu-emacs@gnu.org; Wed, 03 Apr 2019 18:17:04 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hBoBq-00055b-8d for bug-gnu-emacs@gnu.org; Wed, 03 Apr 2019 18:17:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Tadeus Prastowo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 03 Apr 2019 22:17:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 35131 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.155432979719517 (code B ref -1); Wed, 03 Apr 2019 22:17:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 3 Apr 2019 22:16:37 +0000 Original-Received: from localhost ([127.0.0.1]:43372 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hBoBQ-00054h-Sm for submit@debbugs.gnu.org; Wed, 03 Apr 2019 18:16:37 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:45842) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hBoBO-00054S-JU for submit@debbugs.gnu.org; Wed, 03 Apr 2019 18:16:35 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:60166) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hBoBD-0001xY-OO for submit@debbugs.gnu.org; Wed, 03 Apr 2019 18:16:25 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:60194) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hBoBC-00053E-Ds for bug-gnu-emacs@gnu.org; Wed, 03 Apr 2019 18:16:23 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hBoB6-0001p6-9v for bug-gnu-emacs@gnu.org; Wed, 03 Apr 2019 18:16:18 -0400 Original-Received: from mail-io1-xd2b.google.com ([2607:f8b0:4864:20::d2b]:36917) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hBoAy-0001NW-RI for bug-gnu-emacs@gnu.org; Wed, 03 Apr 2019 18:16:12 -0400 Original-Received: by mail-io1-xd2b.google.com with SMTP id x7so285136ioh.4 for ; Wed, 03 Apr 2019 15:15:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unitn.it; s=google; h=mime-version:from:date:message-id:subject:to:cc :content-transfer-encoding; bh=OPinw9qUpzDnaZqHWkAEI7IFpyxcCxHKlNydOnjACfY=; b=S2uyDYCDBskBEpyCZBYcw7td+No4Lxv604WBLZiGfyUgInb8N047mmKo7x7UMtWfTu EPuP2UjTdqtvUumDJu1rtTfyL7uudJYPAGnKdjMlCXdl+0YNS+gkKAjlJT5zpA4wFZqJ 6XvLz6OdOSxSkUvlTk3sNu9c/mOk1cFjYYCpo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc :content-transfer-encoding; bh=OPinw9qUpzDnaZqHWkAEI7IFpyxcCxHKlNydOnjACfY=; b=b/bmOFM+im77CDFRlHVh8JG9tV/2ORSD+yTdZLgesqdM0o/RGyUqQzsdN79PERqU2I 1R/0GmfdmLxUiwJEmmFZEORFIAzjN63lf6JKgzOEISrzCTYm1KL6h3kVAAw3zivIgOPY Y5Md57zxzIgKMSRd+1vvI2352O6YAVfbXVhrs7Wl35Zt+tC3eBJa2jEH4Ec5pWJx/l4B u9W2apzBBxjb7IoiwaNyKw2K3K+byVlqKOVQ9rrfd0jAeQqDOVBH2WC3kIVchLytfSnV IpNvLWu2qR7oIU0Pad8KLw2Q7ZGiWIbSTinQtS0nw+WeHSSuG29ceIV4vtxfxsoyjXEi jCSw== X-Gm-Message-State: APjAAAVljK7tuP8IQJv4VxTUXBVXqU7vlgO0sO++zB5QyI5+Vu/64Ywf i6/EEaPXq2uSqhY7V5ofDGY+CU7O5BxBKVj8ccPEPlL4dQ== X-Google-Smtp-Source: APXvYqwozRqHFaLFiXg56ME+F5FsUE49fYh2gTAW+Upyl78fUaQkenZYaE38YBOqRqD2gJvKIvEPIoMAxgBekWoCK9c= X-Received: by 2002:a6b:cd89:: with SMTP id d131mr1971773iog.213.1554329752003; Wed, 03 Apr 2019 15:15:52 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x 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:157140 gmane.emacs.devel:234933 Archived-At: $ emacs -Q C-x C-f x.txt Hello world! C-x C-s C-x 3 C-x 2 C-x r f =3D C-x 1 M-x desktop-save RET RET yes RET C-x C-c $ emacs -Q M-x desktop-read RET C-x r j =3D The echo area says: Register doesn=E2=80=99t contain a buffer position or c= onfiguration Compare this with Emacs 26.1 that has the correct behavior: $ emacs-26.1 -Q C-x C-f x.txt Another hello world! C-x C-s C-x 3 C-x 2 C-x r f =3D C-x 1 M-x desktop-save RET RET yes RET C-x C-c $ emacs-26.1 -Q M-x desktop-read RET C-x r j =3D I get the saved frameset back, which contains three windows. The problem can be traced to the following commit (the committer is CC-ed): -- 8< ----------------------------- commit cd1d9e79f74f137511d49eb9b0ae7ba750ba6c3c Author: Stefan Monnier Date: Mon Dec 25 22:51:23 2017 -0500 * lisp/register.el: Use cl-generic (registerv): Make it a "normal"struct. (registerv-make): Declare obsolete. (register-val-jump-to, register-val-describe, register-val-insert): New generic functions. (jump-to-register, describe-register-1, insert-register): Use them. * lisp/emacs-lisp/cl-generic.el: Prefill a combination of struct+typeof= . (cl--generic-prefill-dispatchers): Allow a list of specializers. -- 8< ----------------------------- The offending diff is shown below: -- 8< ----------------------------- diff --git a/lisp/register.el b/lisp/register.el index 23eefd0..0fdcd51 100644 --- a/lisp/register.el +++ b/lisp/register.el @@ -39,9 +39,7 @@ (registerv (:constructor nil) (:constructor registerv--make (&optional data print-func jump-func insert-func)) - (:copier nil) - (:type vector) - :named) + (:copier nil)) (data nil :read-only t) (print-func nil :read-only t) (jump-func nil :read-only t) -- 8< ----------------------------- Specifically, because type vector is dropped, frameset.el in its using of registerv-make to save a frameset results in register-alist item that is no longer a vector (C-h v register-alist shows `(61 . #s(registerv :data [[frameset 1...' in 27.0.50, not `(61 . [registerv [[frameset 1...' that is shown in Emacs 26.1). Since it is no longer a vector, desktop.el upon desktop-save does not serialize the item in a format that can be recognized by register.el after desktop-read. Since the offending commit deprecates the use of registerv-make, this bug can be easily be killed by making frameset.el define function `register-val-insert' that saves a frameset as a vector, modifying function `frameset-to-register' accordingly. @Stefan: could you do that, please? Thank you. --=20 Best regards, Tadeus