GNU bug report logs - #29220
26.0.90; eieio-persistent-read fail to restore saved object.

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: pierre.techoueyres@HIDDEN (Pierre Téchoueyres); merged with #33441; dated Wed, 8 Nov 2017 22:20:01 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.
Merged 29220 33441. Request was from Paul Eggert <eggert@HIDDEN> to control <at> debbugs.gnu.org. Full text available.
Merged 29220 33441. Request was from Glenn Morris <rgm@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 25 Feb 2018 19:01:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 25 14:01:32 2018
Received: from localhost ([127.0.0.1]:60616 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eq1YC-0007I8-Dk
	for submit <at> debbugs.gnu.org; Sun, 25 Feb 2018 14:01:32 -0500
Received: from mail.ericabrahamsen.net ([50.56.99.223]:56966)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1eq1YB-0007I0-7b
 for 29220 <at> debbugs.gnu.org; Sun, 25 Feb 2018 14:01:31 -0500
Received: from localhost (71-35-188-108.tukw.qwest.net [71.35.188.108])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 11CE0C0DE3;
 Sun, 25 Feb 2018 19:01:30 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mail.ericabrahamsen.net; s=mail; t=1519585290;
 bh=Ml4+iT7oe7H+BFOAN3yHscp8yebpgTaS2RLgBPpMxD8=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=YNd5qfFUwONiiaFKzVqcat5ZpeHyV9ygA+1q4ZhaWJN0O528zjLRL3ep24ut7nvkh
 IJek6871Pt3szyLWWQbHlGqvOMyZb2ak2/77BLO+jfK21fAQNprk/3Ju3uWChX2qPH
 MqjoyieWn/nhlCGmYAD0x7tV3znsPDyohmv8Fmfc=
From: Eric Abrahamsen <eric@HIDDEN>
To: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN>
 <874lp4aije.fsf@HIDDEN> <83po7pwlgs.fsf@HIDDEN>
 <87lgib4z2o.fsf@HIDDEN>
 <87wp1rcz21.fsf@HIDDEN>
 <87mv2jkaap.fsf@HIDDEN>
 <87wp1nsk52.fsf@HIDDEN>
 <87y3m2jl3b.fsf@HIDDEN>
 <871shf30fn.fsf@HIDDEN>
 <87woz2qdyo.fsf@HIDDEN>
 <877er23rev.fsf@HIDDEN>
 <87sh9qufb2.fsf@HIDDEN>
 <87muzx52l7.fsf@HIDDEN>
Date: Sun, 25 Feb 2018 10:59:10 -0800
In-Reply-To: <87muzx52l7.fsf@HIDDEN> ("Pierre
 =?utf-8?Q?T=C3=A9choueyres=22's?= message of "Sun, 25 Feb 2018 01:34:44
 +0100")
Message-ID: <87h8q4uc8x.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 29220
Cc: jwiegley@HIDDEN, 29220 <at> debbugs.gnu.org, monnier@HIDDEN,
 Noam Postavsky <npostavs@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

pierre.techoueyres@HIDDEN (Pierre T=C3=A9choueyres) writes:

> Eric Abrahamsen <eric@HIDDEN> writes:
>
>> On 02/25/18 00:21 AM, Pierre T=C3=A9choueyres wrote:
>>> Eric Abrahamsen <eric@HIDDEN> writes:
>>>
>>>> pierre.techoueyres@HIDDEN (Pierre T=C3=A9choueyres) writes:
>>>>
>>>>> Hello Eric,
>>>>> Any news on this fix ?
>>>>
>>>> Hey, sorry again this is taking so long. I wanted to run CEDET's test
>>>> suite, as that seems to be the main library that relies on
>>>> eieio-persistent, and I wanted to make sure it passed with these
>>>> changes. I can't get CEDET to build on my machine, however (apparently
>>>> Arch has a too-new version of ImageMagick, and CEDET won't build again=
st
>>>> it), and I haven't had any luck just faking it and running the tests
>>>> themselves -- everything's too dependent on a successful build.
>>>>
>>>> I've only got two Arch machines to play with -- if anyone could
>>>> successfully build and test CEDET using the fix/eieio-persistent branc=
h,
>>>> that would be very helpful...
>>>>
>>>
>>> I've been able to run the "itest-batch" and "utest-batch" from the CEDET
>>> git repository (http://git.code.sf.net/p/cedet/git), but I don't know
>>> how to interpret the results. Whatever the emacs version I use (25.3 or
>>> 26.0.91 + fix), I get errors. So I don't know what to check for the
>>> fix/eieio-persistent branch.
>>
>> Bah, this is annoyingly difficult -- thank you for trying it out. I
>> suppose one terrible heuristic would be if the errors were different
>> between emacs-25, emacs-26, and fix/eieio-persistent. Would you mind
>> sending me the error output, in case anything jumps out at me?
>>
> Hope this could help you.

Thanks. They all end in "Corrupt object on disk", which is an
eieio-persist problem. I'll keep working on this.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 25 Feb 2018 00:34:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 24 19:34:53 2018
Received: from localhost ([127.0.0.1]:59300 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1epkHE-0004mQ-Vh
	for submit <at> debbugs.gnu.org; Sat, 24 Feb 2018 19:34:53 -0500
Received: from smtp4-g21.free.fr ([212.27.42.4]:8432)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pierre.techoueyres@HIDDEN>) id 1epkHC-0004mF-SZ
 for 29220 <at> debbugs.gnu.org; Sat, 24 Feb 2018 19:34:51 -0500
Received: from killashandra.ballybran.fr.free.fr (unknown
 [IPv6:2a01:e35:2e14:eab0:b51f:3dc7:7e03:942])
 by smtp4-g21.free.fr (Postfix) with ESMTPS id B148719F4B5;
 Sun, 25 Feb 2018 01:34:44 +0100 (CET)
From: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
To: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN>
 <874lp4aije.fsf@HIDDEN> <83po7pwlgs.fsf@HIDDEN>
 <87lgib4z2o.fsf@HIDDEN>
 <87wp1rcz21.fsf@HIDDEN>
 <87mv2jkaap.fsf@HIDDEN>
 <87wp1nsk52.fsf@HIDDEN>
 <87y3m2jl3b.fsf@HIDDEN>
 <871shf30fn.fsf@HIDDEN>
 <87woz2qdyo.fsf@HIDDEN>
 <877er23rev.fsf@HIDDEN>
 <87sh9qufb2.fsf@HIDDEN>
Date: Sun, 25 Feb 2018 01:34:44 +0100
In-Reply-To: <87sh9qufb2.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Sat, 24 Feb 2018 15:40:49 -0800")
Message-ID: <87muzx52l7.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.91 (gnu/linux)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 29220
Cc: jwiegley@HIDDEN, 29220 <at> debbugs.gnu.org, monnier@HIDDEN,
 Noam Postavsky <npostavs@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.5 (/)

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Eric Abrahamsen <eric@HIDDEN> writes:

> On 02/25/18 00:21 AM, Pierre T=C3=A9choueyres wrote:
>> Eric Abrahamsen <eric@HIDDEN> writes:
>>
>>> pierre.techoueyres@HIDDEN (Pierre T=C3=A9choueyres) writes:
>>>
>>>> Hello Eric,
>>>> Any news on this fix ?
>>>
>>> Hey, sorry again this is taking so long. I wanted to run CEDET's test
>>> suite, as that seems to be the main library that relies on
>>> eieio-persistent, and I wanted to make sure it passed with these
>>> changes. I can't get CEDET to build on my machine, however (apparently
>>> Arch has a too-new version of ImageMagick, and CEDET won't build against
>>> it), and I haven't had any luck just faking it and running the tests
>>> themselves -- everything's too dependent on a successful build.
>>>
>>> I've only got two Arch machines to play with -- if anyone could
>>> successfully build and test CEDET using the fix/eieio-persistent branch,
>>> that would be very helpful...
>>>
>>
>> I've been able to run the "itest-batch" and "utest-batch" from the CEDET
>> git repository (http://git.code.sf.net/p/cedet/git), but I don't know
>> how to interpret the results. Whatever the emacs version I use (25.3 or
>> 26.0.91 + fix), I get errors. So I don't know what to check for the
>> fix/eieio-persistent branch.
>
> Bah, this is annoyingly difficult -- thank you for trying it out. I
> suppose one terrible heuristic would be if the errors were different
> between emacs-25, emacs-26, and fix/eieio-persistent. Would you mind
> sending me the error output, in case anything jumps out at me?
>
Hope this could help you.


--=-=-=
Content-Type: application/x-xz
Content-Disposition: attachment; filename=itest-batch-25.3.log.xz
Content-Transfer-Encoding: base64
Content-Description: itest-batch-25.3.log

/Td6WFoAAATm1rRGAgAhARYAAAB0L+Wj4M6/GQddACKbSCZNXme3XQpCGYNL9cBb8v8sVk+l99BG
AGPpQZhmlfmXjen22fzjshiX0QwhWHCzJT0KIVpAw0l4gl02idKiRsGEAP4A5EAEIxPUzjfjKGhi
M97DDBDWUgjr+lSbEQEhl6uDSK+4Y4uGW27UAtwPkJKjw2/d+WPe7KOoDljgvmZiOmiUB7KY3B/Y
pov3XLoYODQTZGaerbSnKO2SBelaOSizpuuqjRUlPv+cZABbKPyZSnR/RV5Rozc0xt0d7JCZLn6f
Axmc+/zYEW9LuHdcg3rloECR/JtU0sLxSOIahPXQ6NrDyxAYGv+wMofGZ9kX/gZEXIh1RHlEn7Sv
4vInilqiul5VdxLJPZJrlr1MojydX9dS04A2H1G/kiQcxKlJsq7buK70qGwqu4IB9MBUGjXs11/0
SnUkhs9/hmvpJ0LuiNAIeOpwFGswBefGxbqHjIpBwt7mUuyetc1TUedoE29x5Izt7Qagrwg98NAT
u+b3UHvGT389bUKF8tlNi2wc1kyLrxZzfwyAbg4cj/uBCxwephMOcXBgsHF0idoaVOFS5fBDQRKK
FygeR4WojnSEOmjza4JTk8FZhiyRqWivQKtInzsrtyMQdjNgimkw9aimAQamJowCAtnXVWclWli4
hQYn78MLXwZcmneeiBPCVCEc7VXhFVkBXzgzbSmqfH9X9QyX9bt+T0fzcQMAteTxTGj/3d8pin+W
xheU5L38n8/qPQKCHrgbW1WVVr/7JiTJz+XIwZPIGA8oQCyYJfkGt3AJBWFhQwS5MKWb3pwSPfuT
awSdmzUrVH4MM3E4wklXJ+ib0Azfkzvhwwn/NhDBg0V83rpDry7OL40F4HFl1yyYy9RymkCo0WuS
J9A3NLg36WJFaeTJ4HeRcRkgV1JhJsswPRYHduREtJH4f/L2Dw1+v28TUGoV4JeVr0tnEufYEXS/
bctMMvfCFPRkVXWImtqILP5Q3HBr5Wjyz80W3gvONsnzZ/BoFFuQWBGZY11/hrdO7eUOKdjmfRMS
sVtVYTMixqURN72FYA/qSC3Lf9m0FRmJ/XTMg2NKZCFz9vM/EjHEekyfn2aeQN8PXvrp7yb5HtCX
u/ocj3e1SAP9cTKiNapOtdGWu+3hy0qB2vXQ3Io45pUg0AtVObl1vAdgueFAQkyfRzj0Ga59eogi
g13iemihbD09Oc3jNDDaDt6Tt/qL/Sy084y/jxq4kKmuKDFCkTBF3r4PDKgpYGQ8pCiOwZKA7OnM
OCkGRtECXW8ROWKkkKlx/+q8VyLMmGcgre5WyqEKhXlEUJBCDg+sU12kEbG25YmHzKt+5JFsrqK6
QWW+e9jXsUEJ9WZeEFNVsvvnKITrYIICdEZkewLZ4DO5Q7dSKiLZtx6d+00BMtxql3e62fzKJVeH
8wMHMboViP2GeTx+XJRK2+9vQPIp2PgMJ/j7rt4U3k/li3l33VxEaIFWXQpjJSH7BM8/Z8dBwLTP
TOLyax0Jpasyr1f4nutGYmYCKBmWvVOHoB2iS04FacS3Nklbg/VIzXAP4ZPCTw43B0Tyv3B724SQ
up84R+M5osYC3BRibJIc0hp+3VUkDw/onBnLioGovo51iwJ3UBBdLWBbdAm+lZcQHTp9adZj43q7
4ovGvqQOWyF3mIu/JEyv5sm8i+q5nIeKy0SOHEfYF7pWTBZMZtzbxUi0gfUQ+Ojo2aHbrfp4BHGU
i7nHJgZECOs8JltFmsmNx49Iq/Gs5PJ980jGERmJLgGeXwbrr/cbIypkgIfI+QeEPFJUQBBrzSzC
WbI9JF/4tXpHyPoP7oOw7WFP7LSSwcdqG8UPAUy8V2LOUC3C/x6Qi5uEDtMf9xNjTujSktISLxAm
7IoMgNHmM616/gcRk6ihLm/jY8DNTXQfotLtAZYURpveFAGWuXp6SA2rfdnRlPMWZKvsmn5IaOH1
n0Ne1o4o8R6Eac7Bd0eZXPGbXLmTg9jhxbFQmF1nyq/ve4vDomYdvodSh4GOtg9RuDZo3LGMhyvL
lwl31Vu0FoLWdyOif2eVPui1WBmld6jKj5RNtP/+oGLDPkRFBTfJ4jlBvMngmYxoHvKBjk5HbR2r
iJQobdFtsexMWl8wnO1slbrESdFU/Z82bwnda2afdubEJmXPJpgXVS8/A02HgSCQWdD0qyMoYxBP
z8VGoDunpz0pkmtOjxP1psChStZCiY4G2AAu+FOZyaV86XzGYivY9sPQL4fxgJGATY40s3DFSE3Y
STgfJP3GDPEV75anday128PPxvkogrwrnLuUQSPtZGk1SB4U1cSdTBKtsoaSUzjjROfM5UCbGGp7
1gBeiK4d0/g652Wb3hk/jkTUGS1p2SiQjX4J6VvOOCUcZ+ZATY0sPzMNzDssF7yqD0qte3tN8VYG
9HMp2I4VXQ9MQXVRMGEChAXl2tvYovWUXnwPDCnxVOw5Al1Y0DsZq2y5YBtVFtGWRH8ofWrQ3VRd
/9SctBNDGTLA5zcshh48foj+hjtSJmvnMR/erFKHrCMRQD5XiGlCrGRpEM2VSvnKgcX5fh71yN8D
HiiGsmoQVW1Hg54sdYQVow4gZX0KYjauiJbA1QNLypBIpBgR64u2p5ErjRFduTtf5026HM7goZKM
HRQLWAP4gTOngxfzFDk/+H+pWRwbdaEvJ+RxemzMRRbPb6L53r8DdIu8h9WCwsLqk02Bo+rFB3SO
PBUSrC9Ka1lHPbLsiP2tUS3Stf2xc28TQjCC4EGcaCCczLSK7QVHmCnyY8s34TK08L0SHSJ+0zq7
W+bvTA1KUCaTk+7ZFyEaTLyXu+YMir8CuKAFCP09kjMnTTs4k7PBK72dJ9WsJGh/6FfO5qGoq2FK
9J2cIomFWV/TAOhOKsHjRoWJqIz8dEF61kHP225XuE6uWvMd4grG0iUvaGzu9duLXVegfkNLq+LD
/CDS2g5E3OBJE182RP3Jh/Zmp3c5zQR1i2I/iVUyUSfmggjLpNh8fhD/E/1DyLsrUJQFJ7cwDtiY
CVDhXKx8qnpGzqgPZMBs2SJkbEvj1nXIfq3aMhVivMxDGcjByxth/BFr42oR9TnfWbO/b+OtEsca
Fq9XBvdT2Ka47hY9cGMjAF/g3+N0FOwa3myp69EPs1d84nhXqrIQWe0U77K8BgLd9NybmPm17N9y
1iGupj0cYPF5cR+XicxBI00LEInUyQvOdVBIb/ycxDvNpQyLkZAoempsX/rxn2pgoLXNqe/2Debe
3BySBUC4LiGb5yj9zXaQOAXgHR+QCsATPuXWsRjaYadF27lPgF/Y7tAQ7n1nHcRG8iuSWjvWnARB
JIaPV0+im8YTtrl32EW+twAhmQZEFQbPeaiAt491IDNycbx/Zty0gn3/B/wtWbbhc5kVhGj1cJX6
2tkIdEs2Y6vso8FI8/BTgasjex4N9smqU8VzFvIrpKNMoT+z/+1e0MBMAKC8UOlHd9Iqttavxiil
YJegnu7wz5p0l6JhhsmY4CCOXaCus1ce4TVTsaUZ8SS8vjgxbtlmJMYIWDqAZFfrnPGMNkBxWtMJ
t4peaD0X7W4Wnc1/jbAzAJ+Bsz/IzByni89a87Dt/Qjn9C8xvi5wZHOAE8hANHEcSQk61zZ69IN5
yAQ8+rKkxjXFlCF+MTmp+mMLk3K/2Drw/A1igXlxUvMo2hPer1UHuht4IACsTRg0QDBeC7aeu1xn
CprL19ZAwzSFbyUxYLhgEgn/KBd94ZUF9NYa77eN8/5YJGNd6mYUVayLO8UJukjcCm2yxD3Pmz+S
7m1OrR4TCddmCL24gVxAdebXHhdBwnSuH3kEJr1+QVQMuCr/kMSr42heK702t7XYjpxOTYYb9wl2
id4Zvsox7voe32/Wg1EV0/4nZwNG+ddu84ZU/MV+BKkYS//a4rpcmIJNPGQkUWVk4GfJK18P2bOm
k0O0G1pWlS7XxSxk6jPo3sbfTdWeCf64G4vRG2FVeQc79+Y/YMWUy44C0VQCev6pO04jFQVbsodw
aTmqhRqVQEg84SSMdqPj2GmzXeH3sEa6xFh/kEWum7P7Dr7+HQt7fIbfB5QQEHL5Se0sUud14vW2
Qb3EAmMFL8JQj2/pGotdtr6MR+mvolRs6TqpVMkTlRHtbuperMj5uJ7PfPGWkw7imcuCn1u4LXfx
sNJR/RaRNky/7+TE4DOiaJuSrs0Brva8PfolDy8dmk/htWcoWW0UkhEliPsbTX3CzZey4PmnNjIy
Es2pSrCpTrbJllvKkjiKHkBzFhWHTx+WKoyFSFCPvnRghHv8f0BoqJrILSFhbmPFluByLAB7hcHd
w/6ZCcj+c8L/IHebNyWqspSyna9nBAM4HlvPZXImK1SSQLVYFPknkY3RGSL2YkGfnkOsRrjEtlQO
3shvESVu7RdcIiTO4YDFhJBbA/Icw8Cs5XbcC1uR3NF1WZCFM8dnoD0j52VqtAugRni1ifcxDS8A
kYp8/mcrkpu/jK688dIpR6vogB8Sf3geUPjqC25jAgKMwA0gXNxbnh7BMp82DXaadIJxlLyjnRjX
Td35D+QRqXE0dncUYi+nHckQu1K3PW6PCyH3UK8YWPrMc5z51VMXuqcrgWsGhUzGIcHIJGU+Y1uU
YqnfO/dACpnpNvP8vf5HdCLMGhMwmEs/UCkPo2UVjwJ32IV3YmVn5mbsEP+dMeungHOUlAoMgZJM
GmNjan+VFR4uW98yBPedv6TRx6k+18qwXKo3ibdVh+BA1OsVTIQlER2jZaBc6rSyj0YqkHB5ceoV
NsmUMicikn85e5yhN3aghBnuvFF9MV8zWE05KldBE23EM4CM4Tmg+8YOiDwEpAarzKboy28T7r+N
VHrSWKDljVvta9zUciRzYruSftiUPUn3uMr0qhJSHLAxyj8dEBKqzqevsN0WBpWURh3VMncggaZq
r2vT5WEETlTVz5cJu4LVNte5VaRy35saiV6zeiYWP93pZ7ulrDfs1oN2jC+opQdJ5vR8ptw2NpMr
HE9SB2o6RIH6yFVoOucK9HAfeyVZTt+RnOjpbaocuizKmYMH7iSdH+kMcSHYNH8d96egclA9W+lD
Zc9+r6v9Xo+j9/oKdqvkixOf0boOA+hE77TTh2Ei/rhr8Mpgi1BhsLSOwxgVwWFF8wkcUffDaU1t
e9qOvLCk7QmQXezOKfFLlbg5DRhkKFbcnU3cLc0g/Sl64DgKZs1qP0wNSjfKLgYMBcrCDwyfIuZP
qAnHfLsg0uvxTD4+XgmQFhj7CgmThgkFVPyQ+PfelDImvs3ZIree5kKr4UvTadA/a9hQF+V3LQEL
JbBCmGC+B/nqNwXr2SeEYN09xgeLsrJ2q+CROakxlBiSUFPdyHL8zyCy7F8f29dwIYvD4gr1vpvZ
bq2tqE1eV9cC79Zdymjnrnj4dFRXc4pHc+pfaXL93TdCStC8CFcfTqNIG2nER50sk+C0rxzC6pFJ
+DFHx1XlaOqg6ibtyG1PeL81U1QuaCBeVtS0JhR5LtY2u7gCCXQT+Oo/eqVeM0nyoIqRfmkyTilo
HiS4V5PMAg+8VvMqBfj+RIeujup8rPE88zUxaHN1pZS6C1RVW0sDVDd34KYc0itR3HvPjhl8fZQ0
x4d7OU8lKWzZEg7MB9SHUCPLWsrcvVW99Id3PuQ66h0H25W3cCa4XyNVhgNbs/2iVXCT7Ep0itBT
L9VfHV9vpGL6PfdcyHsxe3PsHpUdItJJR5TBlSytRBWSggQT6RjDL8/P33dnHMM9SaFOoK2ILN+J
CpimcD3eSu9zkEGXEAYzSN43LzqMX+1FzU8ENJmQH8GBt8YE8F667kwQYUhI0KYE15ltuBVTe8h2
KnZSTnO5rdCKI2gDV7J78zGqWPMxHVMjVVnztN7MrnNNZ5VxKFYXk9kdtDr4nabgp+3WfYQGvAl3
W3XaVopFEUWIjSEC5hEOYBni5FlbD6WL6uIDTBoejm0qXNThbpq9W4fbE6fAmkpplbA8vXxbeWce
el7aKPTsa8a273cSL8+5vZWm5Z4QDvEo8QS543gxQKv96O37PTVodr0VNX3ozuqrvLs9TVfhFvc7
ZpD7vWj0bIEJQCNQSb133YvDycyT6AaZc7b3sPNWBdhCluOYxa1Qwiz3MU+LgGwrbl3h0wMlhtLh
bcoq7FRbT6JbhW0InIPRp5wjW4Gqmyfkhdocld6mdCVJ0SiWzIW72pOIg/W9h8ng442Le+zBQi2N
oOutHJSIimt6jKC3B3vunF8aB4WQdC1z17v0arywoUA695KvM4WkNNW7AdfKnpSiPdLUlXsv5at4
qDxpEMfS8+8i5Oy7Dk9DPnUAs4GuDFuC6wPXe881nkI9ej6tkBz8R8a16134aXtWcYH4S1wk15qM
2+k+0cuU/OSX55+jfjwzxa60bn4Y24rGHOHDKUA0xq6eIUV3VdGI+ow7EgYrxogmesc0KpROA8Z5
wDqf3omD4naSgKuPVeON5dQhT1fxduJm45h3Ht+37KNk3Dk2I9lNdIX6nJPvhRdysU6m7KhOb3eV
d3tEbdg+Gq9adRoJ98kyEu39nCDWwArchmi4wygTKg/RpNTekocfSRRcVnTjAzkIJ9/VDfsns2lj
w+uig79fjpv0wLGH49t+M4mKzPmEpKDPJlOeKeiWQrfGfI1Vw5M+zvjuDrEzFaBfwsdnDTHmqBYm
lnxDfjo+9utKvmzQD1SFHGWurrDCkk29aLUdgu5Z9nlwMLAKnGaVuTxZZaP9uT5/Kelx18O9am28
EIIV4XSZvP7gJH8/o2nsjgN4+k+Yfz4e2VT7izSL3yFAhG5R0OWlsdwwDQM9/wa5QLvdBU7ftycc
NnU80sSFoLd2ph1eEqjTkoKi+DZ+m6Q7CGqn1CJlXFC/2PQtgHlhhlBnnvA/xgSvc0ZGsudCMO8d
FbyzSEiavMDXE8Ss32Kb36N5fZjETPDgiVIyARfmXkYlwuGZOSSeYA9v1WTlijsdh+ohLf8/V2WU
ElzURNy9oi1pEi81c57ZSDbBwhJ5mpLDN0RB6E6m/9DIbz2wYlTgs1doLRvhwFS55UR81Fkko6I/
bXirN5pD0xN9lCWx9GLc+AkoF9tJIyICGEhsM1HSvKJuGwRuCFSyYetvivW+xi1wRogdexbC7z9P
PmYL+nn/Vp5OqIpby/ca7S+EG//uNnwM1Z7ruP7t0TYxMNUoKPJEBV6R4A5qAXm6sN8eWxFz1J7V
hTrCZKO0HR++dQvVAvCQPpnzwSh6sDcKOAdYCiiNDswJ9MDB0QNq+O2oG52YRTX5f/CJJaO/FjBB
Wh/mog2CCP0UbtSjy51jsXEHa42WnIBfGPWljddRAFrAe2QyiXqYKUeSuwPGraz0dDUCeaCJLvrE
fzIfaWPrJgk04STvrHywgAS0AvHx9iSx6OVyrFpx69wJN2NLZfrwitDdN5k/tMwX/brxXHEZir58
umvjAEY4eJTCXdk9PMPara7fj4z1dudua2mhefMUtkvu0wd3G1bIFnm+P05k49KA/R8EIlfGM9Qs
FSJSlUe2RyapG2n4FHlyqaKj8tpD2yTVWTXR+IVU1fuLZKJd4c25W0508YCH/fMKaQPsXC1nBw4e
j/zWU65KRFlnyZtP3+0hRwiEjWom82crTGV4Y84lszhhHq9kJDMtrw1wTT1PfwjcDBd2TkteBvP2
cUDNlNt42Ufik2Bf5u4AeQXqItCvIuhGA0bJGy+OCWhDKkvl8KhS6+La5DUFsOhDXCe4Y7l3Q90m
VYKMz46HAMjf3VF4gLFSx+CxF9ARfL19ry2TECQDN2QPObczOGdCxAD6IeYnBrEsANnZ9XL4IRMG
w+LAohZZ5GyYSRYX0CBUdTlwXbFHLpUH2A02ZdRXqFfV5z1CGpx0nEn6xLopUEePXnTnHT7sX2sj
7BMFlkAWKfXqZ5mzqPGWwUyn6DC8sEyJgCtnyxbo0FxqBJeZt9lhyRbXJcAjJHAa3yPwX9EyYbUl
egMdVyPbYAGoOKt/vwhHo/RsbuJoFPRDEQ3XRRYLgSgOYA/bROlCEUddPZAAmiUIHhuBFFHyrDuX
UGHOjo2ONTcXGxZvMWIp1X06k1gQNK7tqbbuc2HT/oVpCkRSnj1fENeeWPH4342QZBef2H7aY0+0
8V82yTgKk0fVHhSs5a+iJDLEDdOmFoBgXoCQPpj7I1+2FnKqoHgGs2RSmVXYrh627vz4txcHRz9p
JxoHcD26pOYXIr104FkXA36XVEZAOTGldXJFyQeMSW81Bvah97qQuRlnrJD9AYG7esOJWWPAeiOv
EAlv9NDui2jV1lRWLdk4LGe9xUTyAb56IikOhtdJpOWJNyK6HkLhn4xU7qLGm9hbJENIZLlwinnm
yJkSmtvw/HH9R6t9ku9I1j5EZOcsezNrtBj/CQqxnmFja2UvKQ14Fx/rglzE2bukhW/aaEJv6LTJ
soKzue48PMoOEgXMAp3oIRkS5mMn6uNx3/9hAkb/Uv3jhkmuhJdNsGl72hERBkO9dRookXaBwUsm
PR++lfSRwVAKb80TTEXYZOYi6CACMmizZ1SiR8C628lC+hJT0Y/RwN0dauuFsCxSOWENgMRaAABW
Sr0xfM+8EAABozLAnQMAHcqXL7HEZ/sCAAAAAARZWg==
--=-=-=
Content-Type: application/x-xz
Content-Disposition: attachment; filename=utest-batch-25.3.log.xz
Content-Transfer-Encoding: base64
Content-Description: utest-batch-25.3.log

/Td6WFoAAATm1rRGAgAhARYAAAB0L+Wj4CnQBMpdACKbSCZNXme3XQpCGYNL9cBb8v8sVk+l99BE
4ymOzqSJRyrK9yr0E2dh6aa0me1qVFas/iTLUpj9KROnx9gRP1npEA5XZtBdtt/1dK6qqRyuLFaC
V5F0IzcX+X9vKFlT38gGy1/2bJiqYp3nW4IpUAEItU+VE3Hsq2TtXuBbjyMHcISHyNNL5g2xzVwM
VHKmHdy/kT6Z0hElQXGwlelZhrAE2s2D9Q1Wd9R8uE/0s0d7lFWzEFkNgB8dWfc6Ev5IKmNCQL6b
ulmT+/YzqR2oIFyACsPoJzIsjEuzE1Os9kyHioHqyKhTEaR2cD3hvlap7ya8LVjj0C9Q3KGXeF07
OSTjNEFRftgo60/emo6zASImFuv9vD4+pKxq+1fry+gsXwwH3U8XCoODweloEMVrDyWsPkZaGRjL
hY4CuIY3zfdnzSb33dknYkLa52+abbotUMagsln1LxX143lpFOHvUgEbYaI8tHjkPRhvl5gtH/np
U6R8NxFsAJczuxInig4Xe88AI4XPMdBHfSvMXsIFy0Re/6AuMz/y2CF9f7TEY+WSd4HJHoOwld88
NvJ+vrsOu+tJ/Pjzun6lhohAfItAyn46jUAO8Uc4sCubxMAqIPTFz1F5vU8QyzlLZgL06XUW9/js
LbSglD9Wl+9w18BqOvHcRArmajvXRYkM/ls0NLB6w7ezETE9SiRacBVR4FIzNnyRPBMEHhcyK/zn
SovCv9EH4YJfRFwWtSc3bkLmZqcfSZIRpla/bzZvsNlUNjbNAhMlmH6Xqdp3U+eAtQU6D38aQ4KL
9OAP8rnn///mi/vrzzNBApu2iePrn3hwrHLECG6Po7ub4gl2e4r3g4akHOWnQGIvnrss6/nh1+c/
FkXUL0CF1Ku7J/L9fPEOjwwgKpjYVV42EIfkU6xhTJA4OMriPSfYF4MXdvHxaMcEf+nYQg8imR5J
JLEEOGZOp1k9/0jne2zgfhk49Gs4XiA/G+fu9YY7SVKaxJ7Cm7L/elNhqFh0i/lQ60YuqsRa0UgB
+UmyTRj2ZP1iMbslYDnwXJmER/Udqg7EwOqQp0mb4pQwzz8FuA0D1WTf9j4U/Z4jO1JdyGGXBit0
Ugyh3PdFpIQqwNrRDbdcDaDzCIpbTBWmq8MQShZr6Pj0QPsi0MbKfywu92NnTgDrgvInkgqH0hwQ
59H/cxFACvQt1rAGzYyWPacACzqQMNJVmW2nmmxyMjzxyRo+j7ggLqlufASB+sIxgzhKY4Nqy9RH
RvKjTA6WXFeRkaNFBraoiJwoc+P5Tvu+Yjk63F8j2PZ1SgWFkOeny4C60hC0h5tmMrxJgQ64k1sj
cgvib/XecCEy4LCMbNuhWQSjaXmzk8JULUyNrObtwwDKuGl4PMaeXxwSMB/HTGJXyGBNhggy8PaW
Pz4XdL+uH+HAHlXx+TxIGz/k8S9LsslL6zQ+ySWAXu8hxqpJxsb9Ma5ZGQc7JPA4P0YLHX/Gsvx4
IF8mmH6CkBdULeAkOV1ucRjpkdorsDdWSMgIHSIhRjLOyVjtrItSyxZQnPwds7p52XBUWViVvU07
l9DfmPIZ6UNvPK7oPe1SnHtkc7NLpg7UlqqQS8i4EqfoMq6EIABIcMrtg7HGLLeF9HnYPyF/SBVb
4AWYAAAAAqgjGsug2FEAAeYJ0VMAACYASv6xxGf7AgAAAAAEWVo=
--=-=-=
Content-Type: application/x-xz
Content-Disposition: attachment; filename=itest-batch-26-eieio.log.xz
Content-Transfer-Encoding: base64
Content-Description: itest-batch-26-eieio.log

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
--=-=-=
Content-Type: application/x-xz
Content-Disposition: attachment; filename=utest-batch-26-eieio.log.xz
Content-Transfer-Encoding: base64
Content-Description: utest-batch-26-eieio.log

/Td6WFoAAATm1rRGAgAhARYAAAB0L+Wj4CoDBPBdACKbSCZNXme3XQpCGYNL9cBb8xlAGq6KuJOA
eIDBOf3fnxqDcRtoZVt7D0WE4lTv7Tu53S6VSiEZcFJU7naIoZFdQ1sYjyTDkkKYP0ZWUhPcvfV9
Y+9Xs7Nv+n6K76B4eM6WAKuvdQAzgVq2FP1T8chZ19rWz4uL108mljx2KhJeT6sebU+gzI4AEkwW
A1oDpkapaJvYQrP7GHfY3W2f/3oN1J+s1+Tb7R+5yVYSvqn4NjEOJrjlHn7w+3OBeMP6dkOnloBD
SNosMHLpIOn+pbvDwK+sHyex6aaxsVM+L47qZ7SXONqcpPk4K9YDqA7UU1amXZBL9YUV1tNgSbKB
jCPF0+dsLo3aVdulNaNnO+AZ1DG006ZRKH138g6xVtTJMAUnJiL9WySNnYB97x/wgFchGhwDGros
e2bCBNkNK6XagQup71Eke7JHdXTyzIu6dKSYGacXuEKbWFpZooY2QZ198m+UsHYOdmsBUCrJq/fL
MsfooZ0UjAlIZit5mz/h6WiVSsxWewTF8H+RYwphmIR8VNyk15ktpSjuiC8uD/4SFgdkX3VoGigF
rnNgmUozvcmKIAyTOrh1JQLSw8ZcM8U5RJ3m/CmybpL9NK1wv0mRKV41YFm/okyCgw72t0XPVOML
yXOcBdnK8JkKj1IPbNflttb2M3sluYrZnkWy3Q9os/YzhyUoMjsy7QWtoQ+LkEJBlKLUxq9y6aey
I/sP9aBNEtgvmxePtF5GmHqbEsb8cKUcB6I7cBdsT+j5bNzZ6hT2BSVGz9C2bBndrysel8dMF9Hl
f0IIeq8feaQiW6eW9Y5WS4cCNQ0VvP2AVnvJVrAgXFcS9uP1QXld5fNWHfC0ko4LNQtciA2ES2fd
/UlKMxiYLBZHdT5kMFgoRLzwb5relYdYI/zwMZdIkhngCBhrambA6zgImcSOHlRORg5+1x+Ej6f+
g+bAaRtSsULvpCiaPAvmQdQUsikPKoQjYL9DhLc90NTL+7QH8ZZ9q7olxoNyELKUr5BV10yBGnGO
rdhPJb3tQHAywUl0k1+KNnww5m+xd1v8lmLTGFbyjcmPyGznXyMOzIzHh1gswG1vEvbiN6H+FV1Q
Kk1bWWPQXt4KgGLWjewAbf6C4IR9Sbx0Y+UXGdB9bobD+zsLo8jdNYmVGqdVFWrhxxMqDAbGzRXH
7r00V3vo14HELR+D7t+yNTyOJtu4DN512W/3muqP2XiYWrdj3zxXzt6b8HYtbjuT50+5XV1/EPh6
QEt5u7P0UaUatArRyN2jl3gENxCASDd44WfLI+fk/+DSd7Vyf2t83XPsusphWUdVmwBFreC3uZeJ
LcjNbygBOpLFbeXVnXaz+f/+Gv8GkiVFUyBi9E3SH8+gOmOL48uALpQ61/kCvyYvw2Rezdu2Wjgd
g2kQ+psSfjW5pF/a+IFVj2Je/xQFpQ+DuZDKLdafzQoe2E/bcpTtgcMZTdIzkAK6gMizg9qSsBZS
CYt5MNadSwPKTYvM58nJ+J9wUN0BNn1RIaCAhkHC1sSlnqmA5S7jDBmwiTfx+2traEZy0NvnprZr
MuRehUOPEhZ9L+hzGODU2zEPLUmZECq4AI6p7nKk1PZ27mOCuQiq8fAlYI3HqVNXgD74rMyfsD0R
hOwIi6sX/MBWnJnjPiAQ2RfqzVyLRPLnU17zrBsrxb17F2lblgTORWoA8Ax1s36nv9YAAYwKhFQA
AN+/GemxxGf7AgAAAAAEWVo=
--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 24 Feb 2018 23:43:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 24 18:43:14 2018
Received: from localhost ([127.0.0.1]:59273 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1epjTE-0003cj-RK
	for submit <at> debbugs.gnu.org; Sat, 24 Feb 2018 18:43:14 -0500
Received: from mail.ericabrahamsen.net ([50.56.99.223]:40735)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1epjTC-0003cb-Gc
 for 29220 <at> debbugs.gnu.org; Sat, 24 Feb 2018 18:43:11 -0500
Received: from localhost (71-35-188-108.tukw.qwest.net [71.35.188.108])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id CB0BCC0DD8;
 Sat, 24 Feb 2018 23:43:09 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mail.ericabrahamsen.net; s=mail; t=1519515790;
 bh=Qywqgk4YXcxv/YIpqzLvglkqAwn6pDRoSU3JJjBNeHM=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=X7txjXWHyT+jL76X8TNHHherlAoZ84e+iDZYrzShgwOxjyj4aVjH26+DIsgGH5rvW
 Nm1JhGo167V1DgPtckLPP2+t5mUL7LbhfRTLzaml9YIom8IqD2+n1beIf3yZAgirMk
 NGRwGz0MCCo7BDdkjArstANaZcIz2iBEJi5dS/SU=
From: Eric Abrahamsen <eric@HIDDEN>
To: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN>
 <874lp4aije.fsf@HIDDEN> <83po7pwlgs.fsf@HIDDEN>
 <87lgib4z2o.fsf@HIDDEN>
 <87wp1rcz21.fsf@HIDDEN>
 <87mv2jkaap.fsf@HIDDEN>
 <87wp1nsk52.fsf@HIDDEN>
 <87y3m2jl3b.fsf@HIDDEN>
 <871shf30fn.fsf@HIDDEN>
 <87woz2qdyo.fsf@HIDDEN>
 <877er23rev.fsf@HIDDEN>
Date: Sat, 24 Feb 2018 15:40:49 -0800
In-Reply-To: <877er23rev.fsf@HIDDEN> ("Pierre
 =?utf-8?Q?T=C3=A9choueyres=22's?= message of "Sun, 25 Feb 2018 00:21:28
 +0100")
Message-ID: <87sh9qufb2.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 29220
Cc: jwiegley@HIDDEN, 29220 <at> debbugs.gnu.org, monnier@HIDDEN,
 Noam Postavsky <npostavs@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)


On 02/25/18 00:21 AM, Pierre T=C3=A9choueyres wrote:
> Eric Abrahamsen <eric@HIDDEN> writes:
>
>> pierre.techoueyres@HIDDEN (Pierre T=C3=A9choueyres) writes:
>>
>>> Hello Eric,
>>> Any news on this fix ?
>>
>> Hey, sorry again this is taking so long. I wanted to run CEDET's test
>> suite, as that seems to be the main library that relies on
>> eieio-persistent, and I wanted to make sure it passed with these
>> changes. I can't get CEDET to build on my machine, however (apparently
>> Arch has a too-new version of ImageMagick, and CEDET won't build against
>> it), and I haven't had any luck just faking it and running the tests
>> themselves -- everything's too dependent on a successful build.
>>
>> I've only got two Arch machines to play with -- if anyone could
>> successfully build and test CEDET using the fix/eieio-persistent branch,
>> that would be very helpful...
>>
>
> I've been able to run the "itest-batch" and "utest-batch" from the CEDET
> git repository (http://git.code.sf.net/p/cedet/git), but I don't know
> how to interpret the results. Whatever the emacs version I use (25.3 or
> 26.0.91 + fix), I get errors. So I don't know what to check for the
> fix/eieio-persistent branch.

Bah, this is annoyingly difficult -- thank you for trying it out. I
suppose one terrible heuristic would be if the errors were different
between emacs-25, emacs-26, and fix/eieio-persistent. Would you mind
sending me the error output, in case anything jumps out at me?

Thanks again,
Eric




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 24 Feb 2018 23:21:35 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 24 18:21:35 2018
Received: from localhost ([127.0.0.1]:59218 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1epj8J-0002xf-Dd
	for submit <at> debbugs.gnu.org; Sat, 24 Feb 2018 18:21:35 -0500
Received: from smtp4-g21.free.fr ([212.27.42.4]:17664)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pierre.techoueyres@HIDDEN>) id 1epj8I-0002xX-DS
 for 29220 <at> debbugs.gnu.org; Sat, 24 Feb 2018 18:21:34 -0500
Received: from killashandra.ballybran.fr.free.fr (unknown
 [IPv6:2a01:e35:2e14:eab0:b51f:3dc7:7e03:942])
 by smtp4-g21.free.fr (Postfix) with ESMTPS id BE14319F4B5;
 Sun, 25 Feb 2018 00:21:28 +0100 (CET)
From: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
To: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN>
 <874lp4aije.fsf@HIDDEN> <83po7pwlgs.fsf@HIDDEN>
 <87lgib4z2o.fsf@HIDDEN>
 <87wp1rcz21.fsf@HIDDEN>
 <87mv2jkaap.fsf@HIDDEN>
 <87wp1nsk52.fsf@HIDDEN>
 <87y3m2jl3b.fsf@HIDDEN>
 <871shf30fn.fsf@HIDDEN>
 <87woz2qdyo.fsf@HIDDEN>
Date: Sun, 25 Feb 2018 00:21:28 +0100
In-Reply-To: <87woz2qdyo.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Sat, 24 Feb 2018 13:23:27 -0800")
Message-ID: <877er23rev.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.91 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 29220
Cc: jwiegley@HIDDEN, 29220 <at> debbugs.gnu.org, monnier@HIDDEN,
 Noam Postavsky <npostavs@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.5 (/)

Eric Abrahamsen <eric@HIDDEN> writes:

> pierre.techoueyres@HIDDEN (Pierre T=C3=A9choueyres) writes:
>
>> Hello Eric,
>> Any news on this fix ?
>
> Hey, sorry again this is taking so long. I wanted to run CEDET's test
> suite, as that seems to be the main library that relies on
> eieio-persistent, and I wanted to make sure it passed with these
> changes. I can't get CEDET to build on my machine, however (apparently
> Arch has a too-new version of ImageMagick, and CEDET won't build against
> it), and I haven't had any luck just faking it and running the tests
> themselves -- everything's too dependent on a successful build.
>
> I've only got two Arch machines to play with -- if anyone could
> successfully build and test CEDET using the fix/eieio-persistent branch,
> that would be very helpful...
>

I've been able to run the "itest-batch" and "utest-batch" from the CEDET
git repository (http://git.code.sf.net/p/cedet/git), but I don't know
how to interpret the results. Whatever the emacs version I use (25.3 or
26.0.91 + fix), I get errors. So I don't know what to check for the
fix/eieio-persistent branch.

> Eric
Pierre




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 24 Feb 2018 21:25:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 24 16:25:48 2018
Received: from localhost ([127.0.0.1]:59096 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ephKF-0006ma-UZ
	for submit <at> debbugs.gnu.org; Sat, 24 Feb 2018 16:25:48 -0500
Received: from mail.ericabrahamsen.net ([50.56.99.223]:45530)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1ephKF-0006mT-7d
 for 29220 <at> debbugs.gnu.org; Sat, 24 Feb 2018 16:25:47 -0500
Received: from localhost (71-35-188-108.tukw.qwest.net [71.35.188.108])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 3A735C0DD8;
 Sat, 24 Feb 2018 21:25:46 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mail.ericabrahamsen.net; s=mail; t=1519507546;
 bh=iTE1yhg5vk4nTJS6mcdY0SM9o0x6cXq5nD7xUw5EHmM=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=Pt45LToX5bQhMx1kBJFAsvsSdRw2lLi6BIv/oN/w92E1YfqBhWjyyYt9+PfIRmlOm
 /8V9dLsd/yTgsGTTDrXZLNp2702O2rB672SXaYFWcfM9jGKsD9S8eZKL5y2IoV5IcC
 VNiNYjzQdFRABI86FQ/rEUnBZSiV2i2ZBjzevJxQ=
From: Eric Abrahamsen <eric@HIDDEN>
To: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN>
 <874lp4aije.fsf@HIDDEN> <83po7pwlgs.fsf@HIDDEN>
 <87lgib4z2o.fsf@HIDDEN>
 <87wp1rcz21.fsf@HIDDEN>
 <87mv2jkaap.fsf@HIDDEN>
 <87wp1nsk52.fsf@HIDDEN>
 <87y3m2jl3b.fsf@HIDDEN>
 <871shf30fn.fsf@HIDDEN>
Date: Sat, 24 Feb 2018 13:23:27 -0800
In-Reply-To: <871shf30fn.fsf@HIDDEN> ("Pierre
 =?utf-8?Q?T=C3=A9choueyres=22's?= message of "Tue, 20 Feb 2018 20:50:36
 +0100")
Message-ID: <87woz2qdyo.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 29220
Cc: jwiegley@HIDDEN, 29220 <at> debbugs.gnu.org, monnier@HIDDEN,
 Noam Postavsky <npostavs@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

pierre.techoueyres@HIDDEN (Pierre T=C3=A9choueyres) writes:

> Hello Eric,
> Any news on this fix ?

Hey, sorry again this is taking so long. I wanted to run CEDET's test
suite, as that seems to be the main library that relies on
eieio-persistent, and I wanted to make sure it passed with these
changes. I can't get CEDET to build on my machine, however (apparently
Arch has a too-new version of ImageMagick, and CEDET won't build against
it), and I haven't had any luck just faking it and running the tests
themselves -- everything's too dependent on a successful build.

I've only got two Arch machines to play with -- if anyone could
successfully build and test CEDET using the fix/eieio-persistent branch,
that would be very helpful...

Eric




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 20 Feb 2018 19:50:46 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Feb 20 14:50:46 2018
Received: from localhost ([127.0.0.1]:53238 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eoDw6-00076F-Hd
	for submit <at> debbugs.gnu.org; Tue, 20 Feb 2018 14:50:46 -0500
Received: from smtp4-g21.free.fr ([212.27.42.4]:64600)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pierre.techoueyres@HIDDEN>) id 1eoDw4-000765-7F
 for 29220 <at> debbugs.gnu.org; Tue, 20 Feb 2018 14:50:44 -0500
Received: from killashandra.ballybran.fr.free.fr (unknown
 [IPv6:2a01:e35:2e14:eab0:b51f:3dc7:7e03:942])
 by smtp4-g21.free.fr (Postfix) with ESMTPS id 55EA619F595;
 Tue, 20 Feb 2018 20:50:37 +0100 (CET)
From: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
To: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN>
 <874lp4aije.fsf@HIDDEN> <83po7pwlgs.fsf@HIDDEN>
 <87lgib4z2o.fsf@HIDDEN>
 <87wp1rcz21.fsf@HIDDEN>
 <87mv2jkaap.fsf@HIDDEN>
 <87wp1nsk52.fsf@HIDDEN>
 <87y3m2jl3b.fsf@HIDDEN>
Date: Tue, 20 Feb 2018 20:50:36 +0100
In-Reply-To: <87y3m2jl3b.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Sat, 16 Dec 2017 15:42:48 -0800")
Message-ID: <871shf30fn.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.91 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 29220
Cc: jwiegley@HIDDEN, 29220 <at> debbugs.gnu.org, monnier@HIDDEN,
 Noam Postavsky <npostavs@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.0 (/)

Hello Eric,
Any news on this fix ?

Eric Abrahamsen <eric@HIDDEN> writes:

> On 12/15/17 23:26 PM, Pierre T=C3=A9choueyres wrote:
>> Of course with the good example and patch this will be more obvious.
>
> Oh bother, this is my fault, in c59ddb2120. The attached diff fixes
> this, and I guess should be put in.
>
> In #29541 I was hoping to reduce some of this complexity and make the
> code easier to reason about, but those changes would go into master, and
> this needs to be fixed in 26.
>
> More tests are definitely in order!
>
> diff --git a/lisp/emacs-lisp/eieio-base.el b/lisp/emacs-lisp/eieio-base.el
> index 0241f27395..a37cf7a1b3 100644
> --- a/lisp/emacs-lisp/eieio-base.el
> +++ b/lisp/emacs-lisp/eieio-base.el
> @@ -349,7 +349,7 @@ eieio-persistent-validate/fix-slot-value
>                         (seq-some
>                          (lambda (elt)
>                            (child-of-class-p (car proposed-value) elt))
> -                        classtype))
> +                        (if (consp classtype) classtype (list classtype)=
)))
>  		  (eieio-persistent-convert-list-to-object
>  		   proposed-value))
>  		 (t
>




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 25 Jan 2018 03:09:37 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 24 22:09:37 2018
Received: from localhost ([127.0.0.1]:41596 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eeXuz-0007WV-Ev
	for submit <at> debbugs.gnu.org; Wed, 24 Jan 2018 22:09:37 -0500
Received: from mail.ericabrahamsen.net ([50.56.99.223]:51109)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1eeXuy-0007WN-1x
 for 29220 <at> debbugs.gnu.org; Wed, 24 Jan 2018 22:09:36 -0500
Received: from localhost (71-212-75-109.tukw.qwest.net [71.212.75.109])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 2E472BBC27;
 Thu, 25 Jan 2018 03:09:35 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mail.ericabrahamsen.net; s=mail; t=1516849775;
 bh=gCewLv4VajA+OR4FOGKx90V3LYZDwzxt6yq/ihJWeXI=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=uGe/ncIwJtbMMhJg2rJMjf4fQjzY58eNh1ILPrSPB2DGhrU+jB7dY+Ge7YQaZiF3e
 2jLgYbOyakzgenM0bwBdtLkoGeMBQY21eboUC/kUpk/0GCZeNiJMOz1743AfCOXS6R
 turKlnhZysg/J0fYjyVjzsFVZ7UeQhLJuSJkDCpg=
From: Eric Abrahamsen <eric@HIDDEN>
To: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <87wp2024w2.fsf@HIDDEN>
 <878tcnxe0u.fsf@HIDDEN>
Date: Wed, 24 Jan 2018 19:09:34 -0800
In-Reply-To: <878tcnxe0u.fsf@HIDDEN> ("Pierre
 =?utf-8?Q?T=C3=A9choueyres=22's?= message of "Wed, 24 Jan 2018 20:17:21
 +0100")
Message-ID: <877es63a8h.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

pierre.techoueyres@HIDDEN (Pierre T=C3=A9choueyres) writes:

> Hi Eric,
>
> pierre.techoueyres@HIDDEN (Pierre T=C3=A9choueyres) writes:
>
>> Eric Abrahamsen <eric@HIDDEN> writes:
>>
>>> On 12/05/17 14:02 PM, Stefan Monnier wrote:
>>>>> Would it be too "heavy" to just copy the object and modify the copy?
>>>>
>>>> No, that's fine as well.
>>>
>>> Okay, the attached appears to work just fine. Pierre's recipe passes,
>>> as do all the tests in eieio-test-persist. Pierre, maybe you could eval
>>> this quickly and make sure that pcache works correctly again?
>>
>> Yes all my receipes tests are running fine. Many thanks.
>> I've tested also with the unicode-fonts package
>> (http://github.com/rolandwalker/unicode-fonts) from melpa.
>> Everything seem to work fine.
>>
>>>
>>> If this is okay, it's going into emacs-26, right?
>>>
> Sorry if I missed it but I think you didn't push this fix into the
> emacs-26 branch, did you ?

No, I haven't! Work has risen up and swallowed me; I'm also a little
worried about the potential for creating new screw-ups here. I'll try to
finish testing and the fixup branch this weekend...




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 24 Jan 2018 19:18:18 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 24 14:18:18 2018
Received: from localhost ([127.0.0.1]:41291 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eeQYr-0006V8-Sr
	for submit <at> debbugs.gnu.org; Wed, 24 Jan 2018 14:18:18 -0500
Received: from eggs.gnu.org ([208.118.235.92]:59697)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eeQYq-0006Uv-0V
 for submit <at> debbugs.gnu.org; Wed, 24 Jan 2018 14:18:16 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eeQYj-00046W-VQ
 for submit <at> debbugs.gnu.org; Wed, 24 Jan 2018 14:18:10 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM
 autolearn=disabled version=3.3.2
Received: from lists.gnu.org ([2001:4830:134:3::11]:38968)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
 (Exim 4.71) (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1eeQYj-00046G-Rl
 for submit <at> debbugs.gnu.org; Wed, 24 Jan 2018 14:18:09 -0500
Received: from eggs.gnu.org ([2001:4830:134:3::10]:50665)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eeQYi-0003Tz-J2
 for bug-gnu-emacs@HIDDEN; Wed, 24 Jan 2018 14:18:09 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eeQYe-00043N-93
 for bug-gnu-emacs@HIDDEN; Wed, 24 Jan 2018 14:18:08 -0500
Received: from [195.159.176.226] (port=57751 helo=blaine.gmane.org)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)
 (Exim 4.71) (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1eeQYe-00042N-1L
 for bug-gnu-emacs@HIDDEN; Wed, 24 Jan 2018 14:18:04 -0500
Received: from list by blaine.gmane.org with local (Exim 4.84_2)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eeQWH-0000kW-Nw
 for bug-gnu-emacs@HIDDEN; Wed, 24 Jan 2018 20:15:37 +0100
X-Injected-Via-Gmane: http://gmane.org/
To: bug-gnu-emacs@HIDDEN
From: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
Date: Wed, 24 Jan 2018 20:17:21 +0100
Lines: 25
Message-ID: <878tcnxe0u.fsf@HIDDEN>
References: <87y3nga0lv.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <87wp2024w2.fsf@HIDDEN>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Complaints-To: usenet@HIDDEN
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
Cancel-Lock: sha1:sNPFUj2s/TAU2rrdTumIIHQfaJE=
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
 [fuzzy]
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-Received-From: 2001:4830:134:3::11
X-Spam-Score: -4.8 (----)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -4.8 (----)

Hi Eric,

pierre.techoueyres@HIDDEN (Pierre Téchoueyres) writes:

> Eric Abrahamsen <eric@HIDDEN> writes:
>
>> On 12/05/17 14:02 PM, Stefan Monnier wrote:
>>>> Would it be too "heavy" to just copy the object and modify the copy?
>>>
>>> No, that's fine as well.
>>
>> Okay, the attached appears to work just fine. Pierre's recipe passes,
>> as do all the tests in eieio-test-persist. Pierre, maybe you could eval
>> this quickly and make sure that pcache works correctly again?
>
> Yes all my receipes tests are running fine. Many thanks.
> I've tested also with the unicode-fonts package
> (http://github.com/rolandwalker/unicode-fonts) from melpa.
> Everything seem to work fine.
>
>>
>> If this is okay, it's going into emacs-26, right?
>>
Sorry if I missed it but I think you didn't push this fix into the
emacs-26 branch, did you ?





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 28 Dec 2017 18:46:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Dec 28 13:46:48 2017
Received: from localhost ([127.0.0.1]:55458 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eUdCa-0005Pe-H8
	for submit <at> debbugs.gnu.org; Thu, 28 Dec 2017 13:46:48 -0500
Received: from mail.ericabrahamsen.net ([50.56.99.223]:51410)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1eUdCX-0005PV-7z
 for 29220 <at> debbugs.gnu.org; Thu, 28 Dec 2017 13:46:45 -0500
Received: from localhost (71-212-75-109.tukw.qwest.net [71.212.75.109])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 46370C0733;
 Thu, 28 Dec 2017 18:46:44 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mail.ericabrahamsen.net; s=mail; t=1514486804;
 bh=0ThlrxCdb62L2K5pT1TD1Ntx25JQ2IGKeR9HJ1Ugr+s=;
 h=From:To:Cc:Subject:References:Date:From;
 b=s09VIcAcWMCcqcFR0sXwBRlyMA2wSLC4Sq7F/mYbeNr09GW2FdRTMgZxq1mROd8Zj
 Lxg08Fb0EkgSRqrYbVucXe1JvVL8sMO+XracVlRZEB3qS4QX2z0OOzWZWSKVDuWUpF
 2NGQKAC6oigpUPX2VuJH8EwmrXCLQqtMQq6UMEAY=
From: Eric Abrahamsen <eric@HIDDEN>
To: Eric Ludlam <ericludlam@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN>
 <874lp4aije.fsf@HIDDEN> <83po7pwlgs.fsf@HIDDEN>
 <87lgib4z2o.fsf@HIDDEN>
 <87wp1rcz21.fsf@HIDDEN>
 <87mv2jkaap.fsf@HIDDEN>
 <87wp1nsk52.fsf@HIDDEN>
 <87k1xjke54.fsf@HIDDEN>
 <jwvefnren1n.fsf-monnier+emacsbugs@HIDDEN>
 <87bmit45je.fsf@HIDDEN>
 <jwvvah1f7go.fsf-monnier+emacsbugs@HIDDEN>
 <87tvwk253j.fsf@HIDDEN>
 <ad2b349f-8e4f-8784-1bb3-03fdeb0b21dd@HIDDEN>
Date: Thu, 28 Dec 2017 10:44:45 -0800
Message-ID: <87wp16y9nm.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 29220
Cc: "Eric M. Ludlam" <zappo@HIDDEN>, 29220 <at> debbugs.gnu.org,
 Noam Postavsky <npostavs@HIDDEN>,
 Stefan Monnier <monnier@HIDDEN>,
 Pierre =?utf-8?Q?T=C3=A9choueyres?= <pierre.techoueyres@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)


On 12/23/17 21:18 PM, Eric Ludlam wrote:
> On 12/20/2017 09:21 PM, Eric Abrahamsen wrote:
>> On 12/20/17 15:54 PM, Stefan Monnier wrote:
>>>> As for the quoting thing, my current idea is to not add quotes to lists
>>>> when writing, then strip quotes on restore, if the car of the list is a
>>>> valid class symbol then try to restore an object, but wrap in
>>>> `condition-case' and return the plain list if an error is raised.
>>> I recommend you ask the opinion of Eric M. Ludlam <zappo@HIDDEN>
>>> (the original author of that code).
>> Okay!
>>
>> Eric, I'm dragging you into this because we're having a little trouble
>> with the eieio persistence functionality. Sorry...
>>
>> In Emacs 26 objects are implemented using records, which (long story
>> short) means that their representations from `prin1' are no longer
>> reconstructable using `read', which is causing problems for
>> eieio-persistent.
> Hey, thanks for checking in.
>
> I know a bunch of eieio was re-written to be faster and better, but I
> haven't been keeping up with the latest version.=C2=A0 For mysterious
> reasons, Ubuntu is still on Emacs 24 so I'm still on the old stuff.
>> The current persistence read/write process basically only handles
>> top-level slot values. It looks at the value, does one of the following:
>>
>> 1. Writes an object using `object-write'
>> 2. Writes a list of objects using a "list" plus `object-write'
>> 3. Quotes a list and prints it
>> 4. Prints value directly
>>
>> If objects are inside lists, hash tables, or vectors (or anything else),
>> they are not written using `object-write'. This used to not be a problem
>> because their `prin1' representation was still readable.
>>
>> This is no longer the case, which leads to failure for libraries that
>> put objects inside other data structures.
>
> The original purpose of object-write on eieio objects was to prevent
> circular references which kept popping up in EDE and SemanticDB. The first
> version just dumped the old raw vector.=C2=A0 That's one of the reasons w=
hy it
> doesn't try to be pedantic about carefully going down through every list.
> It only had to deal with EDE and Semantic classes.

Thanks for the response! It's good to have a bit of background.

Would you mind pointing me in the direction of some tests or other code
that I can use to make sure the temporary fix works for CEDET and
family? It seems likely that what will happen for Emacs 26 is that I'll
do a limited set of fixes to ensure that no major packages break, and
then try to come up with a more comprehensive solution for Emacs 27.
Right now I've got tests aimed at pcache and the Gnus registry, but I'd
like to make sure EDE and Semantic work correctly, as well.

>> My feeling is that both the write and restore process should walk the
>> entire tree of whatever object is being written. The write process
>> should turn objects into list representations, nothing more. The restore
>> process should restore objects, and strip strings of properties (I've
>> got the outline of this in bug#29541), and nothing more. If the restore
>> process was destructive, it would save some consing.
> I think that makes sense.=C2=A0 I was definitely taking short-cuts in let=
ting
> lists write themselves b/c I was lazy.=C2=A0 Based on what you describe, =
it
> probably makes sense to walk entire structures and write each step.
>
> It might be even better if that was a core Emacs feature, and not somethi=
ng
> specific to a simple eieio utility base class.=C2=A0 :)

Coincidentally, John Wiegley posted a possible generic structure-walking
function (called "traverse") to this list not too long ago.

[...]

> For example, you might say that any list that starts with a class
> symbol is an
> object and everything else is data.=C2=A0 Of course, then you can't have a
> list of
> class symbols, and definitely need to avoid having classes with simple
> names.

[...]

> Don't forget that objects can execute code in their 'object-write' to
> convert
> an inconvenient data structure into something simple, and in the construc=
tor
> convert it back again.
>
> For example, have a slot with the hash table be non-savable (no :initarg).
> In the object-write, convert the hash table into a simple flat list on
> a different slot with an :initarg.
>
> On load, copy the content of the :initarg slot back into your hash table.
>
> In this way, you may be able to have the 2 examples avoid having any
> problems
> with the current system in E26.
>
> Not that I don't know what the real issues are.=C2=A0 I'm just tossing so=
me
> options out
> there.

Okay, thanks very much for these responses. I've got some ideas about
the full fix, and will work on those in a separate bug report.

Thanks again,
Eric




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 24 Dec 2017 02:18:56 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 23 21:18:56 2017
Received: from localhost ([127.0.0.1]:49760 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eSvsN-0004Dk-Pl
	for submit <at> debbugs.gnu.org; Sat, 23 Dec 2017 21:18:56 -0500
Received: from mail-qk0-f169.google.com ([209.85.220.169]:42310)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ericludlam@HIDDEN>) id 1eSvsM-0004DX-Bt
 for 29220 <at> debbugs.gnu.org; Sat, 23 Dec 2017 21:18:54 -0500
Received: by mail-qk0-f169.google.com with SMTP id d202so14300886qkc.9
 for <29220 <at> debbugs.gnu.org>; Sat, 23 Dec 2017 18:18:54 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=subject:to:cc:references:from:message-id:date:user-agent
 :mime-version:in-reply-to:content-transfer-encoding:content-language;
 bh=+TGvD4smHBhOd84qKAjl5Mwb3nEqJrFEFUZAUTGHbPE=;
 b=nWqaaJcgWVMAvP7ydGyWuQGO/G7CgzjkB7d0LrSnUzUHbbwFqVUotX/8+YjRh7Fgw4
 3uh1dsK0De27maqS3NBEmtvjuaZP0QTx3+AM6qnuvna+8xOFu7Np8hbxwghEU1f5N725
 Kc+QKoooDbY7w3QxLY04KQpLNi0zFtyeO9jljPg4GAoeA8ewXIUcPOxnW/hP+BJbHsgl
 0zQpMuYhr+dHteR0l1b+rvZuBB4xPGS6yToNOLFeC3mn7IJjIV7SnfK42RLJT2lqT2Ur
 9UbmuO3Bok2ipF8gv9hkLNd7hENfuGuPLnvLTizCoY14HnqqwFlzf8v0C5XaSOqrGccc
 7Csw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:subject:to:cc:references:from:message-id:date
 :user-agent:mime-version:in-reply-to:content-transfer-encoding
 :content-language;
 bh=+TGvD4smHBhOd84qKAjl5Mwb3nEqJrFEFUZAUTGHbPE=;
 b=c9SWaFtPbSXv5YZxiXgpf2opJvSt9nEL5n5aIL9EsFpbfBZoehfqEAj1Gtx06AjGFx
 dmIXJdiWej17tUG9LVgI+TNmpKmDS2FpFvARxh3HhEE8Xng0NoX9RdUNR2Tvbekfr7YQ
 T9kxTlFQEwdQm9fsrFRrOyONaZhRiwZNHuJ7d+4gJGePgaFvN/9BukgoqZ/HzfNnLfnK
 fZ4lwm8m4T9CWtKhM0qCQXEKqE/B9Umymaokvlh/zg6rws+/hqwF4HP6AlpY3t4Snld4
 PdzT1R0JWnFtzwtZe+9GpHn7mA6ADz8i9ORJrigfqc9Ybs2b4j1ozZw+DYmnjncgCCCN
 Jkiw==
X-Gm-Message-State: AKGB3mIi/v7VtIQsENoCVvdTHZCfLcZsFzGJNdVIN+eEPeTS/IoGfCLD
 7MZ57+X01CQFLTstu55FYec=
X-Google-Smtp-Source: ACJfBotdTjtxoJWY8KZS4JdBlN31YqvxTrvUpHOaFL6CfCSvkSHsj9ghQH/N08xC5BBhxHjFu0mmUg==
X-Received: by 10.55.73.13 with SMTP id w13mr24064643qka.201.1514081928437;
 Sat, 23 Dec 2017 18:18:48 -0800 (PST)
Received: from [192.168.1.202] (pool-74-104-122-152.bstnma.fios.verizon.net.
 [74.104.122.152])
 by smtp.googlemail.com with ESMTPSA id f4sm11323974qtj.21.2017.12.23.18.18.45
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Sat, 23 Dec 2017 18:18:46 -0800 (PST)
Subject: Re: bug#29220: 26.0.90; eieio-persistent-read fail to restore saved
 object.
To: Eric Abrahamsen <eric@HIDDEN>,
 Stefan Monnier <monnier@HIDDEN>
References: <87y3nga0lv.fsf@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN>
 <874lp4aije.fsf@HIDDEN> <83po7pwlgs.fsf@HIDDEN>
 <87lgib4z2o.fsf@HIDDEN> <87wp1rcz21.fsf@HIDDEN>
 <87mv2jkaap.fsf@HIDDEN>
 <87wp1nsk52.fsf@HIDDEN>
 <87k1xjke54.fsf@HIDDEN>
 <jwvefnren1n.fsf-monnier+emacsbugs@HIDDEN>
 <87bmit45je.fsf@HIDDEN>
 <jwvvah1f7go.fsf-monnier+emacsbugs@HIDDEN>
 <87tvwk253j.fsf@HIDDEN>
From: Eric Ludlam <ericludlam@HIDDEN>
Message-ID: <ad2b349f-8e4f-8784-1bb3-03fdeb0b21dd@HIDDEN>
Date: Sat, 23 Dec 2017 21:18:44 -0500
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101
 Thunderbird/52.5.0
MIME-Version: 1.0
In-Reply-To: <87tvwk253j.fsf@HIDDEN>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org, Noam Postavsky <npostavs@HIDDEN>,
 "Eric M. Ludlam" <zappo@HIDDEN>,
 =?UTF-8?Q?Pierre_T=c3=a9choueyres?= <pierre.techoueyres@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.0 (/)

On 12/20/2017 09:21 PM, Eric Abrahamsen wrote:
> On 12/20/17 15:54 PM, Stefan Monnier wrote:
>>> As for the quoting thing, my current idea is to not add quotes to lists
>>> when writing, then strip quotes on restore, if the car of the list is a
>>> valid class symbol then try to restore an object, but wrap in
>>> `condition-case' and return the plain list if an error is raised.
>> I recommend you ask the opinion of Eric M. Ludlam <zappo@HIDDEN>
>> (the original author of that code).
> Okay!
>
> Eric, I'm dragging you into this because we're having a little trouble
> with the eieio persistence functionality. Sorry...
>
> In Emacs 26 objects are implemented using records, which (long story
> short) means that their representations from `prin1' are no longer
> reconstructable using `read', which is causing problems for
> eieio-persistent.
Hey, thanks for checking in.

I know a bunch of eieio was re-written to be faster and better, but I 
haven't been keeping up with the latest version.  For mysterious 
reasons, Ubuntu is still on Emacs 24 so I'm still on the old stuff.
> The current persistence read/write process basically only handles
> top-level slot values. It looks at the value, does one of the following:
>
> 1. Writes an object using `object-write'
> 2. Writes a list of objects using a "list" plus `object-write'
> 3. Quotes a list and prints it
> 4. Prints value directly
>
> If objects are inside lists, hash tables, or vectors (or anything else),
> they are not written using `object-write'. This used to not be a problem
> because their `prin1' representation was still readable.
>
> This is no longer the case, which leads to failure for libraries that
> put objects inside other data structures.

The original purpose of object-write on eieio objects was to prevent
circular references which kept popping up in EDE and SemanticDB. The first
version just dumped the old raw vector.  That's one of the reasons why it
doesn't try to be pedantic about carefully going down through every list.
It only had to deal with EDE and Semantic classes.

> My feeling is that both the write and restore process should walk the
> entire tree of whatever object is being written. The write process
> should turn objects into list representations, nothing more. The restore
> process should restore objects, and strip strings of properties (I've
> got the outline of this in bug#29541), and nothing more. If the restore
> process was destructive, it would save some consing.
I think that makes sense.  I was definitely taking short-cuts in letting
lists write themselves b/c I was lazy.  Based on what you describe, it
probably makes sense to walk entire structures and write each step.

It might be even better if that was a core Emacs feature, and not something
specific to a simple eieio utility base class.  :)

> Three items for consideration:
>
> 1. What do you think about the above proposal? Have you had some ideas in
>     this direction already?
> 2. Stefan pointed out that, if we don't quote lists, there's a potential
>     ambiguity during restore time between lists that are lists, and lists
>     that represent an object. Do you have any thoughts about this?
Objects, as a general rule, need to execute code of some sort to 
instantiate,
link themselves into a system (like semanticdb), or generate transient data
for slots that are derived (and not saved).

Thus, each layer in the save file needs some way to mark themselves as 
to what
they are so the restore process can either instantiate or just use the 
raw data.

 From the quote / not quote point of view, you could use any kind of 
keys you
want to indicate what is at each layer.

For example, you might say that any list that starts with a class symbol 
is an
object and everything else is data.  Of course, then you can't have a 
list of
class symbols, and definitely need to avoid having classes with simple 
names.

I used lists that could be read with 'read', but you could use xml or 
all sorts of
other save formats to ensure you know exactly what's going on.  I have a 
vague
recollection of writing an xml export for eieio, but I don't think I 
used it for
anything.
> 3. Emacs 26 is looming, and our current solutions either break pcache,
>     or break the Gnus registry. We might want to do a stop-gap for Emacs
>     26, and a more complete fix for master/27.

Makes sense to me.

Don't forget that objects can execute code in their 'object-write' to 
convert
an inconvenient data structure into something simple, and in the constructor
convert it back again.

For example, have a slot with the hash table be non-savable (no :initarg).
In the object-write, convert the hash table into a simple flat list on
a different slot with an :initarg.

On load, copy the content of the :initarg slot back into your hash table.

In this way, you may be able to have the 2 examples avoid having any 
problems
with the current system in E26.

Not that I don't know what the real issues are.  I'm just tossing some 
options out
there.

Good Luck
Eric





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.
Did not alter fixed versions and reopened. Request was from Debbugs Internal Request <help-debbugs@HIDDEN> to internal_control <at> debbugs.gnu.org. Full text available.
Removed tag(s) fixed. Request was from Noam Postavsky <npostavs@HIDDEN> to control <at> debbugs.gnu.org. Full text available.
bug No longer marked as fixed in versions 26.1. Request was from Noam Postavsky <npostavs@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 21 Dec 2017 02:21:40 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Dec 20 21:21:40 2017
Received: from localhost ([127.0.0.1]:45040 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eRqUN-00024X-WD
	for submit <at> debbugs.gnu.org; Wed, 20 Dec 2017 21:21:40 -0500
Received: from mail.ericabrahamsen.net ([50.56.99.223]:34675)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1eRqUM-00024O-BW
 for 29220 <at> debbugs.gnu.org; Wed, 20 Dec 2017 21:21:38 -0500
Received: from localhost (71-212-75-109.tukw.qwest.net [71.212.75.109])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 4AC72C06C3;
 Thu, 21 Dec 2017 02:21:37 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mail.ericabrahamsen.net; s=mail; t=1513822897;
 bh=OgGtnixCTCDrxEHWVYQNI6mGRlXyJVwRKpE2PrpfsA0=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=nV/ups/CfNMcVwaVvj0o69gaeQgjDUN8JkVrq04VWQz4/npgEbH7ojo1MkmJqqUvJ
 T1RA1V8gfrTXnukH6+9wss67EduxWw3td/Qxwg+gT5y+CfbTr9vZAAC8qDfr8KN2bm
 /ru2wE/OXg0zOyZ6MyJAkNHBc8e2G9ZfxYl2tF/I=
From: Eric Abrahamsen <eric@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN>
 <874lp4aije.fsf@HIDDEN> <83po7pwlgs.fsf@HIDDEN>
 <87lgib4z2o.fsf@HIDDEN>
 <87wp1rcz21.fsf@HIDDEN>
 <87mv2jkaap.fsf@HIDDEN>
 <87wp1nsk52.fsf@HIDDEN>
 <87k1xjke54.fsf@HIDDEN>
 <jwvefnren1n.fsf-monnier+emacsbugs@HIDDEN>
 <87bmit45je.fsf@HIDDEN>
 <jwvvah1f7go.fsf-monnier+emacsbugs@HIDDEN>
Date: Wed, 20 Dec 2017 18:21:36 -0800
In-Reply-To: <jwvvah1f7go.fsf-monnier+emacsbugs@HIDDEN> (Stefan Monnier's
 message of "Wed, 20 Dec 2017 15:54:26 -0500")
Message-ID: <87tvwk253j.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org, Noam Postavsky <npostavs@HIDDEN>,
 "Eric M. Ludlam" <zappo@HIDDEN>,
 Pierre =?utf-8?Q?T=C3=A9choueyres?= <pierre.techoueyres@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)


On 12/20/17 15:54 PM, Stefan Monnier wrote:
>> As for the quoting thing, my current idea is to not add quotes to lists
>> when writing, then strip quotes on restore, if the car of the list is a
>> valid class symbol then try to restore an object, but wrap in
>> `condition-case' and return the plain list if an error is raised.
>
> I recommend you ask the opinion of Eric M. Ludlam <zappo@HIDDEN>
> (the original author of that code).

Okay!

Eric, I'm dragging you into this because we're having a little trouble
with the eieio persistence functionality. Sorry...

In Emacs 26 objects are implemented using records, which (long story
short) means that their representations from `prin1' are no longer
reconstructable using `read', which is causing problems for
eieio-persistent.

The current persistence read/write process basically only handles
top-level slot values. It looks at the value, does one of the following:

1. Writes an object using `object-write'
2. Writes a list of objects using a "list" plus `object-write'
3. Quotes a list and prints it
4. Prints value directly

If objects are inside lists, hash tables, or vectors (or anything else),
they are not written using `object-write'. This used to not be a problem
because their `prin1' representation was still readable.

This is no longer the case, which leads to failure for libraries that
put objects inside other data structures.

In this bug report I tried to do a simple fix for pcache, by looking for
objects inside hash tables and vectors, and using `object-write' for
them, too. That works (though it only goes one layer deeper), but it
caused new bugs in the Gnus registry, because now lists inside hash
tables are quoted, but not un-quoted during the restore process.

The persistence process is fundamentally only set up to do single-layer
processing of objects and their slot values. Probably, people are going
to continue to use eieio-persistent for more complex things (it's only
luck that I didn't run into trouble with EBDB), and I think
eieio-persistent should be able to handle whatever gets thrown at it.

My feeling is that both the write and restore process should walk the
entire tree of whatever object is being written. The write process
should turn objects into list representations, nothing more. The restore
process should restore objects, and strip strings of properties (I've
got the outline of this in bug#29541), and nothing more. If the restore
process was destructive, it would save some consing.

Three items for consideration:

1. What do you think about the above proposal? Have you had some ideas in
   this direction already?
2. Stefan pointed out that, if we don't quote lists, there's a potential
   ambiguity during restore time between lists that are lists, and lists
   that represent an object. Do you have any thoughts about this?
3. Emacs 26 is looming, and our current solutions either break pcache,
   or break the Gnus registry. We might want to do a stop-gap for Emacs
   26, and a more complete fix for master/27.

Sorry if I've over-explained, I'm using this opportunity to continue
thinking about the problem.

Eric




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 20 Dec 2017 20:51:41 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Dec 20 15:51:41 2017
Received: from localhost ([127.0.0.1]:44836 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eRlL2-0000IM-JR
	for submit <at> debbugs.gnu.org; Wed, 20 Dec 2017 15:51:40 -0500
Received: from chene.dit.umontreal.ca ([132.204.246.20]:60856)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1eRlL1-0000IE-6J
 for 29220 <at> debbugs.gnu.org; Wed, 20 Dec 2017 15:51:39 -0500
Received: from lechazo.home (lechon.iro.umontreal.ca [132.204.27.242])
 by chene.dit.umontreal.ca (8.14.7/8.14.1) with ESMTP id vBKKpcGq006377;
 Wed, 20 Dec 2017 15:51:38 -0500
Received: by lechazo.home (Postfix, from userid 20848)
 id 132B960215; Wed, 20 Dec 2017 15:54:26 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
Message-ID: <jwvvah1f7go.fsf-monnier+emacsbugs@HIDDEN>
References: <87y3nga0lv.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN>
 <874lp4aije.fsf@HIDDEN> <83po7pwlgs.fsf@HIDDEN>
 <87lgib4z2o.fsf@HIDDEN>
 <87wp1rcz21.fsf@HIDDEN>
 <87mv2jkaap.fsf@HIDDEN>
 <87wp1nsk52.fsf@HIDDEN>
 <87k1xjke54.fsf@HIDDEN>
 <jwvefnren1n.fsf-monnier+emacsbugs@HIDDEN>
 <87bmit45je.fsf@HIDDEN>
Date: Wed, 20 Dec 2017 15:54:26 -0500
In-Reply-To: <87bmit45je.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Wed, 20 Dec 2017 10:29:09 -0800")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-NAI-Spam-Flag: NO
X-NAI-Spam-Threshold: 5
X-NAI-Spam-Score: 0
X-NAI-Spam-Rules: 2 Rules triggered
	EDT_SA_DN_PASS=0, RV6184=0
X-NAI-Spam-Version: 2.3.0.9418 : core <6184> : inlines <6272> : streams
 <1773693> : uri <2554570>
X-Spam-Score: -1.3 (-)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org, Noam Postavsky <npostavs@HIDDEN>,
 Pierre =?windows-1252?Q?T=E9choueyres?= <pierre.techoueyres@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.3 (-)

> As for the quoting thing, my current idea is to not add quotes to lists
> when writing, then strip quotes on restore, if the car of the list is a
> valid class symbol then try to restore an object, but wrap in
> `condition-case' and return the plain list if an error is raised.

I recommend you ask the opinion of Eric M. Ludlam <zappo@HIDDEN>
(the original author of that code).

> Seems pretty unlikely that someone would write a list that accidentally
> happens to restore to a valid object.

It should(!) be easy to design the system such that we don't need to
make such assumptions.


        Stefan




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 20 Dec 2017 18:31:17 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Dec 20 13:31:17 2017
Received: from localhost ([127.0.0.1]:44709 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eRj9A-00018r-P1
	for submit <at> debbugs.gnu.org; Wed, 20 Dec 2017 13:31:16 -0500
Received: from mail.ericabrahamsen.net ([50.56.99.223]:52470)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1eRj98-00018h-DK
 for 29220 <at> debbugs.gnu.org; Wed, 20 Dec 2017 13:31:14 -0500
Received: from localhost (71-212-75-109.tukw.qwest.net [71.212.75.109])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 88D5DBFD7F;
 Wed, 20 Dec 2017 18:31:13 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mail.ericabrahamsen.net; s=mail; t=1513794673;
 bh=brFet5qQcSKEhJQSB0GEjQdV7biOi4mGeVnHsOg4a7o=;
 h=From:To:Cc:Subject:References:Date:From;
 b=ZDpZSJP8H3NGf1l7VFMrLdoO3LFHn74Q/tSaX9q8j+8iP14fb/Fz4gVdZ1bqLp2lz
 vK5eEbCKY5CK/moQeUMIa4RMPj8Ua9tQ/LTBfdu/fUXD9RGsSeD7u/+qtimq19KPS8
 if8T/m38n6VY6uy1cNNEBAusx3atlGp/xrqjf14g=
From: Eric Abrahamsen <eric@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN>
 <874lp4aije.fsf@HIDDEN> <83po7pwlgs.fsf@HIDDEN>
 <87lgib4z2o.fsf@HIDDEN>
 <87wp1rcz21.fsf@HIDDEN>
 <87mv2jkaap.fsf@HIDDEN>
 <87wp1nsk52.fsf@HIDDEN>
 <87k1xjke54.fsf@HIDDEN>
 <jwvefnren1n.fsf-monnier+emacsbugs@HIDDEN>
Date: Wed, 20 Dec 2017 10:29:09 -0800
Message-ID: <87bmit45je.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org, Noam Postavsky <npostavs@HIDDEN>,
 Pierre =?utf-8?Q?T=C3=A9choueyres?= <pierre.techoueyres@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

Stefan Monnier <monnier@HIDDEN> writes:

>> My feeling is that we could just remove the addition of the quote
>> character in `eieio-list-prin1'.
>
> Maybe it's needed to distinguish the printed value of "a list that
> starts with the symbol `my-class`" from "an object of class` my-class`"?

Yup.

Clearly this has the potential to turn into a bigger mess. I just pushed
a branch to the repo called "fix/eieio-persistent", based off emacs-26.
I modified Pierre's patch to add more (failing) tests, and then added
another commit which fixes the easy error in handling the return value
of `eieio-persistent-slot-type-is-class-p'.

My feeling is that the process *ought* to be able to handle all the
failing test cases. But even if the issue of quoting is fixed, not all
the tests will pass, as the write/restore process doesn't descend into
lists.

As for the quoting thing, my current idea is to not add quotes to lists
when writing, then strip quotes on restore, if the car of the list is a
valid class symbol then try to restore an object, but wrap in
`condition-case' and return the plain list if an error is raised.

Seems pretty unlikely that someone would write a list that accidentally
happens to restore to a valid object.

Eric




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 18 Dec 2017 21:38:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Dec 18 16:38:34 2017
Received: from localhost ([127.0.0.1]:40910 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eR37K-0005fW-97
	for submit <at> debbugs.gnu.org; Mon, 18 Dec 2017 16:38:34 -0500
Received: from pmta21.teksavvy.com ([76.10.157.36]:33090)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1eR37I-0005fH-OZ
 for 29220 <at> debbugs.gnu.org; Mon, 18 Dec 2017 16:38:33 -0500
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A2FeDQD9Mzha/1WCxEVdHAEBAQQBAQoBA?=
 =?us-ascii?q?YM+gVqDbItgjhUBgX8UIAGZAQqFNQQCAoUGRBQBAQEBAQEBAQEDaCiFJQEEAVY?=
 =?us-ascii?q?jBQsLNBIUGA0kijUIrWKKagEBAQcCASWDbohDNosVBZMvkA2XKQEYiW41hzqWa?=
 =?us-ascii?q?BCBOzYjgU8yGggwPIIqhHMjik4BAQE?=
X-IPAS-Result: =?us-ascii?q?A2FeDQD9Mzha/1WCxEVdHAEBAQQBAQoBAYM+gVqDbItgjhU?=
 =?us-ascii?q?BgX8UIAGZAQqFNQQCAoUGRBQBAQEBAQEBAQEDaCiFJQEEAVYjBQsLNBIUGA0ki?=
 =?us-ascii?q?jUIrWKKagEBAQcCASWDbohDNosVBZMvkA2XKQEYiW41hzqWaBCBOzYjgU8yGgg?=
 =?us-ascii?q?wPIIqhHMjik4BAQE?=
X-IronPort-AV: E=Sophos;i="5.45,423,1508817600"; d="scan'208";a="14252574"
Received: from 69-196-130-85.dsl.teksavvy.com (HELO fmsmemgm.homelinux.net)
 ([69.196.130.85])
 by smtp.teksavvy.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 18 Dec 2017 16:38:26 -0500
Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848)
 id 8664DAE353; Mon, 18 Dec 2017 16:38:26 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
Message-ID: <jwvefnren1n.fsf-monnier+emacsbugs@HIDDEN>
References: <87y3nga0lv.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN>
 <874lp4aije.fsf@HIDDEN> <83po7pwlgs.fsf@HIDDEN>
 <87lgib4z2o.fsf@HIDDEN>
 <87wp1rcz21.fsf@HIDDEN>
 <87mv2jkaap.fsf@HIDDEN>
 <87wp1nsk52.fsf@HIDDEN>
 <87k1xjke54.fsf@HIDDEN>
Date: Mon, 18 Dec 2017 16:38:26 -0500
In-Reply-To: <87k1xjke54.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Mon, 18 Dec 2017 11:52:07 -0800")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.3 (/)
X-Debbugs-Envelope-To: 29220
Cc: jwiegley@HIDDEN, 29220 <at> debbugs.gnu.org,
 Noam Postavsky <npostavs@HIDDEN>,
 Pierre =?windows-1252?Q?T=E9choueyres?= <pierre.techoueyres@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.3 (/)

> My feeling is that we could just remove the addition of the quote
> character in `eieio-list-prin1'.

Maybe it's needed to distinguish the printed value of "a list that
starts with the symbol `my-class`" from "an object of class` my-class`"?


        Stefan




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 18 Dec 2017 19:54:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Dec 18 14:54:06 2017
Received: from localhost ([127.0.0.1]:40861 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eR1UE-00032N-Kv
	for submit <at> debbugs.gnu.org; Mon, 18 Dec 2017 14:54:06 -0500
Received: from mail.ericabrahamsen.net ([50.56.99.223]:60645)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1eR1UC-00032F-Or
 for 29220 <at> debbugs.gnu.org; Mon, 18 Dec 2017 14:54:05 -0500
Received: from localhost (96-89-141-238-static.hfc.comcastbusiness.net
 [96.89.141.238])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 06C7CC08C2;
 Mon, 18 Dec 2017 19:54:02 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mail.ericabrahamsen.net; s=mail; t=1513626843;
 bh=o+Xqh4Muf4HwJiubSa1biS2T9Q4d5DslBlZ/vFIBOBw=;
 h=From:To:Cc:Subject:References:Date:From;
 b=YpXXuYj1uLcR3oEd/sKgsLMb4nDPtfsSeLZqlVVkLEbhsxWrknfEr2QXcAYF3Af7T
 tvXVpavUM4m5EBgxeBmdumluS8RU6iwjFUL+71r4qhe08q5Pbn/U3IkeLpUgDbykrM
 gYpQzkznahQEYGQumLEoz7TdjoXHMy1cL0hn5/9Y=
From: Eric Abrahamsen <eric@HIDDEN>
To: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN>
 <874lp4aije.fsf@HIDDEN> <83po7pwlgs.fsf@HIDDEN>
 <87lgib4z2o.fsf@HIDDEN>
 <87wp1rcz21.fsf@HIDDEN>
 <87mv2jkaap.fsf@HIDDEN>
 <87wp1nsk52.fsf@HIDDEN>
Date: Mon, 18 Dec 2017 11:52:07 -0800
Message-ID: <87k1xjke54.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 29220
Cc: jwiegley@HIDDEN, 29220 <at> debbugs.gnu.org, monnier@HIDDEN,
 Noam Postavsky <npostavs@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)


On 12/15/17 23:26 PM, Pierre T=C3=A9choueyres wrote:
> Of course with the good example and patch this will be more obvious.

And there's another problem here, manifesting in the Gnus registry.
Here's the issue:

(setq test-hash (make-hash-table :test #'equal))

(puthash "<msg@id>" '((sender "me")) test-hash)
(gethash "<msg@id>" test-hash)

(let (eval-expression-print-length)
  (prin1 test-hash))

=3D> Data is correct: ("<msg@id>" ((sender "me")))

(let (eval-expression-print-length)
  (eieio-override-prin1 test-hash))

=3D> Data is incorrect: ("<msg@id>" (quote ((sender "me"))))

The basic problem is that the code is really only set up to do
single-layer reading/writing, and nesting the process runs into
difficulties.

Hash table values are re-written with:

(maphash
   (lambda (key val)
     (setf (gethash key copy)
	   (read
	    (with-output-to-string
	      (eieio-override-prin1 val)))))
   copy)

If VAL is a list, it ends up in `eieio-list-prin1', which wraps it in a
call to `quote'.

The read process looks for these calls to `quote' and removes them, but
it only does it for top-level slot values. If the data is inside
something else (hash table values, in this case), the `quote' calls
remain in the code.

I'd really like to simplify this whole process (it should just walk the
whole tree and convert objects, nothing else -- why write quotes only to
delete them on read?) but in the meantime, I hope we can get a minimum
viable fix in for 26.

My feeling is that we could just remove the addition of the quote
character in `eieio-list-prin1'. The eieio-persistent load process only
`read's, doesn't `eval', so in theory the quote is superfluous. The
check for its presence would stay in.

Any thoughts on this? Obviously I will test better than I have been...

Eric




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 16 Dec 2017 23:42:55 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 16 18:42:55 2017
Received: from localhost ([127.0.0.1]:37833 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eQM6X-0006yj-Bi
	for submit <at> debbugs.gnu.org; Sat, 16 Dec 2017 18:42:55 -0500
Received: from mail.ericabrahamsen.net ([50.56.99.223]:42411)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1eQM6V-0006yb-4p
 for 29220 <at> debbugs.gnu.org; Sat, 16 Dec 2017 18:42:51 -0500
Received: from localhost (71-212-75-109.tukw.qwest.net [71.212.75.109])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 872FDBBC94;
 Sat, 16 Dec 2017 23:42:49 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mail.ericabrahamsen.net; s=mail; t=1513467769;
 bh=sCaiAzyUn0SUcB48ee4Odyr6gtS42rD832R+fXVD4zA=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=eX8JoMnKLTkYKrfhsBi+xunTYq/98EBZIkO3aANsCbdwqngnJi+Ks3PkSP3RcnkMg
 v56oaS4zFvEsFdDCawK1GFSmSlztl3FFXS2ZDtHKu0jNiUZpuUPSK0++hsQkkDEVUF
 7wiF/ZsAyc5On8YIv67SmRWXNZ9AIjy6ThqKtwgk=
From: Eric Abrahamsen <eric@HIDDEN>
To: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN>
 <874lp4aije.fsf@HIDDEN> <83po7pwlgs.fsf@HIDDEN>
 <87lgib4z2o.fsf@HIDDEN>
 <87wp1rcz21.fsf@HIDDEN>
 <87mv2jkaap.fsf@HIDDEN>
 <87wp1nsk52.fsf@HIDDEN>
Date: Sat, 16 Dec 2017 15:42:48 -0800
In-Reply-To: <87wp1nsk52.fsf@HIDDEN> ("Pierre
 =?utf-8?Q?T=C3=A9choueyres=22's?= message of "Fri, 15 Dec 2017 23:26:17
 +0100")
Message-ID: <87y3m2jl3b.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 29220
Cc: jwiegley@HIDDEN, 29220 <at> debbugs.gnu.org, monnier@HIDDEN,
 Noam Postavsky <npostavs@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable


On 12/15/17 23:26 PM, Pierre T=C3=A9choueyres wrote:
> Of course with the good example and patch this will be more obvious.

Oh bother, this is my fault, in c59ddb2120. The attached diff fixes
this, and I guess should be put in.

In #29541 I was hoping to reduce some of this complexity and make the
code easier to reason about, but those changes would go into master, and
this needs to be fixed in 26.

More tests are definitely in order!


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment; filename=quickfix.diff

diff --git a/lisp/emacs-lisp/eieio-base.el b/lisp/emacs-lisp/eieio-base.el
index 0241f27395..a37cf7a1b3 100644
--- a/lisp/emacs-lisp/eieio-base.el
+++ b/lisp/emacs-lisp/eieio-base.el
@@ -349,7 +349,7 @@ eieio-persistent-validate/fix-slot-value
                        (seq-some
                         (lambda (elt)
                           (child-of-class-p (car proposed-value) elt))
-                        classtype))
+                        (if (consp classtype) classtype (list classtype))))
 		  (eieio-persistent-convert-list-to-object
 		   proposed-value))
 		 (t

--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 15 Dec 2017 22:26:26 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 15 17:26:26 2017
Received: from localhost ([127.0.0.1]:36207 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ePyR0-0003hs-1k
	for submit <at> debbugs.gnu.org; Fri, 15 Dec 2017 17:26:26 -0500
Received: from smtp4-g21.free.fr ([212.27.42.4]:17318)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pierre.techoueyres@HIDDEN>) id 1ePyQy-0003hi-5S
 for 29220 <at> debbugs.gnu.org; Fri, 15 Dec 2017 17:26:24 -0500
Received: from killashandra.ballybran.fr.free.fr (unknown
 [IPv6:2a01:e35:2e14:eab0:b51f:3dc7:7e03:942])
 by smtp4-g21.free.fr (Postfix) with ESMTPS id 68F0719F553;
 Fri, 15 Dec 2017 23:26:17 +0100 (CET)
From: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
To: Noam Postavsky <npostavs@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN>
 <874lp4aije.fsf@HIDDEN> <83po7pwlgs.fsf@HIDDEN>
 <87lgib4z2o.fsf@HIDDEN>
 <87wp1rcz21.fsf@HIDDEN>
 <87mv2jkaap.fsf@HIDDEN>
Date: Fri, 15 Dec 2017 23:26:17 +0100
In-Reply-To: <87mv2jkaap.fsf@HIDDEN> ("Pierre
 \=\?utf-8\?Q\?T\=C3\=A9choueyres\=22's\?\= message of "Fri,
 15 Dec 2017 21:26:06 +0100")
Message-ID: <87wp1nsk52.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 29220
Cc: Eric Abrahamsen <eric@HIDDEN>, jwiegley@HIDDEN,
 29220 <at> debbugs.gnu.org, monnier@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

--=-=-=
Content-Type: text/plain


Of course with the good example and patch this will be more obvious.


--=-=-=
Content-Type: text/plain
Content-Disposition: attachment; filename=eieio-fail-1.el
Content-Description: Simple tests eieio-persistent class

;;; -*- lexical-binding: t -*-
(require 'eieio)
(require 'eieio-base)

(defclass person ()
  ((name :type string :initarg :name)))

(defclass classy (eieio-persistent)
  ((teacher
    :type person
    :initarg :teacher)
   (students
    :initarg :students :initform (make-hash-table :test 'equal))))

(let* ((jane (make-instance 'person :name "Jane"))
       (bob  (make-instance 'person :name "Bob"))
       (class (make-instance 'classy
			     :teacher jane
			     :file (concat "classy-" emacs-version ".eieio"))))
  (puthash "Bob" bob (slot-value class 'students))
  (eieio-persistent-save class (concat "classy-" emacs-version ".eieio"))
  (eieio-persistent-read (concat "classy-" emacs-version ".eieio") 'classy t))

--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment;
 filename=0001-Add-test-for-eieio-persistence-checks.patch
Content-Description: Tests for eieio-persistent class

From 26341ec498e4ffdea1a3c8173c3831c01a745bb9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pierre=20T=C3=A9choueyres?= <pierre.techoueyres@HIDDEN>
Date: Fri, 15 Dec 2017 21:42:21 +0100
Subject: [PATCH] Add test for eieio persistence checks

* test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el:
(hash-equal): New comparaison test for hash-tables.
(persist-test-save-and-compare): specialize test for hash-tables.
(eieio-test-persist-hash-and-objects): New test.
---
 .../emacs-lisp/eieio-tests/eieio-test-persist.el   | 58 +++++++++++++++++++---
 1 file changed, 50 insertions(+), 8 deletions(-)

diff --git a/test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el b/test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el
index 738711c9c8..cfc51e42a2 100644
--- a/test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el
+++ b/test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el
@@ -1,4 +1,4 @@
-;;; eieio-persist.el --- Tests for eieio-persistent class
+;;; eieio-test-persist.el --- Tests for eieio-persistent class
 
 ;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
@@ -40,6 +40,17 @@ eieio--attribute-to-initarg
 	(car tuple)
       nil)))
 
+(defun hash-equal (hash1 hash2)
+  "Compare two hash tables to see whether they are equal."
+  (and (= (hash-table-count hash1)
+          (hash-table-count hash2))
+       (catch 'flag
+         (maphash (lambda (x y)
+                    (or (equal (gethash x hash2) y)
+                        (throw 'flag nil)))
+                  hash1)
+         (throw 'flag t))))
+
 (defun persist-test-save-and-compare (original)
   "Compare the object ORIGINAL against the one read fromdisk."
 
@@ -49,8 +60,8 @@ persist-test-save-and-compare
 	 (class (eieio-object-class original))
 	 (fromdisk (eieio-persistent-read file class))
 	 (cv (cl--find-class class))
-	 (slots  (eieio--class-slots cv))
-	 )
+	 (slots  (eieio--class-slots cv)))
+
     (unless (object-of-class-p fromdisk class)
       (error "Persistent class %S != original class %S"
 	     (eieio-object-class fromdisk)
@@ -62,17 +73,24 @@ persist-test-save-and-compare
 	     (origvalue (eieio-oref original oneslot))
 	     (fromdiskvalue (eieio-oref fromdisk oneslot))
 	     (initarg-p (eieio--attribute-to-initarg
-                         (cl--find-class class) oneslot))
-	     )
+                         (cl--find-class class) oneslot)))
 
 	(if initarg-p
-	    (unless (equal origvalue fromdiskvalue)
+	    (unless
+		(cond ((and (hash-table-p origvalue) (hash-table-p fromdiskvalue))
+		       (hash-equal origvalue fromdiskvalue))
+		      (t (equal origvalue fromdiskvalue)))
 	      (error "Slot %S Original Val %S != Persistent Val %S"
 		     oneslot origvalue fromdiskvalue))
 	  ;; Else !initarg-p
-	  (unless (equal (cl--slot-descriptor-initform slot) fromdiskvalue)
+	  (let ((origval (cl--slot-descriptor-initform slot))
+		(diskval fromdiskvalue))
+	    (unless
+		(cond ((and (hash-table-p origval) (hash-table-p diskval))
+		       (hash-equal origval diskval))
+		      (t (equal origval diskval)))
 	    (error "Slot %S Persistent Val %S != Default Value %S"
-		   oneslot fromdiskvalue (cl--slot-descriptor-initform slot))))
+		   oneslot diskval origvalue))))
 	))))
 
 ;;; Simple Case
@@ -238,4 +256,28 @@ persistent-with-objs-list-slot
     (persist-test-save-and-compare persist-wols)
     (delete-file (oref persist-wols file))))
 
+(defclass person ()
+  ((name :type string :initarg :name)))
+
+(defclass classy (eieio-persistent)
+  ((teacher
+    :type person
+    :initarg :teacher)
+   (students
+    :initarg :students :initform (make-hash-table :test 'equal))))
+
+;;; Slot with a hash-table another with an non persistent Object
+;;
+;; see bug#29220
+(ert-deftest eieio-test-persist-hash-and-objects ()
+  (let* ((jane (make-instance 'person :name "Jane"))
+         (bob  (make-instance 'person :name "Bob"))
+         (class (make-instance 'classy
+			       :teacher jane
+			       :file (concat default-directory "classy-" emacs-version ".eieio"))))
+    (puthash "Bob" bob (slot-value class 'students))
+    (persist-test-save-and-compare class)
+    (delete-file (oref class file))))
+
+
 ;;; eieio-test-persist.el ends here
-- 
2.14.3


--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 15 Dec 2017 20:26:22 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 15 15:26:22 2017
Received: from localhost ([127.0.0.1]:36135 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ePwYh-0007Xl-Cq
	for submit <at> debbugs.gnu.org; Fri, 15 Dec 2017 15:26:22 -0500
Received: from smtp4-g21.free.fr ([212.27.42.4]:25686)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pierre.techoueyres@HIDDEN>) id 1ePwYf-0007Xa-Ed
 for 29220 <at> debbugs.gnu.org; Fri, 15 Dec 2017 15:26:14 -0500
Received: from killashandra.ballybran.fr.free.fr (unknown
 [IPv6:2a01:e35:2e14:eab0:b51f:3dc7:7e03:942])
 by smtp4-g21.free.fr (Postfix) with ESMTPS id E039E19F5BA;
 Fri, 15 Dec 2017 21:26:06 +0100 (CET)
From: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
To: Noam Postavsky <npostavs@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN>
 <874lp4aije.fsf@HIDDEN> <83po7pwlgs.fsf@HIDDEN>
 <87lgib4z2o.fsf@HIDDEN>
 <87wp1rcz21.fsf@HIDDEN>
Date: Fri, 15 Dec 2017 21:26:06 +0100
In-Reply-To: <87wp1rcz21.fsf@HIDDEN> (Noam Postavsky's message
 of "Tue, 12 Dec 2017 18:21:42 -0500")
Message-ID: <87mv2jkaap.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (gnu/linux)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 29220
Cc: Eric Abrahamsen <eric@HIDDEN>, jwiegley@HIDDEN,
 29220 <at> debbugs.gnu.org, monnier@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.0 (/)

--=-=-=
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

Noam Postavsky <npostavs@HIDDEN> writes:

> tags 29220 fixed
> close 29220 26.1
> quit
> [...]
>
> Closing.
>
Sorry but I not certain everything is working as expected.

I'm trying to add another test to the eieio part
(test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el) but when I did
try the simple receipt which Eric had posted some times ago I end in the
debugger.

#+BEGIN_SRC debugger
Debugger entered--Lisp error: (wrong-type-argument sequencep person)
  mapc(#f(compiled-function (elt) #<bytecode 0x237e645>) person)
  seq-do(#f(compiled-function (elt) #<bytecode 0x237e645>) person)
  seq-some(#f(compiled-function (elt) #<bytecode 0x237e299>) person)
  eieio-persistent-validate/fix-slot-value(#s(eieio--class :name classy :do=
cstring nil :parents (#s(eieio--class :name eieio-persistent :docstring "Th=
is special class enables persistence through save files\nUse the `object-sa=
ve' method to write this object to disk.  The save\nformat is Emacs Lisp co=
de which calls the constructor for the saved\nobject.  For this reason, onl=
y slots which do not have an `:initarg'\nspecified will not be saved." :par=
ents nil :slots [#s(cl-slot-descriptor :name file :initform unbound :type s=
tring :props ((:documentation . "The save file for this persistent object.\=
nThis must be a string, and must be specified when the new object is\ninsta=
ntiated.")))] :index-table #<hash-table eq 1/65 0x129c671> :children (class=
y pcache-repository) :initarg-tuples ((:file . file)) :class-slots [#s(cl-s=
lot-descriptor :name do-backups :initform t :type boolean :props ((:documen=
tation . "Saving this object should make backup files.\nSetting to nil will=
 mean no backups are made."))) #s(cl-slot-descriptor :name file-header-line=
 :initform ";; EIEIO PERSISTENT OBJECT" :type string :props ((:documentatio=
n . "Header line for the save file.\nThis is used with the `object-write' m=
ethod."))) #s(cl-slot-descriptor :name extension :initform ".eieio" :type s=
tring :props ((:documentation . "Extension of files saved by this object.\n=
Enables auto-choosing nice file names based on name.")))] :class-allocation=
-values [t ";; EIEIO PERSISTENT OBJECT" ".eieio"] :default-object-cache #<e=
ieio-persistent eieio-persistent> :options (:custom-groups nil :documentati=
on "This special class enables persistence through save files\nUse the `obj=
ect-save' method to write this object to disk.  The save\nformat is Emacs L=
isp code which calls the constructor for the saved\nobject.  For this reaso=
n, only slots which do not have an `:initarg'\nspecified will not be saved.=
" :abstract t))) :slots [#s(cl-slot-descriptor :name file :initform unbound=
 :type string :props ((:documentation . "The save file for this persistent =
object.\nThis must be a string, and must be specified when the new object i=
s\ninstantiated."))) #s(cl-slot-descriptor :name teacher :initform unbound =
:type person :props nil) #s(cl-slot-descriptor :name students :initform (ma=
ke-hash-table) :type t :props nil)] :index-table #<hash-table eq 3/65 0x14d=
45a5> :children nil :initarg-tuples ((:file . file) (:teacher . teacher) (:=
students . students)) :class-slots [#s(cl-slot-descriptor :name extension :=
initform ".eieio" :type string :props ((:documentation . "Extension of file=
s saved by this object.\nEnables auto-choosing nice file names based on nam=
e."))) #s(cl-slot-descriptor :name file-header-line :initform ";; EIEIO PER=
SISTENT OBJECT" :type string :props ((:documentation . "Header line for the=
 save file.\nThis is used with the `object-write' method."))) #s(cl-slot-de=
scriptor :name do-backups :initform t :type boolean :props ((:documentation=
 . "Saving this object should make backup files.\nSetting to nil will mean =
no backups are made.")))] :class-allocation-values [".eieio" ";; EIEIO PERS=
ISTENT OBJECT" t] :default-object-cache #<classy classy> :options (:custom-=
groups nil)) teacher (person "person" :name "Jane"))
  eieio-persistent-convert-list-to-object((classy "classy" :file "classy-26=
.0.90.eieio" :teacher (person "person" :name "Jane") :students #<hash-table=
 eql 1/65 0x237e271>))
  eieio-persistent-read("classy-26.0.90.eieio" classy t)
  (let* ((jane (make-instance 'person :name "Jane")) (bob (make-instance 'p=
erson :name "Bob")) (class (make-instance 'classy :teacher jane :file (conc=
at "classy-" emacs-version ".eieio")))) (puthash "Bob" bob (slot-value clas=
s 'students)) (eieio-persistent-save class (concat "classy-" emacs-version =
".eieio")) (eieio-persistent-read (concat "classy-" emacs-version ".eieio")=
 'classy t))
  (progn (let* ((jane (make-instance 'person :name "Jane")) (bob (make-inst=
ance 'person :name "Bob")) (class (make-instance 'classy :teacher jane :fil=
e (concat "classy-" emacs-version ".eieio")))) (puthash "Bob" bob (slot-val=
ue class 'students)) (eieio-persistent-save class (concat "classy-" emacs-v=
ersion ".eieio")) (eieio-persistent-read (concat "classy-" emacs-version ".=
eieio") 'classy t)))
  eval((progn (let* ((jane (make-instance 'person :name "Jane")) (bob (make=
-instance 'person :name "Bob")) (class (make-instance 'classy :teacher jane=
 :file (concat "classy-" emacs-version ".eieio")))) (puthash "Bob" bob (slo=
t-value class 'students)) (eieio-persistent-save class (concat "classy-" em=
acs-version ".eieio")) (eieio-persistent-read (concat "classy-" emacs-versi=
on ".eieio") 'classy t))) t)
  elisp--eval-last-sexp(nil)
  eval-last-sexp(nil)
  funcall-interactively(eval-last-sexp nil)
  call-interactively(eval-last-sexp nil nil)
  command-execute(eval-last-sexp)
#+END_SRC


--=-=-=
Content-Type: text/plain
Content-Disposition: inline; filename=eieio-fail-1.el
Content-Description: simple eieio persistence test

;;; -*- lexical-binding: t -*-
(require 'eieio)
(require 'eieio-base)

(defclass person ()
  ((name :type string :initarg :name)))

(defclass classy (eieio-persistent)
  ((teacher
    :type person
    :initarg :teacher)
   (students
    :initarg :students :initform (make-hash-table))))

(let* ((jane (make-instance 'person :name "Jane"))
       (bob  (make-instance 'person :name "Bob"))
       (class (make-instance 'classy
			     :teacher jane
			     :file (concat "classy-" emacs-version ".eieio"))))
  (puthash "Bob" bob (slot-value class 'students))
  (eieio-persistent-save class (concat "classy-" emacs-version ".eieio"))
  (eieio-persistent-read (concat "classy-" emacs-version ".eieio") 'classy t))

--=-=-=
Content-Type: text/plain
Content-Disposition: inline; filename=eieio-test-persist.el
Content-Description: Tests for eieio-persistent class

;;; eieio-test-persist.el --- Tests for eieio-persistent class

;; Copyright (C) 2011-2017 Free Software Foundation, Inc.

;; Author: Eric M. Ludlam <eric@HIDDEN>

;; This file is part of GNU Emacs.

;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.

;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.

;;; Commentary:
;;
;; The eieio-persistent base-class provides a vital service, that
;; could be used to accidentally load in malicious code.  As such,
;; something as simple as calling eval on the generated code can't be
;; used.  These tests exercises various flavors of data that might be
;; in a persistent object, and tries to save/load them.

;;; Code:
(require 'eieio)
(require 'eieio-base)
(require 'ert)

(defun eieio--attribute-to-initarg (class attribute)
  "In CLASS, convert the ATTRIBUTE into the corresponding init argument tag.
This is usually a symbol that starts with `:'."
  (let ((tuple (rassoc attribute (eieio--class-initarg-tuples class))))
    (if tuple
	(car tuple)
      nil)))

(defun hash-equal (hash1 hash2)
  "Compare two hash tables to see whether they are equal."
  (and (= (hash-table-count hash1)
          (hash-table-count hash2))
       (catch 'flag (maphash (lambda (x y)
                               (or (equal (gethash x hash2) y)
                                   (throw 'flag nil)))
                             hash1)
              (throw 'flag t))))

(defun persist-test-save-and-compare (original)
  "Compare the object ORIGINAL against the one read fromdisk."

  (eieio-persistent-save original)

  (let* ((file (oref original file))
	 (class (eieio-object-class original))
	 (fromdisk (eieio-persistent-read file class))
	 (cv (cl--find-class class))
	 (slots  (eieio--class-slots cv)))

    (unless (object-of-class-p fromdisk class)
      (error "Persistent class %S != original class %S"
	     (eieio-object-class fromdisk)
	     class))

    (dotimes (i (length slots))
      (let* ((slot (aref slots i))
             (oneslot (cl--slot-descriptor-name slot))
	     (origvalue (eieio-oref original oneslot))
	     (fromdiskvalue (eieio-oref fromdisk oneslot))
	     (initarg-p (eieio--attribute-to-initarg
                         (cl--find-class class) oneslot)))

	(if initarg-p
	    (unless
		(cond ((and (hash-table-p origvalue) (hash-table-p fromdiskvalue))
		       (hash-equal origvalue fromdiskvalue))
		      (t (equal origvalue fromdiskvalue)))
	      (error "Slot %S Original Val %S != Persistent Val %S"
		     oneslot origvalue fromdiskvalue))
	  ;; Else !initarg-p
	  (let ((origval (cl--slot-descriptor-initform slot))
		(diskval fromdiskvalue))
	    (unless
		(cond ((and (hash-table-p origval) (hash-table-p diskval))
		       (hash-equal origval diskval))
		      (t (equal origval diskval)))
	    (error "Slot %S Persistent Val %S != Default Value %S"
		   oneslot diskval origvalue))))
	))))

;;; Simple Case
;;
;; Simplest case is a mix of slots with and without initargs.

(defclass persist-simple (eieio-persistent)
  ((slot1 :initarg :slot1
	  :type symbol
	  :initform moose)
   (slot2 :initarg :slot2
	  :initform "foo")
   (slot3 :initform 2))
  "A Persistent object with two initializable slots, and one not.")

(ert-deftest eieio-test-persist-simple-1 ()
  (let ((persist-simple-1
	 (persist-simple "simple 1" :slot1 'goose :slot2 "testing"
			 :file (concat default-directory "test-ps1.pt"))))
    (should persist-simple-1)

    ;; When the slot w/out an initarg has not been changed
    (persist-test-save-and-compare persist-simple-1)

    ;; When the slot w/out an initarg HAS been changed
    (oset persist-simple-1 slot3 3)
    (persist-test-save-and-compare persist-simple-1)
    (delete-file (oref persist-simple-1 file))))

;;; Slot Writers
;;
;; Replica of the test in eieio-tests.el -

(defclass persist-:printer (eieio-persistent)
  ((slot1 :initarg :slot1
	  :initform 'moose
	  :printer PO-slot1-printer)
   (slot2 :initarg :slot2
	  :initform "foo"))
  "A Persistent object with two initializable slots.")

(defun PO-slot1-printer (slotvalue)
  "Print the slot value SLOTVALUE to stdout.
Assume SLOTVALUE is a symbol of some sort."
  (princ "'")
  (princ (symbol-name slotvalue))
  (princ " ;; RAN PRINTER")
  nil)

(ert-deftest eieio-test-persist-printer ()
  (let ((persist-:printer-1
	 (persist-:printer "persist" :slot1 'goose :slot2 "testing"
			   :file (concat default-directory "test-ps2.pt"))))
    (should persist-:printer-1)
    (persist-test-save-and-compare persist-:printer-1)

    (let* ((find-file-hook nil)
	   (tbuff (find-file-noselect "test-ps2.pt"))
	   )
      (condition-case nil
	  (unwind-protect
	      (with-current-buffer tbuff
		(goto-char (point-min))
		(re-search-forward "RAN PRINTER"))
	    (kill-buffer tbuff))
	(error "persist-:printer-1's Slot1 printer function didn't work.")))
    (delete-file (oref persist-:printer-1 file))))

;;; Slot with Object
;;
;; A slot that contains another object that isn't persistent
(defclass persist-not-persistent ()
  ((slot1 :initarg :slot1
	  :initform 1)
   (slot2 :initform 2))
  "Class for testing persistent saving of an object that isn't
persistent.  This class is instead used as a slot value in a
persistent class.")

(defclass persistent-with-objs-slot (eieio-persistent)
  ((pnp :initarg :pnp
	:type (or null persist-not-persistent)
	:initform nil))
  "Class for testing the saving of slots with objects in them.")

(ert-deftest eieio-test-non-persistent-as-slot ()
  (let ((persist-wos
	 (persistent-with-objs-slot
	  "persist wos 1"
	  :pnp (persist-not-persistent "pnp 1" :slot1 3)
	  :file (concat default-directory "test-ps3.pt"))))

    (persist-test-save-and-compare persist-wos)
    (delete-file (oref persist-wos file))))

;;; Slot with Object child of :type
;;
;; A slot that contains another object that isn't persistent
(defclass persist-not-persistent-subclass (persist-not-persistent)
  ((slot3 :initarg :slot1
	  :initform 1)
   (slot4 :initform 2))
  "Class for testing persistent saving of an object subclass that isn't
persistent.  This class is instead used as a slot value in a
persistent class.")

(defclass persistent-with-objs-slot-subs (eieio-persistent)
  ((pnp :initarg :pnp
	:type (or null persist-not-persistent)
	:initform nil))
  "Class for testing the saving of slots with objects in them.")

(ert-deftest eieio-test-non-persistent-as-slot-child ()
  (let ((persist-woss
	 (persistent-with-objs-slot-subs
	  "persist woss 1"
	  :pnp (persist-not-persistent-subclass "pnps 1" :slot1 3)
	  :file (concat default-directory "test-ps4.pt"))))

    (persist-test-save-and-compare persist-woss)
    (delete-file (oref persist-woss file))))

;; A slot that can contain one of two different classes, to exercise
;; the `or' slot type.

(defclass persistent-random-class ()
  ())

(defclass persistent-multiclass-slot (eieio-persistent)
  ((slot1 :initarg :slot1
          :type (or persistent-random-class null persist-not-persistent))
   (slot2 :initarg :slot2
          :type (or persist-not-persistent persist-random-class null))))

(ert-deftest eieio-test-multiple-class-slot ()
  (let ((persist
         (persistent-multiclass-slot "random string"
          :slot1 (persistent-random-class)
          :slot2 (persist-not-persistent)
          :file (concat default-directory "test-ps5.pt"))))
    (unwind-protect
        (persist-test-save-and-compare persist)
     (ignore-errors (delete-file (oref persist file))))))

;;; Slot with a list of Objects
;;
;; A slot that contains another object that isn't persistent
(defclass persistent-with-objs-list-slot (eieio-persistent)
  ((pnp :initarg :pnp
	:type (list-of persist-not-persistent)
	:initform nil))
  "Class for testing the saving of slots with objects in them.")

(ert-deftest eieio-test-slot-with-list-of-objects ()
  (let ((persist-wols
	 (persistent-with-objs-list-slot
	  "persist wols 1"
	  :pnp (list (persist-not-persistent "pnp 1" :slot1 3)
		     (persist-not-persistent "pnp 2" :slot1 4)
		     (persist-not-persistent "pnp 3" :slot1 5))
	  :file (concat default-directory "test-ps5.pt"))))

    (persist-test-save-and-compare persist-wols)
    (delete-file (oref persist-wols file))))

(defclass person ()
  ((name :type string :initarg :name)))

(defclass classy (eieio-persistent)
  ((teacher
    :type person
    :initarg :teacher)
   (students
    :initarg :students :initform (make-hash-table))))

(ert-deftest eieio-test-persist-hash-and-objects ()
  (let* ((jane (make-instance 'person :name "Jane"))
         (bob  (make-instance 'person :name "Bob"))
         (class (make-instance 'classy
			       :teacher jane
			       :file (concat default-directory "classy-" emacs-version ".eieio"))))
    (puthash "Bob" bob (slot-value class 'students))
    (persist-test-save-and-compare class)
    (delete-file (oref class file))))


;;; eieio-test-persist.el ends here

--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.
bug marked as fixed in version 26.1, send any further explanations to 29220 <at> debbugs.gnu.org and pierre.techoueyres@HIDDEN (Pierre Téchoueyres) Request was from Noam Postavsky <npostavs@HIDDEN> to control <at> debbugs.gnu.org. Full text available.
Added tag(s) fixed. Request was from Noam Postavsky <npostavs@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 12 Dec 2017 23:21:55 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 12 18:21:55 2017
Received: from localhost ([127.0.0.1]:59054 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eOts1-0000H8-VW
	for submit <at> debbugs.gnu.org; Tue, 12 Dec 2017 18:21:54 -0500
Received: from mail-it0-f41.google.com ([209.85.214.41]:41021)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <npostavs@HIDDEN>)
 id 1eOtrz-0000Gm-Iv; Tue, 12 Dec 2017 18:21:52 -0500
Received: by mail-it0-f41.google.com with SMTP id x28so1737974ita.0;
 Tue, 12 Dec 2017 15:21:51 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=sender:from:to:cc:subject:references:date:in-reply-to:message-id
 :user-agent:mime-version;
 bh=NPS06/LErbxv5kSD5+OXr2snBeU3o7+LhQzsRme2A5Q=;
 b=n4fzmZ1Tdaz6zfu/1oBi5XazbYJ1ZHYclIWuALJUtX6lZEV8+yh1+AHEj8YzHYueQd
 9kkVgbinkzflAjJ/UK3PpbOPiol4FQH87B3ZrZQB6iD+mKMYDwMoBLkCz4RYiynKV8cp
 XL9yAJ086v+PNURczdKj5+8wYyhKus/zkTU4smYg+qrzDZnAzgXBmyCI7k4EM2SfdHvn
 ePJCT4OpxVIn99/PXosFCdIXIL6vr/PALD8xPs9dUvwJnEiY+W9n6ojdQOhYzhJL4Lep
 dejCDEt5amOpLxjb0vy3G/sfcjU0fB86/fC3T+DqaE9byo3CImJwpqVZLn+H44pvo/wZ
 NXoQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:sender:from:to:cc:subject:references:date
 :in-reply-to:message-id:user-agent:mime-version;
 bh=NPS06/LErbxv5kSD5+OXr2snBeU3o7+LhQzsRme2A5Q=;
 b=N8AxZXGyEuptQTpTZWBmZ6iJ9cMpdbziyNYmO72llG65LC8cj/UJ3EjbEbpwerLDWq
 rHY/VrveJ1TET9yv3P1cLFAc4EIZciNSKO40Mp1Es/5xUWmuxUdeFRJ3yoSqbsyV056W
 zbxRaL59duK3xxf9wKoEaMIWepXP8NuG1/sPuEu/lmCrzXNfjLceLW7NWUUX/5cFPAZL
 oLdqhHhjzKAGDSUmhHvYf3iXlDQ2OfWxpGo1L9obwblWkhxA2ZNSTYsfSKSXhNva+d4H
 4Fkbm2U5oFksZdhsmmxxjwOu90RRToWXImcfw97w45/cejGMlW0Gz+Vaj7EpyBNguxWf
 OzKQ==
X-Gm-Message-State: AKGB3mKVXIDRCp18oU9t2axG0AbIqbl696KajvjUBFZqyfeh4qCXs0PG
 4vWtuaIB8C1PEolSfWsn1X/iRg==
X-Google-Smtp-Source: ACJfBovXo8YoB2xYZ9baMNsiaMCyZOtST9EBFQh0QVhBZ7V2y438ywzgRIpEt+E1/S9wrgMlYmd87g==
X-Received: by 10.36.77.143 with SMTP id l137mr639590itb.50.1513120905698;
 Tue, 12 Dec 2017 15:21:45 -0800 (PST)
Received: from zebian ([45.2.119.34])
 by smtp.googlemail.com with ESMTPSA id 139sm5945753itm.2.2017.12.12.15.21.43
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Tue, 12 Dec 2017 15:21:44 -0800 (PST)
From: Noam Postavsky <npostavs@HIDDEN>
To: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN> <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN>
 <874lp4aije.fsf@HIDDEN> <83po7pwlgs.fsf@HIDDEN>
 <87lgib4z2o.fsf@HIDDEN>
Date: Tue, 12 Dec 2017 18:21:42 -0500
In-Reply-To: <87lgib4z2o.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Sat, 09 Dec 2017 08:59:27 -0800")
Message-ID: <87wp1rcz21.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 29220
Cc: jwiegley@HIDDEN, Eli Zaretskii <eliz@HIDDEN>,
 pierre.techoueyres@HIDDEN, 29220 <at> debbugs.gnu.org, monnier@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.5 (/)

tags 29220 fixed
close 29220 26.1
quit

Eric Abrahamsen <eric@HIDDEN> writes:

>> Fine with me to put this on emacs-26.
>
> Thanks -- done.

Closing.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 9 Dec 2017 16:59:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 09 11:59:32 2017
Received: from localhost ([127.0.0.1]:54042 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eNiTM-0004bz-27
	for submit <at> debbugs.gnu.org; Sat, 09 Dec 2017 11:59:32 -0500
Received: from mail.ericabrahamsen.net ([50.56.99.223]:36382)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1eNiTK-0004bs-SY
 for 29220 <at> debbugs.gnu.org; Sat, 09 Dec 2017 11:59:31 -0500
Received: from localhost (71-212-75-109.tukw.qwest.net [71.212.75.109])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 09E1DC0835;
 Sat,  9 Dec 2017 16:59:28 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mail.ericabrahamsen.net; s=mail; t=1512838769;
 bh=vjsGEgJ/zsTO+ONG/FSHFCUhf6/1tCsAdOAExy4MG1g=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=GYfizj6SQb7P/YyMnb9r/G0oSEm1pmfva/j7IAyl3Jep3EIChrGZKEDluoy4/R9JI
 U4Drog/WiSXWYUENE7BS9UvEHtGNIDiDpgqnGmJcbQ5EQkvkiHDylOfXHgJ1NCSLyh
 g5mPJ7Y95K/WyaxwAsxSG/1Mlci1FqM9UqJgOhQM=
From: Eric Abrahamsen <eric@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN>
 <874lp4aije.fsf@HIDDEN> <83po7pwlgs.fsf@HIDDEN>
Date: Sat, 09 Dec 2017 08:59:27 -0800
In-Reply-To: <83po7pwlgs.fsf@HIDDEN> (Eli Zaretskii's message of "Fri, 08 Dec
 2017 12:41:23 +0200")
Message-ID: <87lgib4z2o.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 29220
Cc: jwiegley@HIDDEN, 29220 <at> debbugs.gnu.org, npostavs@HIDDEN,
 monnier@HIDDEN, pierre.techoueyres@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)


On 12/08/17 12:41 PM, Eli Zaretskii wrote:
>> From: Eric Abrahamsen <eric@HIDDEN>
>> Cc: pierre.techoueyres@HIDDEN (Pierre T=C3=A9choueyres),
>>   29220 <at> debbugs.gnu.org,  Noam Postavsky <npostavs@HIDDEN=
>,
>>  John Wiegley <jwiegley@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
>> Date: Tue, 05 Dec 2017 14:58:45 -0800
>>=20
>> > I think so, but we're pretty late in the pretest, so better ask Eli&Jo=
hn
>> > if they think it's OK for emacs-26.
>>=20
>> Okay: John and Eli, this patch is to handle changes in object
>> implementation in Emacs 26: they are now implemented with records, which
>> can't be round-tripped with prin1 and read, they have to be written and
>> read specially. The eieio-persistent mechanism handles that, but
>> previously did not look inside hash tables or vectors to see if there
>> were objects in there.
>>=20
>> That's causing failure in the pcache library, which other libraries
>> depend on. I'm hoping we can sneak this in under the wire so that pcache
>> doesn't fail in Emacs 26.
>
> Fine with me to put this on emacs-26.

Thanks -- done.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 8 Dec 2017 10:42:19 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 08 05:42:19 2017
Received: from localhost ([127.0.0.1]:51403 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eNG6l-0001KB-At
	for submit <at> debbugs.gnu.org; Fri, 08 Dec 2017 05:42:19 -0500
Received: from eggs.gnu.org ([208.118.235.92]:52005)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1eNG6j-0001Jw-KW
 for 29220 <at> debbugs.gnu.org; Fri, 08 Dec 2017 05:42:17 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <eliz@HIDDEN>) id 1eNG6Z-0000W5-Q6
 for 29220 <at> debbugs.gnu.org; Fri, 08 Dec 2017 05:42:12 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20,T_RP_MATCHES_RCVD,
 URIBL_BLOCKED autolearn=disabled version=3.3.2
Received: from fencepost.gnu.org ([2001:4830:134:3::e]:56301)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>)
 id 1eNG6D-0000G4-8o; Fri, 08 Dec 2017 05:41:45 -0500
Received: from [176.228.60.248] (port=2756 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1eNG6C-0006iN-OR; Fri, 08 Dec 2017 05:41:45 -0500
Date: Fri, 08 Dec 2017 12:41:23 +0200
Message-Id: <83po7pwlgs.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Eric Abrahamsen <eric@HIDDEN>
In-reply-to: <874lp4aije.fsf@HIDDEN> (message from Eric Abrahamsen
 on Tue, 05 Dec 2017 14:58:45 -0800)
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN>
 <874lp4aije.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Received-From: 2001:4830:134:3::e
X-Spam-Score: -5.0 (-----)
X-Debbugs-Envelope-To: 29220
Cc: jwiegley@HIDDEN, 29220 <at> debbugs.gnu.org, npostavs@HIDDEN,
 monnier@HIDDEN, pierre.techoueyres@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Reply-To: Eli Zaretskii <eliz@HIDDEN>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -5.0 (-----)

> From: Eric Abrahamsen <eric@HIDDEN>
> Cc: pierre.techoueyres@HIDDEN (Pierre Téchoueyres),
>   29220 <at> debbugs.gnu.org,  Noam Postavsky <npostavs@HIDDEN>,
>  John Wiegley <jwiegley@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
> Date: Tue, 05 Dec 2017 14:58:45 -0800
> 
> > I think so, but we're pretty late in the pretest, so better ask Eli&John
> > if they think it's OK for emacs-26.
> 
> Okay: John and Eli, this patch is to handle changes in object
> implementation in Emacs 26: they are now implemented with records, which
> can't be round-tripped with prin1 and read, they have to be written and
> read specially. The eieio-persistent mechanism handles that, but
> previously did not look inside hash tables or vectors to see if there
> were objects in there.
> 
> That's causing failure in the pcache library, which other libraries
> depend on. I'm hoping we can sneak this in under the wire so that pcache
> doesn't fail in Emacs 26.

Fine with me to put this on emacs-26.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 5 Dec 2017 23:00:42 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 05 18:00:42 2017
Received: from localhost ([127.0.0.1]:48205 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eMMCe-0008H9-H1
	for submit <at> debbugs.gnu.org; Tue, 05 Dec 2017 18:00:42 -0500
Received: from mail.ericabrahamsen.net ([50.56.99.223]:34719)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1eMMCc-0008H1-Fz
 for 29220 <at> debbugs.gnu.org; Tue, 05 Dec 2017 18:00:39 -0500
Received: from localhost (71-212-75-109.tukw.qwest.net [71.212.75.109])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 5A94DC07C4;
 Tue,  5 Dec 2017 23:00:37 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mail.ericabrahamsen.net; s=mail; t=1512514837;
 bh=Z7/vrNS6uD+wMKC03BhUB6qPzf06olTHI5XWrQtK5Ug=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=JURd8kS7RRoPWtTen0Yrra6/rX6gSXNcA8M6U6J0dPETm/xRCW2+xnqo3lE1Bkwac
 d1zh0HfEOA3jHMWzTKfrjgxvZOg8V7wsGZUZbke0mXgx50J66WNx9Gfaa6g5Y8gSM/
 b1qIhb5WsEhf513h8L1EVH+Ck1iLX+Et2bwSbTO0=
From: Eric Abrahamsen <eric@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
 <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN>
Date: Tue, 05 Dec 2017 14:58:45 -0800
In-Reply-To: <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN> (Stefan Monnier's
 message of "Tue, 05 Dec 2017 17:14:00 -0500")
Message-ID: <874lp4aije.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 29220
Cc: John Wiegley <jwiegley@HIDDEN>, 29220 <at> debbugs.gnu.org,
 Noam Postavsky <npostavs@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>,
 Pierre =?utf-8?Q?T=C3=A9choueyres?= <pierre.techoueyres@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable


On 12/05/17 17:14 PM, Stefan Monnier wrote:

> Looks good to me.
>
> [ While looking at this code, I notice that with cl-defmethod (which can
>   dispatch not only on EIEIO objects, but other object types as well)
>   we can now fold eieio-override-prin1 into object-write (i.e. make one
>   into an alias for the other).  ]

Yup, I think there's a fair amount of modularization that can be done. I
can make that part of the patch on #29541.

>> If this is okay, it's going into emacs-26, right?
>
> I think so, but we're pretty late in the pretest, so better ask Eli&John
> if they think it's OK for emacs-26.

Okay: John and Eli, this patch is to handle changes in object
implementation in Emacs 26: they are now implemented with records, which
can't be round-tripped with prin1 and read, they have to be written and
read specially. The eieio-persistent mechanism handles that, but
previously did not look inside hash tables or vectors to see if there
were objects in there.

That's causing failure in the pcache library, which other libraries
depend on. I'm hoping we can sneak this in under the wire so that pcache
doesn't fail in Emacs 26.

[...]

On 12/05/17 23:20 PM, Pierre T=C3=A9choueyres wrote:
> Eric Abrahamsen <eric@HIDDEN> writes:
>
>> On 12/05/17 14:02 PM, Stefan Monnier wrote:
>>>> Would it be too "heavy" to just copy the object and modify the copy?
>>>
>>> No, that's fine as well.
>>
>> Okay, the attached appears to work just fine. Pierre's recipe passes,
>> as do all the tests in eieio-test-persist. Pierre, maybe you could eval
>> this quickly and make sure that pcache works correctly again?
>
> Yes all my receipes tests are running fine. Many thanks.
> I've tested also with the unicode-fonts package
> (http://github.com/rolandwalker/unicode-fonts) from melpa.
> Everything seem to work fine.

Great! Thanks for testing.

Eric


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment;
 filename=0001-Handle-hash-tables-and-vectors-when-reading-writing-.patch

From 9f946a968f41e16f7279c72706ccb839dcb7757c Mon Sep 17 00:00:00 2001
From: Eric Abrahamsen <eric@HIDDEN>
Date: Tue, 5 Dec 2017 14:41:50 -0800
Subject: [PATCH] Handle hash tables and vectors when reading/writing EIEIO
 objects

* lisp/emacs-lisp/eieio.el (eieio-override-prin1): EIEIO objects
  printed with `prin1' can no longer be read with `read'. Make sure
  they are printed with object-write instead, even when they're inside
  hash tables and vectors.
* lisp/emacs-lisp/eieio-base.el (eieio-persistent-validate/fix-slot-value):
  Check for written representations of objects inside hash tables and
  vectors, and reconstruct them.
---
 lisp/emacs-lisp/eieio-base.el | 20 ++++++++++++++++++++
 lisp/emacs-lisp/eieio.el      | 19 +++++++++++++++++++
 2 files changed, 39 insertions(+)

diff --git a/lisp/emacs-lisp/eieio-base.el b/lisp/emacs-lisp/eieio-base.el
index 58dcd09d7e..0241f27395 100644
--- a/lisp/emacs-lisp/eieio-base.el
+++ b/lisp/emacs-lisp/eieio-base.el
@@ -354,6 +354,26 @@ eieio-persistent-validate/fix-slot-value
 		   proposed-value))
 		 (t
 		  proposed-value))))
+        ;; For hash-tables and vectors, the top-level `read' will not
+        ;; "look inside" member values, so we need to do that
+        ;; explicitly.
+        ((hash-table-p proposed-value)
+         (maphash
+          (lambda (key value)
+            (when (class-p (car-safe value))
+              (setf (gethash key proposed-value)
+                    (eieio-persistent-convert-list-to-object
+                     value))))
+          proposed-value)
+         proposed-value)
+
+        ((vectorp proposed-value)
+         (dotimes (i (length proposed-value))
+           (when (class-p (car-safe (aref proposed-value i)))
+             (aset proposed-value i
+                   (eieio-persistent-convert-list-to-object
+                    (aref proposed-value i)))))
+         proposed-value)
 
 	 ((stringp proposed-value)
 	  ;; Else, check for strings, remove properties.
diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el
index d0d2ff5145..ab96547f93 100644
--- a/lisp/emacs-lisp/eieio.el
+++ b/lisp/emacs-lisp/eieio.el
@@ -926,6 +926,25 @@ eieio-override-prin1
 	 (object-write thing))
 	((consp thing)
 	 (eieio-list-prin1 thing))
+	((hash-table-p thing)
+         (let ((copy (copy-hash-table thing)))
+	   (maphash
+	    (lambda (key val)
+	      (setf (gethash key copy)
+		    (read
+		     (with-output-to-string
+		       (eieio-override-prin1 val)))))
+	    copy)
+	   (prin1 copy)))
+	((vectorp thing)
+         (let ((copy (copy-sequence thing)))
+	  (dotimes (i (length copy))
+	    (aset copy i
+		  (read
+		   (with-output-to-string
+		     (eieio-override-prin1
+		      (aref copy i))))))
+	  (prin1 copy)))
 	((eieio--class-p thing)
 	 (princ (eieio--class-print-name thing)))
 	(t (prin1 thing))))
-- 
2.15.1


--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 5 Dec 2017 22:20:55 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 05 17:20:54 2017
Received: from localhost ([127.0.0.1]:48186 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eMLaA-0007L6-Cd
	for submit <at> debbugs.gnu.org; Tue, 05 Dec 2017 17:20:54 -0500
Received: from smtp4-g21.free.fr ([212.27.42.4]:7522)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pierre.techoueyres@HIDDEN>) id 1eMLa6-0007Kv-VE
 for 29220 <at> debbugs.gnu.org; Tue, 05 Dec 2017 17:20:52 -0500
Received: from killashandra.ballybran.fr.free.fr (unknown
 [IPv6:2a01:e35:2e14:eab0:b51f:3dc7:7e03:942])
 by smtp4-g21.free.fr (Postfix) with ESMTPS id 624A019F4C8;
 Tue,  5 Dec 2017 23:20:46 +0100 (CET)
From: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
To: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
Date: Tue, 05 Dec 2017 23:20:45 +0100
In-Reply-To: <87bmjcc2rh.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Tue, 05 Dec 2017 12:56:34 -0800")
Message-ID: <87wp2024w2.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>,
 Noam Postavsky <npostavs@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

Eric Abrahamsen <eric@HIDDEN> writes:

> On 12/05/17 14:02 PM, Stefan Monnier wrote:
>>> Would it be too "heavy" to just copy the object and modify the copy?
>>
>> No, that's fine as well.
>
> Okay, the attached appears to work just fine. Pierre's recipe passes,
> as do all the tests in eieio-test-persist. Pierre, maybe you could eval
> this quickly and make sure that pcache works correctly again?

Yes all my receipes tests are running fine. Many thanks.
I've tested also with the unicode-fonts package
(http://github.com/rolandwalker/unicode-fonts) from melpa.
Everything seem to work fine.

>
> If this is okay, it's going into emacs-26, right?
>
> Eric




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 5 Dec 2017 22:14:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 05 17:14:13 2017
Received: from localhost ([127.0.0.1]:48178 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eMLTh-0007BF-Ga
	for submit <at> debbugs.gnu.org; Tue, 05 Dec 2017 17:14:13 -0500
Received: from pmta31.teksavvy.com ([76.10.157.38]:49197)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1eMLTf-0007B2-AJ
 for 29220 <at> debbugs.gnu.org; Tue, 05 Dec 2017 17:14:12 -0500
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A2HWBgBfGSda/9WIpUVdHAEBAQQBAQoBA?=
 =?us-ascii?q?YM9gVSDXItfjgcBgXw0AZhihT8EAgKFR0QUAQEBAQEBAQEBA2gohSQBBAFWIwU?=
 =?us-ascii?q?LCzQSFBgNJIouCKwjilIBAQEBAQUCASWMPosZBZIGgRSGIok6j0mHYCGJQzWHK?=
 =?us-ascii?q?ZZBgUo2I4FNMhoIMDqCKoJQHYIFI4gVLIIZAQEB?=
X-IPAS-Result: =?us-ascii?q?A2HWBgBfGSda/9WIpUVdHAEBAQQBAQoBAYM9gVSDXItfjgc?=
 =?us-ascii?q?BgXw0AZhihT8EAgKFR0QUAQEBAQEBAQEBA2gohSQBBAFWIwULCzQSFBgNJIouC?=
 =?us-ascii?q?KwjilIBAQEBAQUCASWMPosZBZIGgRSGIok6j0mHYCGJQzWHKZZBgUo2I4FNMho?=
 =?us-ascii?q?IMDqCKoJQHYIFI4gVLIIZAQEB?=
X-IronPort-AV: E=Sophos;i="5.45,365,1508817600"; d="scan'208";a="10804420"
Received: from 69-165-136-213.dsl.teksavvy.com (HELO pastel.home)
 ([69.165.136.213])
 by smtp.teksavvy.com with ESMTP; 05 Dec 2017 17:14:00 -0500
Received: by pastel.home (Postfix, from userid 20848)
 id 611C661445; Tue,  5 Dec 2017 17:14:00 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
Message-ID: <jwvzi6wakvt.fsf-monnier+emacsbugs@HIDDEN>
References: <87y3nga0lv.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
 <87bmjcc2rh.fsf@HIDDEN>
Date: Tue, 05 Dec 2017 17:14:00 -0500
In-Reply-To: <87bmjcc2rh.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Tue, 05 Dec 2017 12:56:34 -0800")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.3 (/)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org, Noam Postavsky <npostavs@HIDDEN>,
 Pierre =?windows-1252?Q?T=E9choueyres?= <pierre.techoueyres@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.3 (/)

> Okay, the attached appears to work just fine. Pierre's recipe passes,
> as do all the tests in eieio-test-persist. Pierre, maybe you could eval
> this quickly and make sure that pcache works correctly again?

Looks good to me.

[ While looking at this code, I notice that with cl-defmethod (which can
  dispatch not only on EIEIO objects, but other object types as well)
  we can now fold eieio-override-prin1 into object-write (i.e. make one
  into an alias for the other).  ]

> If this is okay, it's going into emacs-26, right?

I think so, but we're pretty late in the pretest, so better ask Eli&John
if they think it's OK for emacs-26.


        Stefan


> diff --git a/lisp/emacs-lisp/eieio-base.el b/lisp/emacs-lisp/eieio-base.el
> index 58dcd09d7e..0241f27395 100644
> --- a/lisp/emacs-lisp/eieio-base.el
> +++ b/lisp/emacs-lisp/eieio-base.el
> @@ -354,6 +354,26 @@ eieio-persistent-validate/fix-slot-value
>  		   proposed-value))
>  		 (t
>  		  proposed-value))))
> +        ;; For hash-tables and vectors, the top-level `read' will not
> +        ;; "look inside" member values, so we need to do that
> +        ;; explicitly.
> +        ((hash-table-p proposed-value)
> +         (maphash
> +          (lambda (key value)
> +            (when (class-p (car-safe value))
> +              (setf (gethash key proposed-value)
> +                    (eieio-persistent-convert-list-to-object
> +                     value))))
> +          proposed-value)
> +         proposed-value)
> +
> +        ((vectorp proposed-value)
> +         (dotimes (i (length proposed-value))
> +           (when (class-p (car-safe (aref proposed-value i)))
> +             (aset proposed-value i
> +                   (eieio-persistent-convert-list-to-object
> +                    (aref proposed-value i)))))
> +         proposed-value)
 
>  	 ((stringp proposed-value)
>  	  ;; Else, check for strings, remove properties.
> diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el
> index d0d2ff5145..ab96547f93 100644
> --- a/lisp/emacs-lisp/eieio.el
> +++ b/lisp/emacs-lisp/eieio.el
> @@ -926,6 +926,25 @@ eieio-override-prin1
>  	 (object-write thing))
>  	((consp thing)
>  	 (eieio-list-prin1 thing))
> +	((hash-table-p thing)
> +         (let ((copy (copy-hash-table thing)))
> +	   (maphash
> +	    (lambda (key val)
> +	      (setf (gethash key copy)
> +		    (read
> +		     (with-output-to-string
> +		       (eieio-override-prin1 val)))))
> +	    copy)
> +	   (prin1 copy)))
> +	((vectorp thing)
> +         (let ((copy (copy-sequence thing)))
> +	  (dotimes (i (length copy))
> +	    (aset copy i
> +		  (read
> +		   (with-output-to-string
> +		     (eieio-override-prin1
> +		      (aref copy i))))))
> +	  (prin1 copy)))
>  	((eieio--class-p thing)
>  	 (princ (eieio--class-print-name thing)))
>  	(t (prin1 thing))))





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 5 Dec 2017 20:58:30 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 05 15:58:30 2017
Received: from localhost ([127.0.0.1]:48144 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eMKIQ-0001cp-0D
	for submit <at> debbugs.gnu.org; Tue, 05 Dec 2017 15:58:30 -0500
Received: from mail.ericabrahamsen.net ([50.56.99.223]:53547)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1eMKIO-0001cb-1v
 for 29220 <at> debbugs.gnu.org; Tue, 05 Dec 2017 15:58:28 -0500
Received: from localhost (71-212-75-109.tukw.qwest.net [71.212.75.109])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 345ECC07BA;
 Tue,  5 Dec 2017 20:58:27 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mail.ericabrahamsen.net; s=mail; t=1512507507;
 bh=Ix6Pt3an+KTLzThD0Ro7dYlepwaB71ExD2C5OkTknkg=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=iXelN93w5yrznoVkg7MtZQe++xMifIQCQ7gYczA5C8qacOlKHvQn1OoyyfWT2rifm
 Rm2t48Sy+2h1iUEvfvBqTlrSzyb3b2qsgqN6Ez7Oxi+PJov1DBkt11cwcx2GuhdqSI
 i7zJF2xb0XqRtPmNlq0Cinx7MGcRHABr8ttcoe/4=
From: Eric Abrahamsen <eric@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
 <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
Date: Tue, 05 Dec 2017 12:56:34 -0800
In-Reply-To: <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN> (Stefan Monnier's
 message of "Tue, 05 Dec 2017 14:02:11 -0500")
Message-ID: <87bmjcc2rh.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org, Noam Postavsky <npostavs@HIDDEN>,
 Pierre =?utf-8?Q?T=C3=A9choueyres?= <pierre.techoueyres@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

--=-=-=
Content-Type: text/plain


On 12/05/17 14:02 PM, Stefan Monnier wrote:
>> Would it be too "heavy" to just copy the object and modify the copy?
>
> No, that's fine as well.

Okay, the attached appears to work just fine. Pierre's recipe passes,
as do all the tests in eieio-test-persist. Pierre, maybe you could eval
this quickly and make sure that pcache works correctly again?

If this is okay, it's going into emacs-26, right?

Eric


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment; filename=persist-tables-vectors.diff

diff --git a/lisp/emacs-lisp/eieio-base.el b/lisp/emacs-lisp/eieio-base.el
index 58dcd09d7e..0241f27395 100644
--- a/lisp/emacs-lisp/eieio-base.el
+++ b/lisp/emacs-lisp/eieio-base.el
@@ -354,6 +354,26 @@ eieio-persistent-validate/fix-slot-value
 		   proposed-value))
 		 (t
 		  proposed-value))))
+        ;; For hash-tables and vectors, the top-level `read' will not
+        ;; "look inside" member values, so we need to do that
+        ;; explicitly.
+        ((hash-table-p proposed-value)
+         (maphash
+          (lambda (key value)
+            (when (class-p (car-safe value))
+              (setf (gethash key proposed-value)
+                    (eieio-persistent-convert-list-to-object
+                     value))))
+          proposed-value)
+         proposed-value)
+
+        ((vectorp proposed-value)
+         (dotimes (i (length proposed-value))
+           (when (class-p (car-safe (aref proposed-value i)))
+             (aset proposed-value i
+                   (eieio-persistent-convert-list-to-object
+                    (aref proposed-value i)))))
+         proposed-value)
 
 	 ((stringp proposed-value)
 	  ;; Else, check for strings, remove properties.
diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el
index d0d2ff5145..ab96547f93 100644
--- a/lisp/emacs-lisp/eieio.el
+++ b/lisp/emacs-lisp/eieio.el
@@ -926,6 +926,25 @@ eieio-override-prin1
 	 (object-write thing))
 	((consp thing)
 	 (eieio-list-prin1 thing))
+	((hash-table-p thing)
+         (let ((copy (copy-hash-table thing)))
+	   (maphash
+	    (lambda (key val)
+	      (setf (gethash key copy)
+		    (read
+		     (with-output-to-string
+		       (eieio-override-prin1 val)))))
+	    copy)
+	   (prin1 copy)))
+	((vectorp thing)
+         (let ((copy (copy-sequence thing)))
+	  (dotimes (i (length copy))
+	    (aset copy i
+		  (read
+		   (with-output-to-string
+		     (eieio-override-prin1
+		      (aref copy i))))))
+	  (prin1 copy)))
 	((eieio--class-p thing)
 	 (princ (eieio--class-print-name thing)))
 	(t (prin1 thing))))

--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 5 Dec 2017 19:00:00 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 05 14:00:00 2017
Received: from localhost ([127.0.0.1]:48093 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eMIRj-0006pF-MP
	for submit <at> debbugs.gnu.org; Tue, 05 Dec 2017 13:59:59 -0500
Received: from pruche.dit.umontreal.ca ([132.204.246.22]:39459)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1eMIRh-0006p4-NC
 for 29220 <at> debbugs.gnu.org; Tue, 05 Dec 2017 13:59:58 -0500
Received: from lechazo.home (lechon.iro.umontreal.ca [132.204.27.242])
 by pruche.dit.umontreal.ca (8.14.7/8.14.1) with ESMTP id vB5Ixu5i030677;
 Tue, 5 Dec 2017 13:59:56 -0500
Received: by lechazo.home (Postfix, from userid 20848)
 id 5807860168; Tue,  5 Dec 2017 14:02:11 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
Message-ID: <jwva7yxt2vz.fsf-monnier+emacsbugs@HIDDEN>
References: <87y3nga0lv.fsf@HIDDEN>
 <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
 <87609lcbip.fsf@HIDDEN>
Date: Tue, 05 Dec 2017 14:02:11 -0500
In-Reply-To: <87609lcbip.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Tue, 05 Dec 2017 09:47:26 -0800")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-NAI-Spam-Flag: NO
X-NAI-Spam-Level: 
X-NAI-Spam-Threshold: 5
X-NAI-Spam-Score: 0.1
X-NAI-Spam-Rules: 3 Rules triggered
 GEN_SPAM_FEATRE=0.1, EDT_SA_DN_PASS=0, RV6173=0
X-NAI-Spam-Version: 2.3.0.9418 : core <6173> : inlines <6210> : streams
 <1772269> : uri <2545732>
X-Spam-Score: -1.3 (-)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org, Noam Postavsky <npostavs@HIDDEN>,
 Pierre =?windows-1252?Q?T=E9choueyres?= <pierre.techoueyres@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.3 (-)

> Would it be too "heavy" to just copy the object and modify the copy?

No, that's fine as well.


        Stefan




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 5 Dec 2017 17:49:22 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 05 12:49:22 2017
Received: from localhost ([127.0.0.1]:48077 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eMHLO-00084D-0J
	for submit <at> debbugs.gnu.org; Tue, 05 Dec 2017 12:49:22 -0500
Received: from mail.ericabrahamsen.net ([50.56.99.223]:57417)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1eMHLK-00083B-QD
 for 29220 <at> debbugs.gnu.org; Tue, 05 Dec 2017 12:49:19 -0500
Received: from localhost (71-212-75-109.tukw.qwest.net [71.212.75.109])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 38F1AC0541;
 Tue,  5 Dec 2017 17:49:17 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mail.ericabrahamsen.net; s=mail; t=1512496157;
 bh=51M8UJ4GBht/WhEMIacULUzNCb06hwb1Y9bDqVappWg=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=qTeVPMG4fCaytsZIUt6h3Mz2SRIRlVrJKmGVXQF/DJ3ZDS/myTKnB6vmRNRN6oC2c
 u0gJRoccSrEOsjrv8oqatJNrbC+CTLnRNcWS3xtc6RXxmFdixJv2Ezm/sOJCGQVGHu
 f7cM51Rnfw3snI7cGmSS5RLZva3K2OzzoAHMEHNc=
From: Eric Abrahamsen <eric@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN>
 <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
 <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
Date: Tue, 05 Dec 2017 09:47:26 -0800
In-Reply-To: <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN> (Stefan Monnier's
 message of "Mon, 04 Dec 2017 21:08:40 -0500")
Message-ID: <87609lcbip.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org, Noam Postavsky <npostavs@HIDDEN>,
 Pierre =?utf-8?Q?T=C3=A9choueyres?= <pierre.techoueyres@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)


On 12/04/17 21:08 PM, Stefan Monnier wrote:
>> --- a/lisp/emacs-lisp/eieio-base.el
>> +++ b/lisp/emacs-lisp/eieio-base.el
>> @@ -354,15 +354,34 @@ eieio-persistent-validate/fix-slot-value
>>  		   proposed-value))
>>  		 (t
>>  		  proposed-value))))
>> +	((stringp proposed-value)
>> +	 ;; Remove string properties.
>> +	 (substring-no-properties proposed-value))
>> +
>> +        ;; For hash-tables and vectors, the top-level `read' will not
>> +        ;; "look inside" member values, so we need to do that
>> +        ;; explicitly.
>> +        ((hash-table-p proposed-value)
>> +         (maphash
>> +          (lambda (key value)
>> +            (when (class-p (car-safe value))
>> +              (setf (gethash key proposed-value)
>> +                    (eieio-persistent-convert-list-to-object
>> +                     value))))
>> +          proposed-value)
>> +         proposed-value)
>> +
>> +        ((vectorp proposed-value)
>> +         (dotimes (i (length proposed-value))
>> +           (when (class-p (car-safe (aref proposed-value i)))
>> +             (aset proposed-value i
>> +                   (eieio-persistent-convert-list-to-object
>> +                    (aref proposed-value i)))))
>> +         proposed-value)
>  
>> -	 ((stringp proposed-value)
>> -	  ;; Else, check for strings, remove properties.
>> -	  (substring-no-properties proposed-value))
>> -
>> -	 (t
>> -	  ;; Else, just return whatever the constant was.
>> -	  proposed-value))
>> -  )
>> +	(t
>> +	 ;; Else, just return whatever the constant was.
>> +	 proposed-value)))
>
> Not sure why the `stringp` part was reindented, and an empty line was
> lost (which de-synchronized the diff), but other than that, it looks fine.

Dunno about the reindentation, either, I guess I can discard those
changes.

>> +	((hash-table-p thing)
>> +	 (maphash
>> +	  (lambda (key val)
>> +	    (setf (gethash key thing)
>> +		  (read
>> +		   (with-output-to-string
>> +		     (temp-eieio-override-prin1 val)))))
>> +	  thing)
>> +	 (prin1 thing))
>> +	((vectorp thing)
>> +	 (dotimes (i (length thing))
>> +	   (aset thing i
>> +		 (read
>> +		  (with-output-to-string
>> +		    (temp-eieio-override-prin1
>> +		     (aref thing i))))))
>> +	 (prin1 thing))
>
> This looks wrong, OTOH:
> - temp-eieio-override-prin1 does not exist in my copy of Emacs
> `master`.

That was a temporary name to prevent these changes from wrecking my Gnus
and EBDB. I guess I should be working in a separate Emacs.

> - you modify the object you received, so while the print part will
>   presumably work OK, the object left after that is unusable.

I should have realized that...

> Maybe a better option is to print something of the form
>
>    (vector <exp1> <exp2> ...)
>
> i.e. not something that looks like a vector.  Or otherwise, print the
> "standard" syntax of a vector/hash-table, but do it by hand rather than
> rely on prin1 to do it for us.

Would it be too "heavy" to just copy the object and modify the copy? It
seems like writing a list-like form will result in just as much
consing...?

Eric




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 5 Dec 2017 02:08:57 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Dec 04 21:08:57 2017
Received: from localhost ([127.0.0.1]:46195 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eM2fI-0002zw-Rm
	for submit <at> debbugs.gnu.org; Mon, 04 Dec 2017 21:08:57 -0500
Received: from chene.dit.umontreal.ca ([132.204.246.20]:56993)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1eM2fG-0002zn-1Y
 for 29220 <at> debbugs.gnu.org; Mon, 04 Dec 2017 21:08:55 -0500
Received: from fmsmemgm.homelinux.net (lechon.iro.umontreal.ca
 [132.204.27.242])
 by chene.dit.umontreal.ca (8.14.7/8.14.1) with ESMTP id vB528hFS010294;
 Mon, 4 Dec 2017 21:08:47 -0500
Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848)
 id 1095BAE0E9; Mon,  4 Dec 2017 21:08:41 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
Message-ID: <jwv1skavsn3.fsf-monnier+emacsbugs@HIDDEN>
References: <87y3nga0lv.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN>
 <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
 <87h8t69d7b.fsf@HIDDEN>
Date: Mon, 04 Dec 2017 21:08:40 -0500
In-Reply-To: <87h8t69d7b.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Mon, 04 Dec 2017 17:27:04 -0800")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-NAI-Spam-Flag: NO
X-NAI-Spam-Threshold: 5
X-NAI-Spam-Score: 0
X-NAI-Spam-Rules: 2 Rules triggered
	EDT_SA_DN_PASS=0, RV6172=0
X-NAI-Spam-Version: 2.3.0.9418 : core <6172> : inlines <6208> : streams
 <1772202> : uri <2545315>
X-Spam-Score: -1.4 (-)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org, Noam Postavsky <npostavs@HIDDEN>,
 Pierre =?windows-1252?Q?T=E9choueyres?= <pierre.techoueyres@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.4 (-)

> --- a/lisp/emacs-lisp/eieio-base.el
> +++ b/lisp/emacs-lisp/eieio-base.el
> @@ -354,15 +354,34 @@ eieio-persistent-validate/fix-slot-value
>  		   proposed-value))
>  		 (t
>  		  proposed-value))))
> +	((stringp proposed-value)
> +	 ;; Remove string properties.
> +	 (substring-no-properties proposed-value))
> +
> +        ;; For hash-tables and vectors, the top-level `read' will not
> +        ;; "look inside" member values, so we need to do that
> +        ;; explicitly.
> +        ((hash-table-p proposed-value)
> +         (maphash
> +          (lambda (key value)
> +            (when (class-p (car-safe value))
> +              (setf (gethash key proposed-value)
> +                    (eieio-persistent-convert-list-to-object
> +                     value))))
> +          proposed-value)
> +         proposed-value)
> +
> +        ((vectorp proposed-value)
> +         (dotimes (i (length proposed-value))
> +           (when (class-p (car-safe (aref proposed-value i)))
> +             (aset proposed-value i
> +                   (eieio-persistent-convert-list-to-object
> +                    (aref proposed-value i)))))
> +         proposed-value)
 
> -	 ((stringp proposed-value)
> -	  ;; Else, check for strings, remove properties.
> -	  (substring-no-properties proposed-value))
> -
> -	 (t
> -	  ;; Else, just return whatever the constant was.
> -	  proposed-value))
> -  )
> +	(t
> +	 ;; Else, just return whatever the constant was.
> +	 proposed-value)))

Not sure why the `stringp` part was reindented, and an empty line was
lost (which de-synchronized the diff), but other than that, it looks fine.

> +	((hash-table-p thing)
> +	 (maphash
> +	  (lambda (key val)
> +	    (setf (gethash key thing)
> +		  (read
> +		   (with-output-to-string
> +		     (temp-eieio-override-prin1 val)))))
> +	  thing)
> +	 (prin1 thing))
> +	((vectorp thing)
> +	 (dotimes (i (length thing))
> +	   (aset thing i
> +		 (read
> +		  (with-output-to-string
> +		    (temp-eieio-override-prin1
> +		     (aref thing i))))))
> +	 (prin1 thing))

This looks wrong, OTOH:
- temp-eieio-override-prin1 does not exist in my copy of Emacs `master`.
- you modify the object you received, so while the print part will
  presumably work OK, the object left after that is unusable.

Maybe a better option is to print something of the form

   (vector <exp1> <exp2> ...)

i.e. not something that looks like a vector.  Or otherwise, print the
"standard" syntax of a vector/hash-table, but do it by hand rather than
rely on prin1 to do it for us.


        Stefan




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 5 Dec 2017 01:27:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Dec 04 20:27:14 2017
Received: from localhost ([127.0.0.1]:46166 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eM20w-00009Q-65
	for submit <at> debbugs.gnu.org; Mon, 04 Dec 2017 20:27:14 -0500
Received: from mail.ericabrahamsen.net ([50.56.99.223]:34268)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1eM20u-00009G-Im
 for 29220 <at> debbugs.gnu.org; Mon, 04 Dec 2017 20:27:13 -0500
Received: from localhost (71-212-22-173.tukw.qwest.net [71.212.22.173])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id AD858C0541;
 Tue,  5 Dec 2017 01:27:11 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mail.ericabrahamsen.net; s=mail; t=1512437231;
 bh=R13+iQTJOzn0+EkHWIRtHEhcBvXfMfvFOTxPdddXa+I=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=ESyyZnE8RrFcQtWSGg5+96vzfF7n3FvIx5zNTvw0YHhth5Xx8bbdpoO+AGiOrvRws
 0iwif7VKm76ZmSZ58+wtoYS/P/O55Tl+FSDjf7v0axussCNXzfxXpLx72Ur1JzPCWt
 L4DCfbFZZNP9WkbEdqhaC3+THejxn3wzSWqz7ovY=
From: Eric Abrahamsen <eric@HIDDEN>
To: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN>
 <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
 <87zi6zmzh7.fsf@HIDDEN>
Date: Mon, 04 Dec 2017 17:27:04 -0800
In-Reply-To: <87zi6zmzh7.fsf@HIDDEN> ("Pierre
 =?utf-8?Q?T=C3=A9choueyres=22's?= message of "Sun, 03 Dec 2017 19:35:16
 +0100")
Message-ID: <87h8t69d7b.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>,
 Noam Postavsky <npostavs@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable


On 12/03/17 19:35 PM, Pierre T=C3=A9choueyres wrote:
> Eric Abrahamsen <eric@HIDDEN> writes:
>
>> On 12/01/17 12:55 PM, Stefan Monnier wrote:
>>>>> So I think the real fix here is to extend eieio-persistent with suppo=
rt
>>>>> for hash-tables.
>>>> Just hash tables?
>>>
>>> For the problem at hand, IIUC, hash-tables is what's needed, yes.
>>>
>>>> How about vectors?
>>>
>>> Sure, add that too.
>>
>> Before I do that, I just opened #29541 with a proposal for tweaking the
>> restore process -- maybe that could be done first?
>>
>
> I wishes it would, but this is a blocker bug for emacs 26, isn't it ?

Could be! If so, let's fix this part first.

Here's a diff that seems to work. The read->with-output-to-string stuff
seems awful to me, and I'm hoping someone has something more elegant on
hand.

Eric


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment; filename=persistent-stuff.diff

diff --git a/lisp/emacs-lisp/eieio-base.el b/lisp/emacs-lisp/eieio-base.el
index 58dcd09d7e..840f7223c4 100644
--- a/lisp/emacs-lisp/eieio-base.el
+++ b/lisp/emacs-lisp/eieio-base.el
@@ -354,15 +354,34 @@ eieio-persistent-validate/fix-slot-value
 		   proposed-value))
 		 (t
 		  proposed-value))))
+	((stringp proposed-value)
+	 ;; Remove string properties.
+	 (substring-no-properties proposed-value))
+
+        ;; For hash-tables and vectors, the top-level `read' will not
+        ;; "look inside" member values, so we need to do that
+        ;; explicitly.
+        ((hash-table-p proposed-value)
+         (maphash
+          (lambda (key value)
+            (when (class-p (car-safe value))
+              (setf (gethash key proposed-value)
+                    (eieio-persistent-convert-list-to-object
+                     value))))
+          proposed-value)
+         proposed-value)
+
+        ((vectorp proposed-value)
+         (dotimes (i (length proposed-value))
+           (when (class-p (car-safe (aref proposed-value i)))
+             (aset proposed-value i
+                   (eieio-persistent-convert-list-to-object
+                    (aref proposed-value i)))))
+         proposed-value)
 
-	 ((stringp proposed-value)
-	  ;; Else, check for strings, remove properties.
-	  (substring-no-properties proposed-value))
-
-	 (t
-	  ;; Else, just return whatever the constant was.
-	  proposed-value))
-  )
+	(t
+	 ;; Else, just return whatever the constant was.
+	 proposed-value)))
 
 (defun eieio-persistent-slot-type-is-class-p (type)
   "Return the class referred to in TYPE.
diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el
index d0d2ff5145..11637c8072 100644
--- a/lisp/emacs-lisp/eieio.el
+++ b/lisp/emacs-lisp/eieio.el
@@ -926,6 +926,23 @@ eieio-override-prin1
 	 (object-write thing))
 	((consp thing)
 	 (eieio-list-prin1 thing))
+	((hash-table-p thing)
+	 (maphash
+	  (lambda (key val)
+	    (setf (gethash key thing)
+		  (read
+		   (with-output-to-string
+		     (temp-eieio-override-prin1 val)))))
+	  thing)
+	 (prin1 thing))
+	((vectorp thing)
+	 (dotimes (i (length thing))
+	   (aset thing i
+		 (read
+		  (with-output-to-string
+		    (temp-eieio-override-prin1
+		     (aref thing i))))))
+	 (prin1 thing))
 	((eieio--class-p thing)
 	 (princ (eieio--class-print-name thing)))
 	(t (prin1 thing))))

--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 3 Dec 2017 18:35:30 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 03 13:35:29 2017
Received: from localhost ([127.0.0.1]:43728 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eLZ6v-00053p-AO
	for submit <at> debbugs.gnu.org; Sun, 03 Dec 2017 13:35:29 -0500
Received: from smtp4-g21.free.fr ([212.27.42.4]:3344)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pierre.techoueyres@HIDDEN>) id 1eLZ6r-00053f-M1
 for 29220 <at> debbugs.gnu.org; Sun, 03 Dec 2017 13:35:26 -0500
Received: from killashandra.ballybran.fr.free.fr (unknown
 [IPv6:2a01:e35:2e14:eab0:b51f:3dc7:7e03:942])
 by smtp4-g21.free.fr (Postfix) with ESMTPS id C40DA19F5D7;
 Sun,  3 Dec 2017 19:35:16 +0100 (CET)
From: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
To: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN>
 <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
 <87h8t8is1u.fsf@HIDDEN>
Date: Sun, 03 Dec 2017 19:35:16 +0100
In-Reply-To: <87h8t8is1u.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Sat, 02 Dec 2017 16:17:01 -0800")
Message-ID: <87zi6zmzh7.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>,
 Noam Postavsky <npostavs@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

Eric Abrahamsen <eric@HIDDEN> writes:

> On 12/01/17 12:55 PM, Stefan Monnier wrote:
>>>> So I think the real fix here is to extend eieio-persistent with support
>>>> for hash-tables.
>>> Just hash tables?
>>
>> For the problem at hand, IIUC, hash-tables is what's needed, yes.
>>
>>> How about vectors?
>>
>> Sure, add that too.
>
> Before I do that, I just opened #29541 with a proposal for tweaking the
> restore process -- maybe that could be done first?
>

I wishes it would, but this is a blocker bug for emacs 26, isn't it ?





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 3 Dec 2017 00:18:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 02 19:18:53 2017
Received: from localhost ([127.0.0.1]:42295 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eLHzh-00068D-Gm
	for submit <at> debbugs.gnu.org; Sat, 02 Dec 2017 19:18:53 -0500
Received: from mail.ericabrahamsen.net ([50.56.99.223]:47146)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1eLHzg-000686-Eq
 for 29220 <at> debbugs.gnu.org; Sat, 02 Dec 2017 19:18:52 -0500
Received: from localhost (71-212-22-173.tukw.qwest.net [71.212.22.173])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id D79A3C0241;
 Sun,  3 Dec 2017 00:18:51 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mail.ericabrahamsen.net; s=mail; t=1512260332;
 bh=HqC27cB+uaHyaLejT9NVfFdKLFWmJM05EnALzaWzVTU=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=fMDPY0Q/2X/TEEg0b5LFC2a/46TZO5lfQbUTYpDzsReGkv1eTD5U6PbosmIjedWun
 O1QSQda8/V++UnkQXYqjLGmVJ8ZeTcT8N3KA+dISbIpfpW4lG/2CUteuJ+QaExtTDo
 ++Y2VsQ0HcghIJKIn7Gz1XGYCKCPRhw/vtKYKj1E=
From: Eric Abrahamsen <eric@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN>
 <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
 <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
Date: Sat, 02 Dec 2017 16:17:01 -0800
In-Reply-To: <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN> (Stefan Monnier's
 message of "Fri, 01 Dec 2017 12:55:32 -0500")
Message-ID: <87h8t8is1u.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org, Noam Postavsky <npostavs@HIDDEN>,
 Pierre =?utf-8?Q?T=C3=A9choueyres?= <pierre.techoueyres@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)


On 12/01/17 12:55 PM, Stefan Monnier wrote:
>>> So I think the real fix here is to extend eieio-persistent with support
>>> for hash-tables.
>> Just hash tables?
>
> For the problem at hand, IIUC, hash-tables is what's needed, yes.
>
>> How about vectors?
>
> Sure, add that too.

Before I do that, I just opened #29541 with a proposal for tweaking the
restore process -- maybe that could be done first?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 1 Dec 2017 17:55:46 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 01 12:55:46 2017
Received: from localhost ([127.0.0.1]:40359 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eKpXN-0004qo-SK
	for submit <at> debbugs.gnu.org; Fri, 01 Dec 2017 12:55:46 -0500
Received: from pmta11.teksavvy.com ([76.10.157.34]:47558)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1eKpXM-0004qd-4k
 for 29220 <at> debbugs.gnu.org; Fri, 01 Dec 2017 12:55:45 -0500
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A2G9EABBliFa/1rWbkFcHQEBBQELAYM8g?=
 =?us-ascii?q?VSPOo4CAYF8FCABmF0KhTUEAgKFKkQUAQEBAQEBAQEBA2gohSQBBAFWIwULCzQ?=
 =?us-ascii?q?SFBgNJIotCKk3imQBAQEHAgElg0GFSYMrixkFkxePS5cOARiJYzWHJ5ZJgTo2I?=
 =?us-ascii?q?4FNMhoIMIJkglAdggUjijoBAQE?=
X-IPAS-Result: =?us-ascii?q?A2G9EABBliFa/1rWbkFcHQEBBQELAYM8gVSPOo4CAYF8FCA?=
 =?us-ascii?q?BmF0KhTUEAgKFKkQUAQEBAQEBAQEBA2gohSQBBAFWIwULCzQSFBgNJIotCKk3i?=
 =?us-ascii?q?mQBAQEHAgElg0GFSYMrixkFkxePS5cOARiJYzWHJ5ZJgTo2I4FNMhoIMIJkglA?=
 =?us-ascii?q?dggUjijoBAQE?=
X-IronPort-AV: E=Sophos;i="5.45,346,1508817600"; d="scan'208";a="10932356"
Received: from 65-110-214-90.cpe.pppoe.ca (HELO fmsmemgm.homelinux.net)
 ([65.110.214.90])
 by smtp.teksavvy.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 01 Dec 2017 12:55:33 -0500
Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848)
 id 764E7AE0DF; Fri,  1 Dec 2017 12:55:32 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
Message-ID: <jwvzi72z63o.fsf-monnier+emacsbugs@HIDDEN>
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN>
 <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
 <87lgimpdhp.fsf@HIDDEN>
Date: Fri, 01 Dec 2017 12:55:32 -0500
In-Reply-To: <87lgimpdhp.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Fri, 01 Dec 2017 09:25:06 -0800")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.3 (/)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org, Noam Postavsky <npostavs@HIDDEN>,
 Pierre =?windows-1252?Q?T=E9choueyres?= <pierre.techoueyres@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.3 (/)

>> So I think the real fix here is to extend eieio-persistent with support
>> for hash-tables.
> Just hash tables?

For the problem at hand, IIUC, hash-tables is what's needed, yes.

> How about vectors?

Sure, add that too.


        Stefan




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 1 Dec 2017 17:26:59 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 01 12:26:59 2017
Received: from localhost ([127.0.0.1]:40339 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eKp5X-0004AC-Hs
	for submit <at> debbugs.gnu.org; Fri, 01 Dec 2017 12:26:59 -0500
Received: from mail.ericabrahamsen.net ([50.56.99.223]:47884)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1eKp5V-0004A4-ND
 for 29220 <at> debbugs.gnu.org; Fri, 01 Dec 2017 12:26:57 -0500
Received: from localhost (71-212-22-173.tukw.qwest.net [71.212.22.173])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 1B8D0C04DA;
 Fri,  1 Dec 2017 17:26:56 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mail.ericabrahamsen.net; s=mail; t=1512149216;
 bh=2WHglqnJZYNNvPTMmW/c2ehMdRq54znvIdeucMZl3dI=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=DD1CQWk9G0eN6nsQfFYE5uRB0jIhsbM2R64NWgUgDU4hybL66wdS1nW95V4kIDP/w
 r8GF0+jUs+xx50j1PWiAjzgPfAEL25ibzScJT0h42juMRtvuIFKdM4vgH5F5YFImks
 5WhFt80k2flwqSnQTR1SbLhYbI84X0mvj4pulLzQ=
From: Eric Abrahamsen <eric@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN>
 <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
 <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
Date: Fri, 01 Dec 2017 09:25:06 -0800
In-Reply-To: <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN> (Stefan Monnier's
 message of "Wed, 29 Nov 2017 10:15:28 -0500")
Message-ID: <87lgimpdhp.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org, Noam Postavsky <npostavs@HIDDEN>,
 Pierre =?utf-8?Q?T=C3=A9choueyres?= <pierre.techoueyres@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)


On 11/29/17 10:15 AM, Stefan Monnier wrote:
>> That's exactly what Noam was saying! The implementation of objects
>> changed from 25 to 26, and thus their printed representation also
>> changed.
>
> Indeed.  But the subject mentions "...eieio-persistent-read..." and
> eieio-persistent was designed specifically to try and avoid dependence
> on how Emacs represents EIEIO objects.  The problem here is that
> eieio-persistent doesn't support hash-tables, so the EIEIO objects in
> the hash-tables are printed with `princ` (i.e. in all their internal
> glory) rather than going through eieio-persistent.
>
> So I think the real fix here is to extend eieio-persistent with support
> for hash-tables.

Just hash tables? How about vectors? There seem to be many places where
objects could be hiding...




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 29 Nov 2017 15:16:17 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Nov 29 10:16:17 2017
Received: from localhost ([127.0.0.1]:37161 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eK45x-0000u5-FA
	for submit <at> debbugs.gnu.org; Wed, 29 Nov 2017 10:16:17 -0500
Received: from pruche.dit.umontreal.ca ([132.204.246.22]:41618)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1eK45v-0000tx-Py
 for 29220 <at> debbugs.gnu.org; Wed, 29 Nov 2017 10:16:16 -0500
Received: from lechazo.home (lechon.iro.umontreal.ca [132.204.27.242])
 by pruche.dit.umontreal.ca (8.14.7/8.14.1) with ESMTP id vATFGFgW029419;
 Wed, 29 Nov 2017 10:16:15 -0500
Received: by lechazo.home (Postfix, from userid 20848)
 id 0635260122; Wed, 29 Nov 2017 10:18:14 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Noam Postavsky <npostavs@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
Message-ID: <jwvefoh2jz4.fsf-monnier+emacsbugs@HIDDEN>
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN>
 <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <CAM-tV-8-hZRk+y6yRW5-E3eC0mA3__FVaD-Y_bormbs=ju7=+Q@HIDDEN>
 <87tvxef3ne.fsf@HIDDEN>
 <87d141nb58.fsf@HIDDEN>
Date: Wed, 29 Nov 2017 10:18:14 -0500
In-Reply-To: <87d141nb58.fsf@HIDDEN> (Noam Postavsky's message
 of "Tue, 28 Nov 2017 20:09:39 -0500")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-NAI-Spam-Flag: NO
X-NAI-Spam-Level: 
X-NAI-Spam-Threshold: 5
X-NAI-Spam-Score: 0.1
X-NAI-Spam-Rules: 3 Rules triggered
 GEN_SPAM_FEATRE=0.1, EDT_SA_DN_PASS=0, RV6169=0
X-NAI-Spam-Version: 2.3.0.9418 : core <6169> : inlines <6193> : streams
 <1771684> : uri <2542176>
X-Spam-Score: -1.4 (-)
X-Debbugs-Envelope-To: 29220
Cc: Eric Abrahamsen <eric@HIDDEN>, 29220 <at> debbugs.gnu.org,
 Pierre =?windows-1252?Q?T=E9choueyres?= <pierre.techoueyres@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.4 (-)

> 2. Change the class tag to something that will be easily readable, and
> round-trip as eq (i.e., some kind of symbol, like in Emacs 25 and
> earlier).

Note that this could be done on the print-side without changing the actual
object representation.


        Stefan




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 29 Nov 2017 15:13:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Nov 29 10:13:32 2017
Received: from localhost ([127.0.0.1]:37156 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eK43I-0000pJ-1B
	for submit <at> debbugs.gnu.org; Wed, 29 Nov 2017 10:13:32 -0500
Received: from pruche.dit.umontreal.ca ([132.204.246.22]:41191)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1eK43G-0000pB-3O
 for 29220 <at> debbugs.gnu.org; Wed, 29 Nov 2017 10:13:30 -0500
Received: from lechazo.home (lechon.iro.umontreal.ca [132.204.27.242])
 by pruche.dit.umontreal.ca (8.14.7/8.14.1) with ESMTP id vATFDT0b028976;
 Wed, 29 Nov 2017 10:13:29 -0500
Received: by lechazo.home (Postfix, from userid 20848)
 id D86A060122; Wed, 29 Nov 2017 10:15:28 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
Message-ID: <jwvk1y92kmx.fsf-monnier+emacsbugs@HIDDEN>
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN>
 <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <87shcycavk.fsf@HIDDEN>
Date: Wed, 29 Nov 2017 10:15:28 -0500
In-Reply-To: <87shcycavk.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Tue, 28 Nov 2017 14:10:55 -0800")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-NAI-Spam-Flag: NO
X-NAI-Spam-Threshold: 5
X-NAI-Spam-Score: 0
X-NAI-Spam-Rules: 2 Rules triggered
	EDT_SA_DN_PASS=0, RV6169=0
X-NAI-Spam-Version: 2.3.0.9418 : core <6169> : inlines <6193> : streams
 <1771684> : uri <2542175>
X-Spam-Score: -1.4 (-)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org, Noam Postavsky <npostavs@HIDDEN>,
 Pierre =?windows-1252?Q?T=E9choueyres?= <pierre.techoueyres@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.4 (-)

> That's exactly what Noam was saying! The implementation of objects
> changed from 25 to 26, and thus their printed representation also
> changed.

Indeed.  But the subject mentions "...eieio-persistent-read..." and
eieio-persistent was designed specifically to try and avoid dependence
on how Emacs represents EIEIO objects.  The problem here is that
eieio-persistent doesn't support hash-tables, so the EIEIO objects in
the hash-tables are printed with `princ` (i.e. in all their internal
glory) rather than going through eieio-persistent.

So I think the real fix here is to extend eieio-persistent with support
for hash-tables.

> The real problem isn't that objects written with 25 can't be read by 26
> (I don't think that kind of compatibility is guaranteed), but that
> objects written by 26 can't be read at all -- at least not when they're
> written internally, as members of other objects.

There are many different ways one might want to "print" objects,
depending on the intention:
- print for human consumption (i.e. eliding details to keep it concise).
  That's what cl-print aims for, for example (tho IIRC it doesn't
  support hash-tables either, so far).
- print in a way that can be read back in the future (possibly far
  future, where some details of the internal representation have
  changed).  This is what eieio-persistent aims for.
- print in a way that can be read back, preserving as many of the
  details as possible.  This is what `princ` aims for.  In the case of
  EIEIO objects, I'm not completely satisfied with the result in
  Emacs-26, but I think I'd rather live with it for now to get time to
  better understand the design space&constraints before we improve it.


-- Stefan




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 29 Nov 2017 01:09:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 28 20:09:49 2017
Received: from localhost ([127.0.0.1]:35358 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eJqsn-0002M9-6D
	for submit <at> debbugs.gnu.org; Tue, 28 Nov 2017 20:09:49 -0500
Received: from mail-io0-f180.google.com ([209.85.223.180]:34935)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <npostavs@HIDDEN>) id 1eJqsl-0002Lv-DW
 for 29220 <at> debbugs.gnu.org; Tue, 28 Nov 2017 20:09:47 -0500
Received: by mail-io0-f180.google.com with SMTP id q15so1989609ioh.2
 for <29220 <at> debbugs.gnu.org>; Tue, 28 Nov 2017 17:09:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=sender:from:to:cc:subject:references:date:in-reply-to:message-id
 :user-agent:mime-version:content-transfer-encoding;
 bh=ryxptad+SKUTYx0bD64fCy/OIXjH9GoDeND/HJ8ssGE=;
 b=DVhdshr/LQPDxOBc6tCJreBZHEWS5rS3N9MMxgRK21rnXWdZkUaRi/pszTUnJReRS2
 54hzgWzdid9FOa+uZd0+8fsyH0Fzk/UsWuuREjVuLLzPdVe2BHrlM0l3tNB4d3FSfSkg
 eiiM9/3fIKRBLWPIvkzg/axbWP4qFzd3UgjyM0YpwFBE7ld40s91Q0o0IaB5GlwUx3GO
 2cLCpWD+5IMiePigjmHMpdbQaTXo/1bJs8oosj7klhjSH22pDSK4N3D+lFbgBam226nz
 jd5Cw0aP0TDOa/M4013q/Ye16Muja0q+Rx18P91O+mPlF9oQWR+/63vPU9ObbTh8cTNm
 h55w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:sender:from:to:cc:subject:references:date
 :in-reply-to:message-id:user-agent:mime-version
 :content-transfer-encoding;
 bh=ryxptad+SKUTYx0bD64fCy/OIXjH9GoDeND/HJ8ssGE=;
 b=lglzeuBdJh4HW8wFeRCRSrfvME5Q8faFIw2kYG2GxSZNt8QShfxMyGxq7gZ8NC9YlV
 J84YLN6jrinRgmBP1EjCjnKm+INw5hhx+LJxZY0N69S5r5kJS17cI5ZWi+CMpaVKcgi9
 TeWH2YE2Q/cECJTsY5F7kPHS2kq7IiQCX/Jr0oaYpgdr+CQBg5zVq/rxh+qSIe00moCK
 +Bn009X8QK+3VnWPR0D4aLMLyGuhVxjBOOe5ZApecRs8JwTj0P/eoveFr/5UMCVYtHC3
 eKXATI/NNGn6j017MDdCqU4okSHPyaaWhXu5+mxi2OFrS6XRAVavWmpNvQn9rmr1ZJnD
 lJkg==
X-Gm-Message-State: AJaThX6OImV1zAGNho2+rjezMJQD2dx7doJeMSMxM48OXkIG45IECH6R
 5xCufkxdx02xxELOIBPc3N0=
X-Google-Smtp-Source: AGs4zMaCiXmhMu3qMT72KbQb69bE5J4FtFvGw1exvg1MvhzYHkDFq4pG1XSJ5oTjEc2/TWnzrN/UUg==
X-Received: by 10.107.144.195 with SMTP id s186mr1553295iod.64.1511917781771; 
 Tue, 28 Nov 2017 17:09:41 -0800 (PST)
Received: from zebian ([45.2.119.34])
 by smtp.googlemail.com with ESMTPSA id z19sm259600iof.53.2017.11.28.17.09.40
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Tue, 28 Nov 2017 17:09:40 -0800 (PST)
From: Noam Postavsky <npostavs@HIDDEN>
To: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN> <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN> <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN> <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <CAM-tV-8-hZRk+y6yRW5-E3eC0mA3__FVaD-Y_bormbs=ju7=+Q@HIDDEN>
 <87tvxef3ne.fsf@HIDDEN>
Date: Tue, 28 Nov 2017 20:09:39 -0500
In-Reply-To: <87tvxef3ne.fsf@HIDDEN> ("Pierre
 \=\?utf-8\?Q\?T\=C3\=A9choueyres\=22's\?\= message of "Tue,
 28 Nov 2017 23:18:45 +0100")
Message-ID: <87d141nb58.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 29220
Cc: Eric Abrahamsen <eric@HIDDEN>, 29220 <at> debbugs.gnu.org,
 Stefan Monnier <monnier@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.0 (/)

pierre.techoueyres@HIDDEN (Pierre T=C3=A9choueyres) writes:

> I try to understand how, from print_object, objects in the hash table
> are print.
> I expected something like
>
> prin1 -> print -> print_object -> something in lisp or C

The sequence is

prin1 -> print -> print_object -> print_vectorlike

print_vectorlike calls print_object on all of the keys and values of the
hashtable (see 'case PVEC_HASH_TABLE').

> I'm trying to make pcache work correctly with emacs 26.
> Now I understand that eieio--class and eieio--class-tag have changed,
> but I don't know if I can or how to correct the printing of objects in
> order to read them back with eieio-persistent-read.

I see 3 possibilities:

1. Make eieio persistent save stuff use cl-print to print the whole
thing readably (this requires major additions to cl-print, currently it
doesn't preserve readability except by just punting to prin1).

2. Change the class tag to something that will be easily readable, and
round-trip as eq (i.e., some kind of symbol, like in Emacs 25 and
earlier).

3. Change child-of-class-p to use `equal'ness instead of `eq'ness for
classes.  I think would require an `equal' that can handle circular
objects.

Looks like #2 would be the easiest to implement.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 28 Nov 2017 22:18:54 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 28 17:18:54 2017
Received: from localhost ([127.0.0.1]:35244 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eJoDO-0006ff-5B
	for submit <at> debbugs.gnu.org; Tue, 28 Nov 2017 17:18:54 -0500
Received: from smtp4-g21.free.fr ([212.27.42.4]:38778)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pierre.techoueyres@HIDDEN>) id 1eJoDL-0006fW-1K
 for 29220 <at> debbugs.gnu.org; Tue, 28 Nov 2017 17:18:52 -0500
Received: from killashandra.ballybran.fr.free.fr (unknown
 [IPv6:2a01:e35:2e14:eab0:b51f:3dc7:7e03:942])
 by smtp4-g21.free.fr (Postfix) with ESMTPS id A913419F591;
 Tue, 28 Nov 2017 23:18:45 +0100 (CET)
From: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
To: Noam Postavsky <npostavs@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN>
 <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
 <CAM-tV-8-hZRk+y6yRW5-E3eC0mA3__FVaD-Y_bormbs=ju7=+Q@HIDDEN>
Date: Tue, 28 Nov 2017 23:18:45 +0100
In-Reply-To: <CAM-tV-8-hZRk+y6yRW5-E3eC0mA3__FVaD-Y_bormbs=ju7=+Q@HIDDEN>
 (Noam Postavsky's message of "Tue, 28 Nov 2017 16:52:26 -0500")
Message-ID: <87tvxef3ne.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 29220
Cc: Eric Abrahamsen <eric@HIDDEN>, 29220 <at> debbugs.gnu.org,
 Stefan Monnier <monnier@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

Noam Postavsky <npostavs@HIDDEN> writes:

> On Tue, Nov 28, 2017 at 4:39 PM, Pierre T=C3=A9choueyres
> <pierre.techoueyres@HIDDEN> wrote:
>> Noam Postavsky <npostavs@HIDDEN> writes:
>>>> I've tried to dive into print.c but I don't understand how you return
>>>> from print_object, when you're on an hash-table to obtain the vector
>>>> with an eieio-class-tag--<class> (as in 25.3) ?
>>>>
>>>> Can anyone tell me how this work in 25.3 ?
>>>
>>> Nothing has changed in print.c in this respect.  In 25.3, objects are
>>> vectors, and class tags are symbols.  In 26, objects are records and
>>> class tags are eieio--class records.  As a result, they print
>>> differently.
>>
>> I trust you, but that's not the answer I expected, sorry.
>
> When you say "that's not the answer I expected", do you mean that my
> answer didn't sufficiently explain to you why things worked correctly
> in Emacs 25.3 and not in Emacs 26? Or do you mean that you would
> expect Emacs 26 to work differently (i.e., in a way that doesn't break
> things)?

Both and none of them :-)

I try to understand how, from print_object, objects in the hash table
are print.
I expected something like

prin1 -> print -> print_object -> something in lisp or C

I'm trying to make pcache work correctly with emacs 26.
Now I understand that eieio--class and eieio--class-tag have changed,
but I don't know if I can or how to correct the printing of objects in
order to read them back with eieio-persistent-read.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 28 Nov 2017 22:11:01 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 28 17:11:01 2017
Received: from localhost ([127.0.0.1]:35235 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eJo5l-0006Tu-1r
	for submit <at> debbugs.gnu.org; Tue, 28 Nov 2017 17:11:01 -0500
Received: from mail.ericabrahamsen.net ([50.56.99.223]:42000)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1eJo5i-0006Tl-Hd
 for 29220 <at> debbugs.gnu.org; Tue, 28 Nov 2017 17:10:58 -0500
Received: from localhost (71-212-22-173.tukw.qwest.net [71.212.22.173])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id D307EC03A9;
 Tue, 28 Nov 2017 22:10:56 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mail.ericabrahamsen.net; s=mail; t=1511907057;
 bh=rJI10+gyuSAFtFmiRBCgRJvZGfsNWXBvtNjf4+1J+Qc=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=noOCtrHSUtion4dYXjakQ6ScnDHcPmjFSLO9pALFyUWLmIA0nga1X0aqnwda4rp/0
 bWm37CXsaB//ndR3+GX88Vw9vJKs+QNR4UeKlAoNZgChaXdFLfna9QS1x5Z3UB2mOj
 g79TduK/ik5MjTFmeXmqZZo/vaFN7M5DsN8pH3SI=
From: Eric Abrahamsen <eric@HIDDEN>
To: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN>
 <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
Date: Tue, 28 Nov 2017 14:10:55 -0800
In-Reply-To: <87zi76f5hj.fsf@HIDDEN> ("Pierre
 =?utf-8?Q?T=C3=A9choueyres=22's?= message of "Tue, 28 Nov 2017 22:39:04
 +0100")
Message-ID: <87shcycavk.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>,
 Noam Postavsky <npostavs@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

pierre.techoueyres@HIDDEN (Pierre T=C3=A9choueyres) writes:

> Noam Postavsky <npostavs@HIDDEN> writes:
>>> I've tried to dive into print.c but I don't understand how you return
>>> from print_object, when you're on an hash-table to obtain the vector
>>> with an eieio-class-tag--<class> (as in 25.3) ?
>>>
>>> Can anyone tell me how this work in 25.3 ?
>>
>> Nothing has changed in print.c in this respect.  In 25.3, objects are
>> vectors, and class tags are symbols.  In 26, objects are records and
>> class tags are eieio--class records.  As a result, they print
>> differently.
>
> I trust you, but that's not the answer I expected, sorry.
> I tried to follow the trace from the call of `eieio-persistent-save'
> until I could find where it prints the content of the hash table.
>
> What bothers me is that, in emacs 25, you had have  an short vector with
> a symbol and now you've an big object dump instead.
>
> Emacs 25 :
> [eieio-class-tag--person "Bob"]
>
> Emacs 26 :
> #s(#2=3D#s(eieio--class person nil nil [#s(cl-slot-descriptor name
> #3=3D#:unbound string nil)] #s(hash-table size 65 test eq rehash-size
> 1.5 rehash-threshold 0.8125 data (name 0)) nil ((:name . name)) #1=3D[]
> #1# #s(#2# #3#) (:custom-groups nil)) "Bob")

That's exactly what Noam was saying! The implementation of objects
changed from 25 to 26, and thus their printed representation also
changed.

> As a side note: as class tags are now eieio--class objects you can't read
> an object saved with emacs 25 in emacs 26. Maybe this incompatibility
> should be documented into NEWS ?

The real problem isn't that objects written with 25 can't be read by 26
(I don't think that kind of compatibility is guaranteed), but that
objects written by 26 can't be read at all -- at least not when they're
written internally, as members of other objects.

Personally I'm not sure how to fix the problem, which is why we keep
cc'ing Stefan on these messages (ahem).

Eric




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 28 Nov 2017 21:52:35 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 28 16:52:35 2017
Received: from localhost ([127.0.0.1]:35231 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eJnnv-00063g-Bm
	for submit <at> debbugs.gnu.org; Tue, 28 Nov 2017 16:52:35 -0500
Received: from mail-wr0-f177.google.com ([209.85.128.177]:46500)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <npostavs@HIDDEN>) id 1eJnns-00063P-Jc
 for 29220 <at> debbugs.gnu.org; Tue, 28 Nov 2017 16:52:34 -0500
Received: by mail-wr0-f177.google.com with SMTP id x49so1494525wrb.13
 for <29220 <at> debbugs.gnu.org>; Tue, 28 Nov 2017 13:52:32 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:sender:in-reply-to:references:from:date:message-id
 :subject:to:cc:content-transfer-encoding;
 bh=OLtJtcBWGBEx7orAiSs/JLI5ZlzfANettDSxJh9+TC8=;
 b=eqI3WYXw/bBG2Scf8Bll0+0u6RUGtsapibXndYDBhUHhorG9e3Tf1Tlq7L1TPjXS7r
 xi//ohpJLf5Y33LiTJQmpPv3/ZKuz4Mb24rdfBmCQlPFV46E84Yjvyd2SL0cz9YcnTYx
 XlrcbnTRY/kfGdV3zeuF8rkx447OmacTyWLOcKtRD4IK40pApF8L0KfHublGNMkw2rFY
 0wysyw1bbVBjuP/arZoKank81ZJFbdezaC1Fg0+tykKHGYsoSSVSBJNlsbuQw+p3NvXV
 Tz8vytjpxG9A7k1sl4oArIdu70bmhM4Ke++PQr/Mk1+ge7YfHb3uahED/zKrtMaLfwBc
 0sHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:sender:in-reply-to:references:from
 :date:message-id:subject:to:cc:content-transfer-encoding;
 bh=OLtJtcBWGBEx7orAiSs/JLI5ZlzfANettDSxJh9+TC8=;
 b=sWUeO2fdJiuLQChL8fHXkp3sHC4TJ8oycbjo6b4PvKVXVz92MFYZUFqcna/p/W5/M0
 Ynok5v5I214HMSSzrRDCvUWe2BgrT+5PoBcqrmJKYqjzaR1gXQ907QOLRLsbEAkjAib1
 9rSb+HQ6CP8Z0FY04MJBoDInGBm0A8pGNe9lthCev4JYYUivgSuG+zEMCD/YenZQj6+N
 aGDcOT2mQWXfTsRsW7tjlQIY5Zj/xyts5XkCCJ+YpkqmdjdJYda02CgQZctYqnYFejkS
 B34a8D4Znrjtcsg5FDNi2kohfEbkskfsuuuDZA34tqvHCPYO1pSPivphUTOv4y0Ucdk4
 LuZA==
X-Gm-Message-State: AJaThX5xOSdtHrr48KglNNTp0R+78AIkmLivHaUPJ6Y6DZxxYa0ftKQN
 R6/88/ovA+i2W2KjrqUB2Q17PlYPuDztzXePTA0=
X-Google-Smtp-Source: AGs4zMalR9ig68grKOBEVXm5jJU5gun/nchRM1lVYTsf0oY4K3mpoX6oS8g4htgnosJ+G2lAiadRSaCP8eVk8D5DwvE=
X-Received: by 10.223.186.67 with SMTP id t3mr494685wrg.276.1511905946867;
 Tue, 28 Nov 2017 13:52:26 -0800 (PST)
MIME-Version: 1.0
Received: by 10.223.151.116 with HTTP; Tue, 28 Nov 2017 13:52:26 -0800 (PST)
In-Reply-To: <87zi76f5hj.fsf@HIDDEN>
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN> <8760aim2a5.fsf@HIDDEN>
 <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN> <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN> <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN> <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
 <87zi76f5hj.fsf@HIDDEN>
From: Noam Postavsky <npostavs@HIDDEN>
Date: Tue, 28 Nov 2017 16:52:26 -0500
X-Google-Sender-Auth: noFqJz3wt3zCCcH5uo9QY6E6Gvo
Message-ID: <CAM-tV-8-hZRk+y6yRW5-E3eC0mA3__FVaD-Y_bormbs=ju7=+Q@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
To: =?UTF-8?Q?Pierre_T=C3=A9choueyres?= <pierre.techoueyres@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 29220
Cc: Eric Abrahamsen <eric@HIDDEN>, 29220 <at> debbugs.gnu.org,
 Stefan Monnier <monnier@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.0 (/)

On Tue, Nov 28, 2017 at 4:39 PM, Pierre T=C3=A9choueyres
<pierre.techoueyres@HIDDEN> wrote:
> Noam Postavsky <npostavs@HIDDEN> writes:
>>> I've tried to dive into print.c but I don't understand how you return
>>> from print_object, when you're on an hash-table to obtain the vector
>>> with an eieio-class-tag--<class> (as in 25.3) ?
>>>
>>> Can anyone tell me how this work in 25.3 ?
>>
>> Nothing has changed in print.c in this respect.  In 25.3, objects are
>> vectors, and class tags are symbols.  In 26, objects are records and
>> class tags are eieio--class records.  As a result, they print
>> differently.
>
> I trust you, but that's not the answer I expected, sorry.

When you say "that's not the answer I expected", do you mean that my
answer didn't sufficiently explain to you why things worked correctly
in Emacs 25.3 and not in Emacs 26? Or do you mean that you would
expect Emacs 26 to work differently (i.e., in a way that doesn't break
things)?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 28 Nov 2017 21:39:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 28 16:39:14 2017
Received: from localhost ([127.0.0.1]:35213 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eJnb0-0005jr-9q
	for submit <at> debbugs.gnu.org; Tue, 28 Nov 2017 16:39:14 -0500
Received: from smtp4-g21.free.fr ([212.27.42.4]:6492)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pierre.techoueyres@HIDDEN>) id 1eJnay-0005jj-7D
 for 29220 <at> debbugs.gnu.org; Tue, 28 Nov 2017 16:39:12 -0500
Received: from killashandra.ballybran.fr.free.fr (unknown
 [IPv6:2a01:e35:2e14:eab0:b51f:3dc7:7e03:942])
 by smtp4-g21.free.fr (Postfix) with ESMTPS id DD8F119F5AF;
 Tue, 28 Nov 2017 22:39:04 +0100 (CET)
From: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
To: Noam Postavsky <npostavs@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN>
 <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
 <87h8tkzgef.fsf@HIDDEN>
Date: Tue, 28 Nov 2017 22:39:04 +0100
In-Reply-To: <87h8tkzgef.fsf@HIDDEN> (Noam Postavsky's message
 of "Thu, 23 Nov 2017 19:09:28 -0500")
Message-ID: <87zi76f5hj.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 29220
Cc: Eric Abrahamsen <eric@HIDDEN>, 29220 <at> debbugs.gnu.org,
 Stefan Monnier <monnier@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

Noam Postavsky <npostavs@HIDDEN> writes:
>> I've tried to dive into print.c but I don't understand how you return
>> from print_object, when you're on an hash-table to obtain the vector
>> with an eieio-class-tag--<class> (as in 25.3) ?
>>
>> Can anyone tell me how this work in 25.3 ?
>
> Nothing has changed in print.c in this respect.  In 25.3, objects are
> vectors, and class tags are symbols.  In 26, objects are records and
> class tags are eieio--class records.  As a result, they print
> differently.

I trust you, but that's not the answer I expected, sorry.
I tried to follow the trace from the call of `eieio-persistent-save'
until I could find where it prints the content of the hash table.

What bothers me is that, in emacs 25, you had have  an short vector with
a symbol and now you've an big object dump instead.

Emacs 25 :
[eieio-class-tag--person "Bob"]

Emacs 26 :
#s(#2=#s(eieio--class person nil nil [#s(cl-slot-descriptor name #3=#:unbound string nil)] #s(hash-table size 65 test eq rehash-size 1.5 rehash-threshold 0.8125 data (name 0)) nil ((:name . name)) #1=[] #1# #s(#2# #3#) (:custom-groups nil)) "Bob")

As a side note: as class tags are now eieio--class objects you can't read
an object saved with emacs 25 in emacs 26. Maybe this incompatibility
should be documented into NEWS ?

P.S.
I hope that I'm not too harsh. It's not my intention.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 24 Nov 2017 00:09:37 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Nov 23 19:09:37 2017
Received: from localhost ([127.0.0.1]:54393 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eI1Yn-0002K9-Ih
	for submit <at> debbugs.gnu.org; Thu, 23 Nov 2017 19:09:37 -0500
Received: from mail-it0-f49.google.com ([209.85.214.49]:45006)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <npostavs@HIDDEN>) id 1eI1Ym-0002Jy-2Z
 for 29220 <at> debbugs.gnu.org; Thu, 23 Nov 2017 19:09:36 -0500
Received: by mail-it0-f49.google.com with SMTP id b5so11649323itc.3
 for <29220 <at> debbugs.gnu.org>; Thu, 23 Nov 2017 16:09:36 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=sender:from:to:cc:subject:references:date:in-reply-to:message-id
 :user-agent:mime-version:content-transfer-encoding;
 bh=j1tb3uqFqRUF8Lgmqp1ahsiiQG8J4af/EilR3047HrY=;
 b=ijhB3UAVFC9Ax9t+3rqQRE9XnQWxRj3hfmz5xqYNCHivAT0myQgiaNT+iXgC1jvlGU
 Fe3mqtqHeYA2FqlUa3+cZi0HkVLI6L+7dl1S6MYnN3ZoZT15LsfXwqbE4qyjnqQQ5AVg
 T9ROhbGuQWvg+3gvRZRGgULmfLql6Z1TlvE6r9gtacS6XRciRrqPwfCMhZvCvng6oMC7
 QoeQqsxbIhO2uZbsl5T4HJKxQGjcNKMBBp04mC2LNFy/4LkmBo3zvsCmdi4H0+3hccKT
 Z5Or0Uuh6ETlWrwZQFXCC26F6Z83+geqrGrPi6yBb87O5b0Yy1Yv+G/i5Q4cxgy1Lma7
 KxSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:sender:from:to:cc:subject:references:date
 :in-reply-to:message-id:user-agent:mime-version
 :content-transfer-encoding;
 bh=j1tb3uqFqRUF8Lgmqp1ahsiiQG8J4af/EilR3047HrY=;
 b=EfV/5AspGg7a7LnFLuuRF6s0Jd5GShuRk5BcsWGoXtIZ2qMn4CbeV4fVG0GqRKwapG
 qVFR7dAk0OQelyDyvXKcILR8+hXaswSUZgZtEhPVVrVL04NddAXQLg+fir2bZgl+SV33
 l8zx9dduGQ9aibJoKLTHESgjdLclEqujk965oabvC6BfNuCByw+swsX8TcS2pJyuFGXl
 lP6J251YOVvA8oyuejsCVwzuoqyiCFOOc9nA5HH+iLBW1VuGgw9AX/jzJADhk7ZOqu2W
 4VFJzXSC7Hnej2bScBcZOsPE+C60n/oMFlnQJfuA5EfKiXpNbIZ/+nbnSTWvJa8Q8M1G
 vjHA==
X-Gm-Message-State: AJaThX7dW3bmcqd72PGywfru5WWn8Sp8HP8RY1SmWTDyPIABOTY/pSR8
 Mfx8mWLW8p7K0JkeLBgTT/0=
X-Google-Smtp-Source: AGs4zMZSPrhErfbm8Brr6wJcdJ8uk3FJlR4jSwBO32kvlGVyfKaI3bmj0x8yU1vvH7CzwYDts52VUA==
X-Received: by 10.36.253.73 with SMTP id m70mr13761335ith.49.1511482170682;
 Thu, 23 Nov 2017 16:09:30 -0800 (PST)
Received: from zebian ([45.2.119.34])
 by smtp.googlemail.com with ESMTPSA id g79sm3869575itb.29.2017.11.23.16.09.29
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Thu, 23 Nov 2017 16:09:29 -0800 (PST)
From: Noam Postavsky <npostavs@HIDDEN>
To: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN> <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN> <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN> <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
 <87zi7cpooo.fsf@HIDDEN>
Date: Thu, 23 Nov 2017 19:09:28 -0500
In-Reply-To: <87zi7cpooo.fsf@HIDDEN> ("Pierre
 \=\?utf-8\?Q\?T\=C3\=A9choueyres\=22's\?\= message of "Fri,
 24 Nov 2017 00:20:39 +0100")
Message-ID: <87h8tkzgef.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.1 (/)
X-Debbugs-Envelope-To: 29220
Cc: Eric Abrahamsen <eric@HIDDEN>, 29220 <at> debbugs.gnu.org,
 Stefan Monnier <monnier@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.1 (/)

pierre.techoueyres@HIDDEN (Pierre T=C3=A9choueyres) writes:

>> 25.3:
>> (eieio--object-class-tag bob) =3D> eieio-class-tag--person
>> 26:
>> (eieio--object-class-tag bob) =3D> #2=3D#s(eieio--class person nil nil
>> [#s(cl-slot-descriptor name unbound string nil)] #s(hash-table size 65
>> test eq rehash-size 1.5 rehash-threshold 0.8125 data (name 0)) nil
>> ((:name . name)) #1=3D[] #1# #s(#2# unbound) (:custom-groups nil))
>>
>> In Emacs 25 we have a simple symbol which will round-trip as an `eq'
>> object, in Emacs 26 we have a structure which will not (and furthermore
>> has some circularity, requiring print-circle to print readably).
>>
>
> I've tried to dive into print.c but I don't understand how you return
> from print_object, when you're on an hash-table to obtain the vector
> with an eieio-class-tag--<class> (as in 25.3) ?
>
> Can anyone tell me how this work in 25.3 ?

Nothing has changed in print.c in this respect.  In 25.3, objects are
vectors, and class tags are symbols.  In 26, objects are records and
class tags are eieio--class records.  As a result, they print
differently.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 23 Nov 2017 23:20:47 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Nov 23 18:20:47 2017
Received: from localhost ([127.0.0.1]:54315 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eI0nX-0007j3-En
	for submit <at> debbugs.gnu.org; Thu, 23 Nov 2017 18:20:47 -0500
Received: from smtp4-g21.free.fr ([212.27.42.4]:20412)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pierre.techoueyres@HIDDEN>) id 1eI0nW-0007iv-Er
 for 29220 <at> debbugs.gnu.org; Thu, 23 Nov 2017 18:20:46 -0500
Received: from killashandra.ballybran.fr.free.fr (unknown
 [IPv6:2a01:e35:2e14:eab0:b51f:3dc7:7e03:942])
 by smtp4-g21.free.fr (Postfix) with ESMTPS id A15E119F57E;
 Fri, 24 Nov 2017 00:20:40 +0100 (CET)
From: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
To: Noam Postavsky <npostavs@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN>
 <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
Date: Fri, 24 Nov 2017 00:20:39 +0100
In-Reply-To: <87bmjz0xez.fsf@HIDDEN> (Noam Postavsky's message
 of "Sat, 18 Nov 2017 22:17:40 -0500")
Message-ID: <87zi7cpooo.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 29220
Cc: Eric Abrahamsen <eric@HIDDEN>, 29220 <at> debbugs.gnu.org,
 Stefan Monnier <monnier@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

Noam Postavsky <npostavs@HIDDEN> writes:

> Eric Abrahamsen <eric@HIDDEN> writes:
>
>> (defclass person ()
>>   ((name :type string :initarg :name)))
>>
>> (defclass classy (eieio-persistent)
>>   ((teacher
>>     :type person
>>     :initarg :teacher)
>>    (students
>>     :initarg :students :initform (make-hash-table))))
>>
>> (setq jane (make-instance 'person :name "Jane"))
>> (setq bob (make-instance 'person :name "Bob"))
>>
>> (setq class (make-instance 'classy
>> 			   :teacher jane))
>> (puthash "Bob" bob (slot-value class 'students))
>
>> Jane is `read'-able, Bob isn't. `object-write' will recurse and use
>> `object-write' on any member objects, but the hashtable gets sent to
>> `prin1', which I assume uses `prin1' on all its values instead:
>
> Yes, but this is the case in emacs-25 as well.  The significant
> difference seems to be in the class object:
>
> 25.3:
> (eieio--object-class-tag bob) => eieio-class-tag--person
> 26:
> (eieio--object-class-tag bob) => #2=#s(eieio--class person nil nil
> [#s(cl-slot-descriptor name unbound string nil)] #s(hash-table size 65
> test eq rehash-size 1.5 rehash-threshold 0.8125 data (name 0)) nil
> ((:name . name)) #1=[] #1# #s(#2# unbound) (:custom-groups nil))
>
> In Emacs 25 we have a simple symbol which will round-trip as an `eq'
> object, in Emacs 26 we have a structure which will not (and furthermore
> has some circularity, requiring print-circle to print readably).
>

I've tried to dive into print.c but I don't understand how you return
from print_object, when you're on an hash-table to obtain the vector
with an eieio-class-tag--<class> (as in 25.3) ?

Can anyone tell me how this work in 25.3 ?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 19 Nov 2017 05:59:54 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Nov 19 00:59:54 2017
Received: from localhost ([127.0.0.1]:46724 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eGIe2-0008OW-9f
	for submit <at> debbugs.gnu.org; Sun, 19 Nov 2017 00:59:54 -0500
Received: from eggs.gnu.org ([208.118.235.92]:43172)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eGIdz-0008OD-Vn
 for submit <at> debbugs.gnu.org; Sun, 19 Nov 2017 00:59:52 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eGIdt-0000Sz-TC
 for submit <at> debbugs.gnu.org; Sun, 19 Nov 2017 00:59:46 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20 autolearn=disabled
 version=3.3.2
Received: from lists.gnu.org ([2001:4830:134:3::11]:58928)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
 (Exim 4.71) (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1eGIdt-0000St-Qc
 for submit <at> debbugs.gnu.org; Sun, 19 Nov 2017 00:59:45 -0500
Received: from eggs.gnu.org ([2001:4830:134:3::10]:34139)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eGIds-00083D-LM
 for bug-gnu-emacs@HIDDEN; Sun, 19 Nov 2017 00:59:45 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eGIdp-0000RK-Km
 for bug-gnu-emacs@HIDDEN; Sun, 19 Nov 2017 00:59:44 -0500
Received: from [195.159.176.226] (port=49353 helo=blaine.gmane.org)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)
 (Exim 4.71) (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1eGIdp-0000QO-EO
 for bug-gnu-emacs@HIDDEN; Sun, 19 Nov 2017 00:59:41 -0500
Received: from list by blaine.gmane.org with local (Exim 4.84_2)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eGIde-0005Sp-Aa
 for bug-gnu-emacs@HIDDEN; Sun, 19 Nov 2017 06:59:30 +0100
X-Injected-Via-Gmane: http://gmane.org/
To: bug-gnu-emacs@HIDDEN
From: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
Date: Sat, 18 Nov 2017 21:57:45 -0800
Lines: 43
Message-ID: <87vai6yfmu.fsf@HIDDEN>
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN>
 <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
 <87h8trzc6e.fsf@HIDDEN>
 <87bmjz0xez.fsf@HIDDEN>
Mime-Version: 1.0
Content-Type: text/plain
X-Complaints-To: usenet@HIDDEN
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
Cancel-Lock: sha1:EIXqJmBEseATbRbzJiMZ3hzGsTk=
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
 [fuzzy]
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-Received-From: 2001:4830:134:3::11
X-Spam-Score: -5.0 (-----)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -5.0 (-----)

Noam Postavsky <npostavs@HIDDEN> writes:

> Eric Abrahamsen <eric@HIDDEN> writes:
>
>> (defclass person ()
>>   ((name :type string :initarg :name)))
>>
>> (defclass classy (eieio-persistent)
>>   ((teacher
>>     :type person
>>     :initarg :teacher)
>>    (students
>>     :initarg :students :initform (make-hash-table))))
>>
>> (setq jane (make-instance 'person :name "Jane"))
>> (setq bob (make-instance 'person :name "Bob"))
>>
>> (setq class (make-instance 'classy
>> 			   :teacher jane))
>> (puthash "Bob" bob (slot-value class 'students))
>
>> Jane is `read'-able, Bob isn't. `object-write' will recurse and use
>> `object-write' on any member objects, but the hashtable gets sent to
>> `prin1', which I assume uses `prin1' on all its values instead:
>
> Yes, but this is the case in emacs-25 as well.  The significant
> difference seems to be in the class object:
>
> 25.3:
> (eieio--object-class-tag bob) => eieio-class-tag--person
> 26:
> (eieio--object-class-tag bob) => #2=#s(eieio--class person nil nil
> [#s(cl-slot-descriptor name unbound string nil)] #s(hash-table size 65
> test eq rehash-size 1.5 rehash-threshold 0.8125 data (name 0)) nil
> ((:name . name)) #1=[] #1# #s(#2# unbound) (:custom-groups nil))
>
> In Emacs 25 we have a simple symbol which will round-trip as an `eq'
> object, in Emacs 26 we have a structure which will not (and furthermore
> has some circularity, requiring print-circle to print readably).

Yup, I sure noticed that change when it happened -- it made the already
verbose object representations well-nigh unreadable. Looks like it was
8e6f204f44b. I don't know what the right solution is.





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 19 Nov 2017 03:17:50 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Nov 18 22:17:50 2017
Received: from localhost ([127.0.0.1]:46689 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eGG7C-0004bh-As
	for submit <at> debbugs.gnu.org; Sat, 18 Nov 2017 22:17:50 -0500
Received: from mail-it0-f47.google.com ([209.85.214.47]:35730)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <npostavs@HIDDEN>) id 1eGG7B-0004bU-5Q
 for 29220 <at> debbugs.gnu.org; Sat, 18 Nov 2017 22:17:49 -0500
Received: by mail-it0-f47.google.com with SMTP id u132so8321799ita.0
 for <29220 <at> debbugs.gnu.org>; Sat, 18 Nov 2017 19:17:49 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=sender:from:to:cc:subject:references:date:in-reply-to:message-id
 :user-agent:mime-version;
 bh=+N20hpP+48WqXwSQ533Tjgk4BYSk7RZx0ER1FBX95io=;
 b=B3Y82jZOY7SmHMtSJM/nMJcMBDuNBap09jyxgHHmhv7ZPQYTrDNh3zgtg26ANA8knx
 ub1MAj7gvAUzVfT2bZjpBJAfxoXkJLQVPQPYh0j/e1Dwf6m/5LNgP7swW6GXig7q17wG
 aB0BHNXqCKQfNT8nJKQ39BTQdP8APbB/oRy2qAh63C300utKcUNHQPzTf2f71mQIQe9k
 jh2kKjDUfdRyEmc7TliIVvNoAC+zC9xtsHJCEFN9BmMbYMHj54psRSjKQsOIcbd7wt5F
 tIppKRvX2srtSXWb/l+Ag4Z8GDFyC9CRn660VT9sFCVzWjYj2hpEQMkVySrmHMUtzThK
 dyfA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:sender:from:to:cc:subject:references:date
 :in-reply-to:message-id:user-agent:mime-version;
 bh=+N20hpP+48WqXwSQ533Tjgk4BYSk7RZx0ER1FBX95io=;
 b=VG56mTAw2hFH5QiwVkEgHLCiSaibVCCbogSEFYQt/30lllfRNkm/pWC/jqgEwINIfw
 1vfdEf4REWQVWC2Kg5ezGxVnOYD5B0Uzhw93OMomRieSGfmlDayeDpbVZ0KG2HM71g41
 5zhtnXCybdNqO0Hl/NqzXjV16thkJUNgx4lqP6IhYcFgi2WgjN1SK9sVl9itTu/wqbpK
 Vajcs5AZ16TfgrSKCmr44MbTLDSdSIGT6JJ9rFGLLKit/z+ozdJx33qjQYKr4taPRoXc
 xWY4fLkkkiEHBJzzyx20ejq4rod1MzLOUCGbh2RQSVOvHddklDAjwJL3xYQsVFNGPz1A
 QqUA==
X-Gm-Message-State: AJaThX7SsstQlRwIFv/AWP72xK1dG8/u0yPtu9Gh1mlgikO+E4M1x0xw
 UCstqgDr20P6l0NlvNrcIOU4Zw==
X-Google-Smtp-Source: AGs4zMYb6exgrKP6ZNENtpY1bBHEF0hSDuAvPpf+5Ouvi013q7+VZ92UfS8iQnOYi/Ifxh5gS3JZhw==
X-Received: by 10.36.4.72 with SMTP id 69mr12753975itb.33.1511061463146;
 Sat, 18 Nov 2017 19:17:43 -0800 (PST)
Received: from zebian ([45.2.119.34])
 by smtp.googlemail.com with ESMTPSA id v198sm1084305ita.4.2017.11.18.19.17.41
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Sat, 18 Nov 2017 19:17:41 -0800 (PST)
From: Noam Postavsky <npostavs@HIDDEN>
To: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN> <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN> <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN> <87h8trzc6e.fsf@HIDDEN>
Date: Sat, 18 Nov 2017 22:17:40 -0500
In-Reply-To: <87h8trzc6e.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Sat, 18 Nov 2017 10:14:49 -0800")
Message-ID: <87bmjz0xez.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.7 (/)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.7 (/)

Eric Abrahamsen <eric@HIDDEN> writes:

> (defclass person ()
>   ((name :type string :initarg :name)))
>
> (defclass classy (eieio-persistent)
>   ((teacher
>     :type person
>     :initarg :teacher)
>    (students
>     :initarg :students :initform (make-hash-table))))
>
> (setq jane (make-instance 'person :name "Jane"))
> (setq bob (make-instance 'person :name "Bob"))
>
> (setq class (make-instance 'classy
> 			   :teacher jane))
> (puthash "Bob" bob (slot-value class 'students))

> Jane is `read'-able, Bob isn't. `object-write' will recurse and use
> `object-write' on any member objects, but the hashtable gets sent to
> `prin1', which I assume uses `prin1' on all its values instead:

Yes, but this is the case in emacs-25 as well.  The significant
difference seems to be in the class object:

25.3:
(eieio--object-class-tag bob) => eieio-class-tag--person
26:
(eieio--object-class-tag bob) => #2=#s(eieio--class person nil nil [#s(cl-slot-descriptor name unbound string nil)] #s(hash-table size 65 test eq rehash-size 1.5 rehash-threshold 0.8125 data (name 0)) nil ((:name . name)) #1=[] #1# #s(#2# unbound) (:custom-groups nil))

In Emacs 25 we have a simple symbol which will round-trip as an `eq'
object, in Emacs 26 we have a structure which will not (and furthermore
has some circularity, requiring print-circle to print readably).





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 18 Nov 2017 18:16:37 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Nov 18 13:16:37 2017
Received: from localhost ([127.0.0.1]:46546 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eG7fR-0006qY-H3
	for submit <at> debbugs.gnu.org; Sat, 18 Nov 2017 13:16:37 -0500
Received: from mail.ericabrahamsen.net ([50.56.99.223]:56892)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eric@HIDDEN>) id 1eG7fQ-0006qQ-7Y
 for 29220 <at> debbugs.gnu.org; Sat, 18 Nov 2017 13:16:36 -0500
Received: from localhost (71-212-22-173.tukw.qwest.net [71.212.22.173])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 (Authenticated sender: eric@HIDDEN)
 by mail.ericabrahamsen.net (Postfix) with ESMTPSA id B5F9EC018D;
 Sat, 18 Nov 2017 18:16:34 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mail.ericabrahamsen.net; s=mail; t=1511028994;
 bh=sZR9ev7mGENhaoFsyp7P03g9DTUz3yo9kLGrgHBVxHg=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=PPxlgoWmaEmKXsEP5DitEhyzZDalpCcpZd/mUa0s1Acxqdc12e2D7+f6fRCUTVgVh
 8pXxREvFxezBY/UB6vUTwvR1abyGLJCwcO776sjC9+fEKDDTXkB3pttyb/vN+bcVV1
 j/IVeDtWKIDayzzcJWKTpzM2kMFUB34jXEoVQ5No=
From: Eric Abrahamsen <eric@HIDDEN>
To: Noam Postavsky <npostavs@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN>
 <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
 <87zi7kyzcf.fsf@HIDDEN>
 <87efov1zzn.fsf@HIDDEN>
Date: Sat, 18 Nov 2017 10:14:49 -0800
In-Reply-To: <87efov1zzn.fsf@HIDDEN> (Noam Postavsky's message
 of "Sat, 18 Nov 2017 08:24:28 -0500")
Message-ID: <87h8trzc6e.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

Noam Postavsky <npostavs@HIDDEN> writes:

> Eric Abrahamsen <eric@HIDDEN> writes:
>
>> (Are you guys looking at a different version of the pcache repo? The one
>> on Github uses `constructor', not `make-instance'.)
>
> The version mentioned in #23:
>
>     I've put an branch (pte/emacs-26) on github
>     (https://github.com/PierreTechoueyres/pcache.git) with some tests that
>     you can launch with

Oops, I missed that.

[...]

>> But I still think the problem isn't in reading, it's in writing: the
>> entries in the hash table are being written incorrectly, and so this
>> validation step is exploding.
>
> Yes, the way structs and classes are encoded in emacs-26 changed, so the
> way they're written changed also.  It seems the round-tripping loses the
> class/type maybe?  I can still see the '44' entry in the hash table, so
> the hash table itself is still in there...

Here's what I think is going on:

(defclass person ()
  ((name :type string :initarg :name)))

(defclass classy (eieio-persistent)
  ((teacher
    :type person
    :initarg :teacher)
   (students
    :initarg :students :initform (make-hash-table))))

(setq jane (make-instance 'person :name "Jane"))
(setq bob (make-instance 'person :name "Bob"))

(setq class (make-instance 'classy
			   :teacher jane))
(puthash "Bob" bob (slot-value class 'students))

(object-write class) =>
(classy "classy-52080cc"
  :teacher
  (person "person-52080c4"
    :name "Jane")
  :students #s(hash-table size 65 test eql rehash-size 1.5
  rehash-threshold 0.8125 data ("Bob" #s(#s(eieio--class person nil nil
  [#s(cl-slot-descriptor name unbound string nil)] #s(hash-table size 65
  test eq rehash-size 1.5 rehash-threshold 0.8125 data (name 0)) nil
  ((:name . name)) [] [] #s(#2 unbound) (:custom-groups nil)) "Bob"))))

Jane is `read'-able, Bob isn't. `object-write' will recurse and use
`object-write' on any member objects, but the hashtable gets sent to
`prin1', which I assume uses `prin1' on all its values instead:

(object-write bob) =>
(person "person-482ca1c" :name "Bob")

(prin1 bob) =>
#s(#s(eieio--class person nil nil [#s(cl-slot-descriptor
name unbound string nil)] #s(hash-table size 65 test eq rehash-size 1.5
rehash-threshold 0.8125 data (name 0 ...)) nil ((:name . name)) [] []
#s(#1 unbound) (:custom-groups nil)) "Bob")

And I see I have yet again screwed up the changes to `object-write' in
master; off to fix that now.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 18 Nov 2017 13:24:40 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Nov 18 08:24:40 2017
Received: from localhost ([127.0.0.1]:45647 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eG36u-0006cr-28
	for submit <at> debbugs.gnu.org; Sat, 18 Nov 2017 08:24:40 -0500
Received: from mail-io0-f173.google.com ([209.85.223.173]:36918)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <npostavs@HIDDEN>) id 1eG36r-0006cb-11
 for 29220 <at> debbugs.gnu.org; Sat, 18 Nov 2017 08:24:37 -0500
Received: by mail-io0-f173.google.com with SMTP id v21so11508002ioi.4
 for <29220 <at> debbugs.gnu.org>; Sat, 18 Nov 2017 05:24:36 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=sender:from:to:cc:subject:references:date:in-reply-to:message-id
 :user-agent:mime-version;
 bh=825OsyZnR4fv9Sl8O2gfAOx14M+OYxVOhOOjcZuQ15g=;
 b=XoyKfUDaAINwjmQCgcyQF41cNz615LWbNLJBqe7ZyFiM43Ifqhqeb1EgQbD5DAK7bR
 f7cL4dKYhaZ4K/ikbUxdf6s0qShDii+IxWnfXB4DHbBu4nonUS9Iac8tal3c1r2Kilht
 VlCVs3GvmLWOW1gagfPJiyzNAC6NYrvBtWhzEvI2wmx+lol4nH484KvVXgDLY0Atrp5h
 oCQornI8H2L8XNwnMZmp+djHAicErzUK+R296C+WDIPJB6AIZSGN9n0mKd8N2YmTLeyX
 JBKfFpGPHTg9YXKfebjDGlbevUGzqHGYP6+hzLCBee3Eo5/j/GagMqsd+KzCuvzJCHP6
 ayTw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:sender:from:to:cc:subject:references:date
 :in-reply-to:message-id:user-agent:mime-version;
 bh=825OsyZnR4fv9Sl8O2gfAOx14M+OYxVOhOOjcZuQ15g=;
 b=OUhGZEgmiYxr0uKayBwwArmWqoMSr1IXqrbSwApobcDYIa0l11Hnq99YK3fuCg8A01
 D3+ywpBslGypGma8shEkb+OmNPIBp+ESyAS5gZtgk+tG4W9zVcWj8Y+63JisecNerzkW
 mrD0N9yDa9OzuCw+M89hKCJoSNr2aKjuWTTKPbwOfLLV5mgotRQavFYTzbJJT8JIpBK9
 IqZSkzEE2jpkL3c2aI+DusubIk0A4D+T6sANjZmD3tSOzfV+cL4vss4Ihc1Vmy99/EV4
 zYLEsdVJ4JWYfrNw9opsbF/ML8JRF3p2Q/XZMJhePH2Sz03hp9zui0eTY11yROR1aJ2O
 pHXQ==
X-Gm-Message-State: AJaThX4WjgkQF7wYtwt47gjLf5hapH24zLQTiM412TE7qucQ8IPDz7Tb
 QhI8KaLKDSL9uUcq/aXa2U2Llw==
X-Google-Smtp-Source: AGs4zMaviwKspx6N5sDMNcuxYEfFbYW2xnd2roCoAGU94l2Z/Y2QMliDsqWDlqI+PwcXWrylqa4eEA==
X-Received: by 10.107.138.73 with SMTP id m70mr4336816iod.140.1511011471204;
 Sat, 18 Nov 2017 05:24:31 -0800 (PST)
Received: from zebian ([45.2.119.34])
 by smtp.googlemail.com with ESMTPSA id i133sm491589itf.1.2017.11.18.05.24.29
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Sat, 18 Nov 2017 05:24:29 -0800 (PST)
From: Noam Postavsky <npostavs@HIDDEN>
To: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN> <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN> <87zi7kyzcf.fsf@HIDDEN>
Date: Sat, 18 Nov 2017 08:24:28 -0500
In-Reply-To: <87zi7kyzcf.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Fri, 17 Nov 2017 20:39:44 -0800")
Message-ID: <87efov1zzn.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.6 (--)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.6 (--)

Eric Abrahamsen <eric@HIDDEN> writes:

> (Are you guys looking at a different version of the pcache repo? The one
> on Github uses `constructor', not `make-instance'.)

The version mentioned in #23:

    I've put an branch (pte/emacs-26) on github
    (https://github.com/PierreTechoueyres/pcache.git) with some tests that
    you can launch with

> The call to `eieio-persistent-read' does basic slot value validation,
> but this function is additionally checking that all of the entries in
> the hash table are of the proper class, that specified in the
> `entry-cls' slot.
>
> But I still think the problem isn't in reading, it's in writing: the
> entries in the hash table are being written incorrectly, and so this
> validation step is exploding.

Yes, the way structs and classes are encoded in emacs-26 changed, so the
way they're written changed also.  It seems the round-tripping loses the
class/type maybe?  I can still see the '44' entry in the hash table, so
the hash table itself is still in there...

> I sure don't know why setting `print-circle' to t would have solved it,
> though...

Setting print-circle only lets the read work without error, the read
object still fails the pcache validation.






Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 18 Nov 2017 04:42:05 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Nov 17 23:42:05 2017
Received: from localhost ([127.0.0.1]:45483 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eFux9-0000Ee-Hk
	for submit <at> debbugs.gnu.org; Fri, 17 Nov 2017 23:42:05 -0500
Received: from eggs.gnu.org ([208.118.235.92]:43738)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eFux7-0000EA-TC
 for submit <at> debbugs.gnu.org; Fri, 17 Nov 2017 23:42:02 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eFux1-0004iM-Ga
 for submit <at> debbugs.gnu.org; Fri, 17 Nov 2017 23:41:56 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_40 autolearn=disabled
 version=3.3.2
Received: from lists.gnu.org ([2001:4830:134:3::11]:47512)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
 (Exim 4.71) (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1eFux1-0004hz-DL
 for submit <at> debbugs.gnu.org; Fri, 17 Nov 2017 23:41:55 -0500
Received: from eggs.gnu.org ([2001:4830:134:3::10]:34703)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eFuwz-0006mE-Sh
 for bug-gnu-emacs@HIDDEN; Fri, 17 Nov 2017 23:41:55 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eFuwu-0004YD-SB
 for bug-gnu-emacs@HIDDEN; Fri, 17 Nov 2017 23:41:53 -0500
Received: from [195.159.176.226] (port=36920 helo=blaine.gmane.org)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)
 (Exim 4.71) (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1eFuwu-0004Ww-Kg
 for bug-gnu-emacs@HIDDEN; Fri, 17 Nov 2017 23:41:48 -0500
Received: from list by blaine.gmane.org with local (Exim 4.84_2)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eFuwc-0005f6-Dh
 for bug-gnu-emacs@HIDDEN; Sat, 18 Nov 2017 05:41:30 +0100
X-Injected-Via-Gmane: http://gmane.org/
To: bug-gnu-emacs@HIDDEN
From: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
Date: Fri, 17 Nov 2017 20:39:44 -0800
Lines: 50
Message-ID: <87zi7kyzcf.fsf@HIDDEN>
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN>
 <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <87h8ts1cfp.fsf@HIDDEN>
Mime-Version: 1.0
Content-Type: text/plain
X-Complaints-To: usenet@HIDDEN
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
Cancel-Lock: sha1:VlzTCrzu+PgX2ntfzOWqe+DGNOM=
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
 [fuzzy]
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-Received-From: 2001:4830:134:3::11
X-Spam-Score: -5.0 (-----)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -5.0 (-----)

Noam Postavsky <npostavs@HIDDEN> writes:

> Noam Postavsky <npostavs@HIDDEN> writes:
>
>> When I set a breakpoint in eieio-persistent-read, the object being seems
>> correct.  If I evaluate (pcache-get ret 'foo) in edebug, I get 44, as
>> expected.  But somehow the object which gets returned from
>> (pcache-repository :object-name #1="pcache-test/tmp2") doesn't have
>> anything in its hash table.
>
> Okay, I found where the problem is, it's failing pcache-validate-repo
> (what's the idea behind throwing an error which is caught and ignored
> anyway?):
>
>     (cl-defmethod make-instance ((cache (subclass pcache-repository)) &rest args)
>       ...
>                  (condition-case nil
>                      (let* ((obj (eieio-persistent-read path 'pcache-repository)))
>                        (and (or (pcache-validate-repo obj)
>                                 (error "wrong version")) ...
>                    (error nil)))

(Are you guys looking at a different version of the pcache repo? The one
on Github uses `constructor', not `make-instance'.)

> Specifically, this part:
>
>     (defun pcache-validate-repo (cache)
>        ...
>        (cl-every
>         (lambda (entry)
>           (and (object-of-class-p entry (slot-value cache 'entry-cls))
>                ...
>         (pcache-hash-table-values (slot-value cache 'entries)))))
>
> I can't really tell what this function is supposed to be checking.

The call to `eieio-persistent-read' does basic slot value validation,
but this function is additionally checking that all of the entries in
the hash table are of the proper class, that specified in the
`entry-cls' slot.

But I still think the problem isn't in reading, it's in writing: the
entries in the hash table are being written incorrectly, and so this
validation step is exploding.

I sure don't know why setting `print-circle' to t would have solved it,
though...

Eric





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 18 Nov 2017 03:41:08 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Nov 17 22:41:08 2017
Received: from localhost ([127.0.0.1]:45471 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eFu0C-0007JS-L9
	for submit <at> debbugs.gnu.org; Fri, 17 Nov 2017 22:41:08 -0500
Received: from mail-io0-f172.google.com ([209.85.223.172]:36250)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <npostavs@HIDDEN>) id 1eFu0A-0007Ir-G5
 for 29220 <at> debbugs.gnu.org; Fri, 17 Nov 2017 22:41:07 -0500
Received: by mail-io0-f172.google.com with SMTP id 79so3172743ioi.3
 for <29220 <at> debbugs.gnu.org>; Fri, 17 Nov 2017 19:41:06 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=sender:from:to:cc:subject:references:date:in-reply-to:message-id
 :user-agent:mime-version;
 bh=QVtz8Zb7NcIK2l0owN95VlUpC0aJGKSlHJAglhiZZao=;
 b=fKdPk8as16BDDgWXHSFAZ/VwmFbIfb33QfhTGIXIEcZayLV4ovqF/bgflw1FQXOL37
 E5GcMdM+E8E+kIpa5mRQ5MKFnhErq3P+QxcOd9fl6D2Rk9+UvKEn/yAEzYBQ4T8/+7eO
 01EW2Zrjsc83G1ffYUi9jEj6l7z+S7pKbQhThMkZ1YAgwmVOyjRi6tI5wpnBos50lsO6
 Dc8QuywbXIskVkogkxd4kpr5DCe2jkYjQ0/Tq7n3XwFpEnNiM74gbycg7e1kgsrQW7kg
 OQ2WvZ7eI6CGUaTD9Ek8LPQtKPELjzIo+htLInojiz5U6qDgXT3o8gzpH83104Y4SVrM
 oSRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:sender:from:to:cc:subject:references:date
 :in-reply-to:message-id:user-agent:mime-version;
 bh=QVtz8Zb7NcIK2l0owN95VlUpC0aJGKSlHJAglhiZZao=;
 b=L84EFPCU/jMXUYZYOT0ipEL8He1z8LpJ5AX51DTgBPMuEMw1EGfdHQNoZ1/I/xQjne
 ig0gCoWls7AiGED/a5AdPqcK5zbyOJd8fwkzvLos9N0rxgh8PYHIqI+bc5wJ+BHS/XY+
 K16XmpRAC4L6vCQAGM3+dRpjFiWtIZGAZpOwTho5MfpATmm/INSYD7jH1s5Kl6QNOXfV
 2SX5aW6nA5jSFKXXAzsazYHaq1GCNPp24fbgpvNPduTr4Cv0UNMH2i2xFkJQ+6lgKMrX
 hUZ0Iv184/j8/olxUoVrmmHE0glKrEreY6A7HM9/PiOE0NQ3ONFa4PtWr5c8SWpuGSNT
 nerg==
X-Gm-Message-State: AJaThX7P6W997IyKZQkdWxip+q4GnMWfNrzMzCRPJFPLpLA6q6lIrm0j
 v4JSxMT3vRrmtCYopIFXui8=
X-Google-Smtp-Source: AGs4zMbpn7Nx8veUFoe1dZQwbGkpzbpu2vas+02ATQM6jQCL9d70quI790OdCGGbAwH4+nl9DZEN7A==
X-Received: by 10.107.181.67 with SMTP id e64mr5233100iof.211.1510976460723;
 Fri, 17 Nov 2017 19:41:00 -0800 (PST)
Received: from zebian ([45.2.119.34])
 by smtp.googlemail.com with ESMTPSA id i76sm2718697ita.21.2017.11.17.19.40.58
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Fri, 17 Nov 2017 19:40:59 -0800 (PST)
From: Noam Postavsky <npostavs@HIDDEN>
To: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN> <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
Date: Fri, 17 Nov 2017 22:40:58 -0500
In-Reply-To: <87y3n81eq7.fsf@HIDDEN> (Noam Postavsky's message
 of "Tue, 14 Nov 2017 21:02:24 -0500")
Message-ID: <87h8ts1cfp.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.1 (--)
X-Debbugs-Envelope-To: 29220
Cc: Eric Abrahamsen <eric@HIDDEN>, 29220 <at> debbugs.gnu.org,
 Stefan Monnier <monnier@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.1 (--)

Noam Postavsky <npostavs@HIDDEN> writes:

> When I set a breakpoint in eieio-persistent-read, the object being seems
> correct.  If I evaluate (pcache-get ret 'foo) in edebug, I get 44, as
> expected.  But somehow the object which gets returned from
> (pcache-repository :object-name #1="pcache-test/tmp2") doesn't have
> anything in its hash table.

Okay, I found where the problem is, it's failing pcache-validate-repo
(what's the idea behind throwing an error which is caught and ignored
anyway?):

    (cl-defmethod make-instance ((cache (subclass pcache-repository)) &rest args)
      ...
                 (condition-case nil
                     (let* ((obj (eieio-persistent-read path 'pcache-repository)))
                       (and (or (pcache-validate-repo obj)
                                (error "wrong version")) ...
                   (error nil)))

Specifically, this part:

    (defun pcache-validate-repo (cache)
       ...
       (cl-every
        (lambda (entry)
          (and (object-of-class-p entry (slot-value cache 'entry-cls))
               ...
        (pcache-hash-table-values (slot-value cache 'entries)))))

I can't really tell what this function is supposed to be checking.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 17 Nov 2017 20:45:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Nov 17 15:45:34 2017
Received: from localhost ([127.0.0.1]:45364 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eFnW2-0002je-EA
	for submit <at> debbugs.gnu.org; Fri, 17 Nov 2017 15:45:34 -0500
Received: from eggs.gnu.org ([208.118.235.92]:49075)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eFnW0-0002jR-20
 for submit <at> debbugs.gnu.org; Fri, 17 Nov 2017 15:45:33 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eFnVu-0001mO-64
 for submit <at> debbugs.gnu.org; Fri, 17 Nov 2017 15:45:26 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM
 autolearn=disabled version=3.3.2
Received: from lists.gnu.org ([2001:4830:134:3::11]:50416)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
 (Exim 4.71) (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1eFnVu-0001mB-2B
 for submit <at> debbugs.gnu.org; Fri, 17 Nov 2017 15:45:26 -0500
Received: from eggs.gnu.org ([2001:4830:134:3::10]:40040)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eFnVs-0005oM-VD
 for bug-gnu-emacs@HIDDEN; Fri, 17 Nov 2017 15:45:25 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eFnVo-0001e1-6G
 for bug-gnu-emacs@HIDDEN; Fri, 17 Nov 2017 15:45:24 -0500
Received: from [195.159.176.226] (port=39143 helo=blaine.gmane.org)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)
 (Exim 4.71) (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1eFnVn-0001a0-Im
 for bug-gnu-emacs@HIDDEN; Fri, 17 Nov 2017 15:45:20 -0500
Received: from list by blaine.gmane.org with local (Exim 4.84_2)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eFnVX-0000Rg-OH
 for bug-gnu-emacs@HIDDEN; Fri, 17 Nov 2017 21:45:03 +0100
X-Injected-Via-Gmane: http://gmane.org/
To: bug-gnu-emacs@HIDDEN
From: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
Date: Fri, 17 Nov 2017 20:56:11 +0100
Lines: 25
Message-ID: <87ine8brxg.fsf@HIDDEN>
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN>
 <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
 <jwvmv3nsgt7.fsf-monnier+emacsbugs@HIDDEN>
Mime-Version: 1.0
Content-Type: text/plain
X-Complaints-To: usenet@HIDDEN
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
Cancel-Lock: sha1:RIyU0p3xUj0H2D9QZofcu4vKWSs=
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
 [fuzzy]
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-Received-From: 2001:4830:134:3::11
X-Spam-Score: -4.8 (----)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -4.8 (----)

Stefan Monnier <monnier@HIDDEN> writes:

>> I can't tell if arglist is meant to be evaluated or not.
>
> Both ;-(
>

Maybe I've done some mistakes when I tried to remove deprecated methods
and to use lexical binding.

Can I do something to help ? (But I think it's out of  my capabilities
...)

> It's used as:
>
>     (apply pcache-repository ',arglist)
>
> where it's not evaluated and as:
>
>     (pcache-destroy-repository ,(car arglist))
>
> where the first element is evaluated.
>
>
>         Stefan





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 15 Nov 2017 15:28:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Nov 15 10:28:14 2017
Received: from localhost ([127.0.0.1]:42036 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eEzbo-0001Cn-Gt
	for submit <at> debbugs.gnu.org; Wed, 15 Nov 2017 10:28:14 -0500
Received: from chene.dit.umontreal.ca ([132.204.246.20]:41080)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1eEzbl-0001Ce-JQ
 for 29220 <at> debbugs.gnu.org; Wed, 15 Nov 2017 10:28:10 -0500
Received: from lechazo.home (lechon.iro.umontreal.ca [132.204.27.242])
 by chene.dit.umontreal.ca (8.14.7/8.14.1) with ESMTP id vAFFS8oc015583;
 Wed, 15 Nov 2017 10:28:08 -0500
Received: by lechazo.home (Postfix, from userid 20848)
 id F03FE60625; Wed, 15 Nov 2017 10:29:38 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Noam Postavsky <npostavs@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
Message-ID: <jwvmv3nsgt7.fsf-monnier+emacsbugs@HIDDEN>
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN>
 <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
 <87y3n81eq7.fsf@HIDDEN>
Date: Wed, 15 Nov 2017 10:29:38 -0500
In-Reply-To: <87y3n81eq7.fsf@HIDDEN> (Noam Postavsky's message
 of "Tue, 14 Nov 2017 21:02:24 -0500")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-NAI-Spam-Flag: NO
X-NAI-Spam-Threshold: 5
X-NAI-Spam-Score: 0
X-NAI-Spam-Rules: 2 Rules triggered
	EDT_SA_DN_PASS=0, RV6159=0
X-NAI-Spam-Version: 2.3.0.9418 : core <6159> : inlines <6171> : streams
 <1770369> : uri <2534414>
X-Spam-Score: -1.3 (-)
X-Debbugs-Envelope-To: 29220
Cc: Eric Abrahamsen <eric@HIDDEN>, 29220 <at> debbugs.gnu.org,
 Pierre =?windows-1252?Q?T=E9choueyres?= <pierre.techoueyres@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.3 (-)

> I can't tell if arglist is meant to be evaluated or not.

Both ;-(

It's used as:

    (apply pcache-repository ',arglist)

where it's not evaluated and as:

    (pcache-destroy-repository ,(car arglist))

where the first element is evaluated.


        Stefan




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 15 Nov 2017 02:02:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 14 21:02:34 2017
Received: from localhost ([127.0.0.1]:40810 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eEn2A-0003h3-9m
	for submit <at> debbugs.gnu.org; Tue, 14 Nov 2017 21:02:34 -0500
Received: from mail-it0-f47.google.com ([209.85.214.47]:45719)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <npostavs@HIDDEN>) id 1eEn28-0003gq-Ut
 for 29220 <at> debbugs.gnu.org; Tue, 14 Nov 2017 21:02:33 -0500
Received: by mail-it0-f47.google.com with SMTP id l196so2744itl.4
 for <29220 <at> debbugs.gnu.org>; Tue, 14 Nov 2017 18:02:32 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=sender:from:to:cc:subject:references:date:in-reply-to:message-id
 :user-agent:mime-version:content-transfer-encoding;
 bh=dwYpUs87tytRYhQNTGMmKX+mse7LUYd9PDxpJLP8mqE=;
 b=BTDsFMulnT7YhGFQJNBMiznozwasY7PxqTlEb88lykgv3/57N/ArDRCzMu3LLmHPRd
 G0rsIP90L/wir17esNLEbGUMNuuD0xboLXQZLK57YoUob7rkyLrbA4PXZ1oR4XV5E4VC
 7m8XI73thuCoXG8FUnovqznyUj4vRoIIMg8eTo7umqEEEDvFvz0tOZodZQ79G+deU4pH
 1JvvNjI1Oe7FhqBN9wi4IODTiYluccm/mk8BQf8ISaLKLNWVK5/CwD7kN6efLBAfdlUO
 SBZm1bnNTVKr+KaOBQn+DaK0pkdE0IbDHd9CMwXZ6/Hi/3Q9NDbMNU0D9Q+UW3hd79NX
 s4ig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:sender:from:to:cc:subject:references:date
 :in-reply-to:message-id:user-agent:mime-version
 :content-transfer-encoding;
 bh=dwYpUs87tytRYhQNTGMmKX+mse7LUYd9PDxpJLP8mqE=;
 b=ly9gC3F88jcBx98xipokzwwDSej2Jx1ygA84mcB4VTr8TqDNl9H72dKOhpKr2n8/lq
 6M6gq6Ikfn6SrbMFRFpFmENbx8NLqYnqK4Im39MeQfprvcQphNqgn/tOzsqTbz6U7VZd
 5+K37/QRhRqJE/0l3SBpUagHUrlW9nyZ3xQJhVT5G781ABkQgK4jwnpz73S07I21ik/Y
 ervT8VPQVuLQwzhIP655IWREXK7MuDqF+wiGf8DcNz1zqrJEuHDNm2os6hVA3WkHMWUu
 JBeNhIOOMK7G0q9GBmZ1S6JPEjdAw8BI2bFbgRaf59VhW+uFKkEtk/gUr2dkzuWluig7
 vL2Q==
X-Gm-Message-State: AJaThX5nzMvGIWOtIEJU0GCIBgT76ch8ZBDhhgruFVwSeYxiALvJWnV+
 u25EbrrdeoE4psT7WgJ+cDI=
X-Google-Smtp-Source: AGs4zMZYQdMFm34Mw0aiebi4xeTlgTUJdD5bpB+huOg9sMd2tZCWlYumo6RpRvyiiH+DbF/SpKPwNQ==
X-Received: by 10.36.31.8 with SMTP id d8mr18214265itd.80.1510711347316;
 Tue, 14 Nov 2017 18:02:27 -0800 (PST)
Received: from zebian ([45.2.119.34])
 by smtp.googlemail.com with ESMTPSA id a17sm9306126ioe.55.2017.11.14.18.02.25
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Tue, 14 Nov 2017 18:02:25 -0800 (PST)
From: Noam Postavsky <npostavs@HIDDEN>
To: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN> <87375j2tzd.fsf@HIDDEN>
 <87inecwl1v.fsf@HIDDEN>
Date: Tue, 14 Nov 2017 21:02:24 -0500
In-Reply-To: <87inecwl1v.fsf@HIDDEN> ("Pierre
 \=\?utf-8\?Q\?T\=C3\=A9choueyres\=22's\?\= message of "Tue,
 14 Nov 2017 23:30:04 +0100")
Message-ID: <87y3n81eq7.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.2 (/)
X-Debbugs-Envelope-To: 29220
Cc: Eric Abrahamsen <eric@HIDDEN>, 29220 <at> debbugs.gnu.org,
 Stefan Monnier <monnier@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.2 (/)

pierre.techoueyres@HIDDEN (Pierre T=C3=A9choueyres) writes:

> Unfortunately my receip is an incomplete subset of what pcache do with
> the objects and hash tables. And even with `print-circle' set to t,
> reading an pcache object still fail with emacs 26.
>
> I've put an branch (pte/emacs-26) on github
> (https://github.com/PierreTechoueyres/pcache.git) with some tests that
> you can launch with
>
> emacs-26 -batch -L . -l test/pcache-test.el -f ert-run-tests-batch-and-ex=
it

Hmm, not sure.  Every time I look deeper at something based on this
object stuff it turns out to be way overcomplicated.

When I set a breakpoint in eieio-persistent-read, the object being seems
correct.  If I evaluate (pcache-get ret 'foo) in edebug, I get 44, as
expected.  But somehow the object which gets returned from
(pcache-repository :object-name #1=3D"pcache-test/tmp2") doesn't have
anything in its hash table.

PS The edebug declaration in pcache-with-repository is wrong, it should
be:

  (declare (indent 2) (debug (symbolp (&rest form) body)))

Or possibly

  (declare (indent 2) (debug (symbolp (&rest sexp) body)))

I can't tell if arglist is meant to be evaluated or not.  All the uses
pass a string which is self-quoting.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 14 Nov 2017 22:30:12 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 14 17:30:12 2017
Received: from localhost ([127.0.0.1]:40715 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eEjie-0007AL-31
	for submit <at> debbugs.gnu.org; Tue, 14 Nov 2017 17:30:12 -0500
Received: from smtp4-g21.free.fr ([212.27.42.4]:41056)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pierre.techoueyres@HIDDEN>) id 1eEjic-0007AB-23
 for 29220 <at> debbugs.gnu.org; Tue, 14 Nov 2017 17:30:10 -0500
Received: from killashandra.ballybran.fr.free.fr (unknown
 [IPv6:2a01:e35:2e14:eab0:b51f:3dc7:7e03:942])
 by smtp4-g21.free.fr (Postfix) with ESMTPS id E83A519F5A3;
 Tue, 14 Nov 2017 23:30:04 +0100 (CET)
From: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
To: Noam Postavsky <npostavs@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN>
 <87375j2tzd.fsf@HIDDEN>
Date: Tue, 14 Nov 2017 23:30:04 +0100
In-Reply-To: <87375j2tzd.fsf@HIDDEN> (Noam Postavsky's message
 of "Sun, 12 Nov 2017 14:10:46 -0500")
Message-ID: <87inecwl1v.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 29220
Cc: Eric Abrahamsen <eric@HIDDEN>, 29220 <at> debbugs.gnu.org,
 Stefan Monnier <monnier@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

Noam Postavsky <npostavs@HIDDEN> writes:

> Eric Abrahamsen <eric@HIDDEN> writes:
>
>> pierre.techoueyres@HIDDEN (Pierre T=C3=A9choueyres) writes:
>>
>>> So here is the same sample completed. Sorry.
>>>
>>> ;;; -*- lexical-binding: t -*-
>>> (require 'eieio)
>>> (require 'eieio-base)
>>>
>>> (defclass eieio-fail (eieio-persistent eieio-named)
>>>   ((version :initarg :version :initform nil)
>>>    (version-constant :allocation :class)
>>>    (entries :initarg :entries :initform (make-hash-table))))
>>
>> This problem isn't related to my changes: it looks like the source of
>> the issue is the way the hash table is written, and the fact that one of
>> its entries holds an EIEIO object.
>>
>> As far as I can tell, when the hash table is written with `prin1', the
>> EIEIO object inside is also getting written with `prin1' instead of
>> `object-write'. The `prin1' representation isn't readable, so the
>> persistent read process chokes on it.
>>
>> The prin1 process for the hash table would have to detect that there's
>> an object in there, and write it with `object-write'.
>>
>> I assume this used to work? There have been several changes to the
>> printing process in Emacs 26, but I don't have a good grasp of the
>> details -- hopefully Stefan or someone will chime in.
>
> Stefan isn't subscribed to the bug list, so you have to Cc him (which
> I've now done).  I note that adding (setq print-circle t) makes the
> given recipe work.

Unfortunately my receip is an incomplete subset of what pcache do with
the objects and hash tables. And even with `print-circle' set to t,
reading an pcache object still fail with emacs 26.

I've put an branch (pte/emacs-26) on github
(https://github.com/PierreTechoueyres/pcache.git) with some tests that
you can launch with

emacs-26 -batch -L . -l test/pcache-test.el -f ert-run-tests-batch-and-exit

Ask if I could provide more info.
Pierre




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 12 Nov 2017 19:10:55 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Nov 12 14:10:55 2017
Received: from localhost ([127.0.0.1]:37170 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eDxeh-0003sn-FG
	for submit <at> debbugs.gnu.org; Sun, 12 Nov 2017 14:10:55 -0500
Received: from mail-it0-f52.google.com ([209.85.214.52]:38348)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <npostavs@HIDDEN>) id 1eDxeg-0003sa-6T
 for 29220 <at> debbugs.gnu.org; Sun, 12 Nov 2017 14:10:54 -0500
Received: by mail-it0-f52.google.com with SMTP id c3so6954631itc.3
 for <29220 <at> debbugs.gnu.org>; Sun, 12 Nov 2017 11:10:54 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=sender:from:to:cc:subject:references:date:in-reply-to:message-id
 :user-agent:mime-version:content-transfer-encoding;
 bh=JQsK8627UxRu67weqrJN+Z5GhEoOlal2tmpYwDdRtgA=;
 b=SX+TzJGdX1KKq5AaNo46cckIdrF9iBin72hc0TdH4qC6znBKOC7kdDX2HNu38PDRsn
 Fkj5R4LF5gYXVPjJ9x3Ldv5g0VCPqX54ezVT9ZJWz0UGYQRbCXvMv3YkwuXFE5P5wlpz
 raWjVl2I3A+N7JtIZNisynYqst9tanxlHM2ul2OUADFhKN5s2jbLw84ONazI7TtETP8E
 qCWacRsH5DrLP5nsUg/AjtiUcJAyG+ZgFAt/DhKlBN9nmN5C4fhEGMJ0nig3fj0CO8zU
 meChadN8n3UneBZ70QWfEZWnQx4un3xiiwd1vAH1PF6/QVasF0yHNIKh33XM0cVmVbTd
 lCIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:sender:from:to:cc:subject:references:date
 :in-reply-to:message-id:user-agent:mime-version
 :content-transfer-encoding;
 bh=JQsK8627UxRu67weqrJN+Z5GhEoOlal2tmpYwDdRtgA=;
 b=HphIqXUnWVf3/oSFf4+qIngsRtH7r9IvTNS8Bx3V8as9k8igLDh8hP2mjszre02LTW
 09p0jJz5nl62vRcjHRQ/ZXNJ6CD16V9iANS0d013taBJI3JBkjI5o8NWybBKrXUe1aTC
 54utbAzWkJGrw27gbR0SUGxCQ1YeHCLk93oUFCDUHRRolv4FW8fJc9tFqtLgl0lTKxF5
 xJ7jA8czdboHAav/bD9oYa4wUafvKQhg/Ayck03T9g802KC80cZa0MsJjN30kC7ZHOCD
 CYRRg8hoiEOWxx8YM60WVqIdmRQwOSE4IbAUA6IGhLqjx8QMfO1xgmH+XKeB4gi9JnHn
 z6dg==
X-Gm-Message-State: AJaThX5IvIZBYBwXTu3fgXaKIQrjCDPhxVCalAuPbQcvL3nbxrWJzP79
 9IchQRZ0Kbyz4otbKzfTLyg=
X-Google-Smtp-Source: AGs4zMZXVtcCOKHUeHg0geCxqKf7WrnRJQJFbEvjLMHok6vfBWgeahE/0lGH9oKfn8htpq8oVgxeVA==
X-Received: by 10.36.5.211 with SMTP id 202mr7623357itl.122.1510513848667;
 Sun, 12 Nov 2017 11:10:48 -0800 (PST)
Received: from zebian ([45.2.119.34])
 by smtp.googlemail.com with ESMTPSA id e205sm3227744ita.6.2017.11.12.11.10.47
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Sun, 12 Nov 2017 11:10:47 -0800 (PST)
From: Noam Postavsky <npostavs@HIDDEN>
To: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN>
Date: Sun, 12 Nov 2017 14:10:46 -0500
In-Reply-To: <8760aim2a5.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Fri, 10 Nov 2017 10:12:02 -0800")
Message-ID: <87375j2tzd.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.2 (/)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>,
 pierre.techoueyres@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.2 (/)

Eric Abrahamsen <eric@HIDDEN> writes:

> pierre.techoueyres@HIDDEN (Pierre T=C3=A9choueyres) writes:
>
>> So here is the same sample completed. Sorry.
>>
>> ;;; -*- lexical-binding: t -*-
>> (require 'eieio)
>> (require 'eieio-base)
>>
>> (defclass eieio-fail (eieio-persistent eieio-named)
>>   ((version :initarg :version :initform nil)
>>    (version-constant :allocation :class)
>>    (entries :initarg :entries :initform (make-hash-table))))
>
> This problem isn't related to my changes: it looks like the source of
> the issue is the way the hash table is written, and the fact that one of
> its entries holds an EIEIO object.
>
> As far as I can tell, when the hash table is written with `prin1', the
> EIEIO object inside is also getting written with `prin1' instead of
> `object-write'. The `prin1' representation isn't readable, so the
> persistent read process chokes on it.
>
> The prin1 process for the hash table would have to detect that there's
> an object in there, and write it with `object-write'.
>
> I assume this used to work? There have been several changes to the
> printing process in Emacs 26, but I don't have a good grasp of the
> details -- hopefully Stefan or someone will chime in.

Stefan isn't subscribed to the bug list, so you have to Cc him (which
I've now done).  I note that adding (setq print-circle t) makes the
given recipe work.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 10 Nov 2017 18:32:11 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Nov 10 13:32:11 2017
Received: from localhost ([127.0.0.1]:34432 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eDE67-0002Yi-J3
	for submit <at> debbugs.gnu.org; Fri, 10 Nov 2017 13:32:11 -0500
Received: from smtp4-g21.free.fr ([212.27.42.4]:9294)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pierre.techoueyres@HIDDEN>) id 1eDE66-0002Ya-B0
 for 29220 <at> debbugs.gnu.org; Fri, 10 Nov 2017 13:32:10 -0500
Received: from killashandra.ballybran.fr.free.fr (unknown
 [IPv6:2a01:e35:2e14:eab0:b51f:3dc7:7e03:942])
 by smtp4-g21.free.fr (Postfix) with ESMTPS id 342BC19F600
 for <29220 <at> debbugs.gnu.org>; Fri, 10 Nov 2017 19:32:08 +0100 (CET)
From: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
To: 29220 <at> debbugs.gnu.org
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
 <8760aim2a5.fsf@HIDDEN>
Date: Fri, 10 Nov 2017 19:32:07 +0100
In-Reply-To: <8760aim2a5.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Fri, 10 Nov 2017 10:12:02 -0800")
Message-ID: <87vaiit26w.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 29220
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

Eric Abrahamsen <eric@HIDDEN> writes:

> pierre.techoueyres@HIDDEN (Pierre T=C3=A9choueyres) writes:
>
>> Hello Eric,
>> Firs, thank you for you fast answer. You fix resolved my first problem
>> with eieio-persistent-read, but I've hit another error when I try to use
>> complex objects save/restore.  In fact I try to find why pcache package
>> insnt working anymore with emacs 26.
>
> Sorry this is so frustrating! And thanks for the very concise recipe.
No worries.
>
>> So here is the same sample completed. Sorry.
>>
>> ;;; -*- lexical-binding: t -*-
>> (require 'eieio)
>> (require 'eieio-base)
>>
>> (defclass eieio-fail (eieio-persistent eieio-named)
>>   ((version :initarg :version :initform nil)
>>    (version-constant :allocation :class)
>>    (entries :initarg :entries :initform (make-hash-table))))
>
> This problem isn't related to my changes: it looks like the source of
> the issue is the way the hash table is written, and the fact that one of
> its entries holds an EIEIO object.
I've never said that and thank for looking to it.

>
> As far as I can tell, when the hash table is written with `prin1', the
> EIEIO object inside is also getting written with `prin1' instead of
> `object-write'. The `prin1' representation isn't readable, so the
> persistent read process chokes on it.
>
> The prin1 process for the hash table would have to detect that there's
> an object in there, and write it with `object-write'.
>
> I assume this used to work?
Yes this it the way the pcache (https://github.com/sigma/pcache) package
work. Actually it's requires by the unicode-fonts
(https://github.com/rolandwalker/unicode-fonts) package.

> There have been several changes to the
> printing process in Emacs 26, but I don't have a good grasp of the
> details -- hopefully Stefan or someone will chime in.

Hope my receipt could help.

> Eric

Pierre




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 10 Nov 2017 18:12:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Nov 10 13:12:24 2017
Received: from localhost ([127.0.0.1]:34417 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eDDmy-00023F-JW
	for submit <at> debbugs.gnu.org; Fri, 10 Nov 2017 13:12:24 -0500
Received: from eggs.gnu.org ([208.118.235.92]:38758)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eDDmx-000233-FZ
 for submit <at> debbugs.gnu.org; Fri, 10 Nov 2017 13:12:23 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eDDmr-00083P-8K
 for submit <at> debbugs.gnu.org; Fri, 10 Nov 2017 13:12:18 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled
 version=3.3.2
Received: from lists.gnu.org ([2001:4830:134:3::11]:60502)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
 (Exim 4.71) (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1eDDmr-00083B-5d
 for submit <at> debbugs.gnu.org; Fri, 10 Nov 2017 13:12:17 -0500
Received: from eggs.gnu.org ([2001:4830:134:3::10]:57948)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eDDmp-0000bk-VZ
 for bug-gnu-emacs@HIDDEN; Fri, 10 Nov 2017 13:12:16 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eDDmm-000815-LU
 for bug-gnu-emacs@HIDDEN; Fri, 10 Nov 2017 13:12:15 -0500
Received: from [195.159.176.226] (port=35006 helo=blaine.gmane.org)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)
 (Exim 4.71) (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1eDDmm-00080U-Ev
 for bug-gnu-emacs@HIDDEN; Fri, 10 Nov 2017 13:12:12 -0500
Received: from list by blaine.gmane.org with local (Exim 4.84_2)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eDDmc-0004bS-8p
 for bug-gnu-emacs@HIDDEN; Fri, 10 Nov 2017 19:12:02 +0100
X-Injected-Via-Gmane: http://gmane.org/
To: bug-gnu-emacs@HIDDEN
From: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
Date: Fri, 10 Nov 2017 10:12:02 -0800
Lines: 38
Message-ID: <8760aim2a5.fsf@HIDDEN>
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
 <87zi7udorn.fsf@HIDDEN>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Complaints-To: usenet@HIDDEN
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (gnu/linux)
Cancel-Lock: sha1:fK+3FwilVVfwWX9upd4rb+j5TiI=
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
 [fuzzy]
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-Received-From: 2001:4830:134:3::11
X-Spam-Score: -5.0 (-----)
X-Debbugs-Envelope-To: submit
Cc: pierre.techoueyres@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -5.0 (-----)

pierre.techoueyres@HIDDEN (Pierre Téchoueyres) writes:

> Hello Eric,
> Firs, thank you for you fast answer. You fix resolved my first problem
> with eieio-persistent-read, but I've hit another error when I try to use
> complex objects save/restore.  In fact I try to find why pcache package
> insnt working anymore with emacs 26.

Sorry this is so frustrating! And thanks for the very concise recipe.

> So here is the same sample completed. Sorry.
>
> ;;; -*- lexical-binding: t -*-
> (require 'eieio)
> (require 'eieio-base)
>
> (defclass eieio-fail (eieio-persistent eieio-named)
>   ((version :initarg :version :initform nil)
>    (version-constant :allocation :class)
>    (entries :initarg :entries :initform (make-hash-table))))

This problem isn't related to my changes: it looks like the source of
the issue is the way the hash table is written, and the fact that one of
its entries holds an EIEIO object.

As far as I can tell, when the hash table is written with `prin1', the
EIEIO object inside is also getting written with `prin1' instead of
`object-write'. The `prin1' representation isn't readable, so the
persistent read process chokes on it.

The prin1 process for the hash table would have to detect that there's
an object in there, and write it with `object-write'.

I assume this used to work? There have been several changes to the
printing process in Emacs 26, but I don't have a good grasp of the
details -- hopefully Stefan or someone will chime in.

Eric





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at 29220 <at> debbugs.gnu.org:


Received: (at 29220) by debbugs.gnu.org; 10 Nov 2017 17:31:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Nov 10 12:31:14 2017
Received: from localhost ([127.0.0.1]:34407 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eDD98-000177-Bq
	for submit <at> debbugs.gnu.org; Fri, 10 Nov 2017 12:31:14 -0500
Received: from smtp4-g21.free.fr ([212.27.42.4]:26182)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pierre.techoueyres@HIDDEN>) id 1eDD95-00016y-Sy
 for 29220 <at> debbugs.gnu.org; Fri, 10 Nov 2017 12:31:12 -0500
Received: from killashandra.ballybran.fr.free.fr (unknown
 [IPv6:2a01:e35:2e14:eab0:b51f:3dc7:7e03:942])
 by smtp4-g21.free.fr (Postfix) with ESMTPS id 65CED19F5A8;
 Fri, 10 Nov 2017 18:31:09 +0100 (CET)
From: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
To: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
References: <87y3nga0lv.fsf@HIDDEN>
 <87po8s8k02.fsf@HIDDEN>
Date: Fri, 10 Nov 2017 18:31:08 +0100
In-Reply-To: <87po8s8k02.fsf@HIDDEN> (Eric Abrahamsen's message of
 "Wed, 08 Nov 2017 14:48:29 -0800")
Message-ID: <87zi7udorn.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 29220
Cc: 29220 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

--=-=-=
Content-Type: text/plain

Hello Eric,
Firs, thank you for you fast answer. You fix resolved my first problem
with eieio-persistent-read, but I've hit another error when I try to use
complex objects save/restore.  In fact I try to find why pcache package
insnt working anymore with emacs 26.

So here is the same sample completed. Sorry.


--=-=-=
Content-Type: text/plain
Content-Disposition: inline; filename=eieio-fail.el
Content-Description: eieio-persistent-read test.

;;; -*- lexical-binding: t -*-
(require 'eieio)
(require 'eieio-base)

(defclass eieio-fail (eieio-persistent eieio-named)
  ((version :initarg :version :initform nil)
   (version-constant :allocation :class)
   (entries :initarg :entries :initform (make-hash-table))))

(let* ((ef (make-instance 'eieio-fail :file "tmp"))
       (entries (slot-value ef 'entries))
       (ef2 (make-instance 'eieio-fail :file "tmp2"))
       (entries2 (slot-value ef2 'entries)))
  (puthash 'foo 42 entries2)
  (oset ef2 :entries entries2)
  (puthash 'ef2 ef2 entries)
  (oset ef2 :entries entries2)
  (oset ef :entries entries)  
  (eieio-persistent-save ef (concat "tmp-" emacs-version)))

(let* ((ef (eieio-persistent-read (concat "tmp-" emacs-version) 'eieio-fail t))
       (entries (slot-value ef 'entries))
       (entries2 (slot-value (gethash 'ef2 entries) 'entries)))
  ;; (pp ef)
  (pp (gethash 'foo entries2)))

--=-=-=
Content-Type: text/plain



Eric Abrahamsen <eric@HIDDEN> writes:

> ...
>
> Yes, I made a bum commit to master, then fixed it, then cherry-picked
> the bum commit over to emacs-26 without fixing it. The fix is now
> cherry-picked as well, and I'm taking a short breather from patching
> Emacs.
>
> Sorry about this,
No worries
> Eric
Pierre

--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 8 Nov 2017 22:48:51 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Nov 08 17:48:51 2017
Received: from localhost ([127.0.0.1]:59083 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eCZ9P-0001ia-Ge
	for submit <at> debbugs.gnu.org; Wed, 08 Nov 2017 17:48:51 -0500
Received: from eggs.gnu.org ([208.118.235.92]:39550)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eCZ9O-0001iO-4r
 for submit <at> debbugs.gnu.org; Wed, 08 Nov 2017 17:48:50 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eCZ9I-0005kQ-Cq
 for submit <at> debbugs.gnu.org; Wed, 08 Nov 2017 17:48:45 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_05 autolearn=disabled
 version=3.3.2
Received: from lists.gnu.org ([2001:4830:134:3::11]:48589)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
 (Exim 4.71) (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1eCZ9I-0005k9-9O
 for submit <at> debbugs.gnu.org; Wed, 08 Nov 2017 17:48:44 -0500
Received: from eggs.gnu.org ([2001:4830:134:3::10]:58748)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eCZ9H-0004OR-Ag
 for bug-gnu-emacs@HIDDEN; Wed, 08 Nov 2017 17:48:44 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eCZ9E-0005iJ-4y
 for bug-gnu-emacs@HIDDEN; Wed, 08 Nov 2017 17:48:43 -0500
Received: from [195.159.176.226] (port=58119 helo=blaine.gmane.org)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)
 (Exim 4.71) (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1eCZ9D-0005i5-UT
 for bug-gnu-emacs@HIDDEN; Wed, 08 Nov 2017 17:48:40 -0500
Received: from list by blaine.gmane.org with local (Exim 4.84_2)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>) id 1eCZ91-0003hx-Pp
 for bug-gnu-emacs@HIDDEN; Wed, 08 Nov 2017 23:48:27 +0100
X-Injected-Via-Gmane: http://gmane.org/
To: bug-gnu-emacs@HIDDEN
From: Eric Abrahamsen <eric@HIDDEN>
Subject: Re: bug#29220: 26.0.90;
 eieio-persistent-read fail to restore saved object.
Date: Wed, 08 Nov 2017 14:48:29 -0800
Lines: 15
Message-ID: <87po8s8k02.fsf@HIDDEN>
References: <87y3nga0lv.fsf@HIDDEN>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Complaints-To: usenet@HIDDEN
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (gnu/linux)
Cancel-Lock: sha1:trB9j+UyKu1vJ/L3LQMI8QyIpqE=
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
 [fuzzy]
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-Received-From: 2001:4830:134:3::11
X-Spam-Score: -5.0 (-----)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -5.0 (-----)

pierre.techoueyres@HIDDEN (Pierre Téchoueyres) writes:

> Emacs 26 is unable to restore an previously saved eieio object.
> Same receipt work fine in emacs 25.3
>
> emacs-26 --batch -l eieio-fail.el produces:
> Wrong number of arguments: #<subr stringp>, 3

Yes, I made a bum commit to master, then fixed it, then cherry-picked
the bum commit over to emacs-26 without fixing it. The fix is now
cherry-picked as well, and I'm taking a short breather from patching
Emacs.

Sorry about this,
Eric





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 8 Nov 2017 22:19:07 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Nov 08 17:19:07 2017
Received: from localhost ([127.0.0.1]:59066 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1eCYgc-0000zQ-Ve
	for submit <at> debbugs.gnu.org; Wed, 08 Nov 2017 17:19:07 -0500
Received: from eggs.gnu.org ([208.118.235.92]:57053)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pierre.techoueyres@HIDDEN>) id 1eCYSh-0000d8-FD
 for submit <at> debbugs.gnu.org; Wed, 08 Nov 2017 17:04:43 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <pierre.techoueyres@HIDDEN>) id 1eCYSb-0003rv-6f
 for submit <at> debbugs.gnu.org; Wed, 08 Nov 2017 17:04:38 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM
 autolearn=disabled version=3.3.2
Received: from lists.gnu.org ([2001:4830:134:3::11]:34346)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
 (Exim 4.71) (envelope-from <pierre.techoueyres@HIDDEN>)
 id 1eCYSb-0003rq-2N
 for submit <at> debbugs.gnu.org; Wed, 08 Nov 2017 17:04:37 -0500
Received: from eggs.gnu.org ([2001:4830:134:3::10]:48017)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <pierre.techoueyres@HIDDEN>) id 1eCYSZ-0001v9-No
 for bug-gnu-emacs@HIDDEN; Wed, 08 Nov 2017 17:04:36 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <pierre.techoueyres@HIDDEN>) id 1eCYSY-0003r9-Mt
 for bug-gnu-emacs@HIDDEN; Wed, 08 Nov 2017 17:04:35 -0500
Received: from smtp4-g21.free.fr ([2a01:e0c:1:1599::13]:18002)
 by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)
 (Exim 4.71) (envelope-from <pierre.techoueyres@HIDDEN>)
 id 1eCYSY-0003qE-9t
 for bug-gnu-emacs@HIDDEN; Wed, 08 Nov 2017 17:04:34 -0500
Received: from killashandra.ballybran.fr.free.fr (unknown
 [IPv6:2a01:e35:2e14:eab0:b51f:3dc7:7e03:942])
 by smtp4-g21.free.fr (Postfix) with ESMTPS id 7B0FF19F5B3
 for <bug-gnu-emacs@HIDDEN>; Wed,  8 Nov 2017 23:04:29 +0100 (CET)
From: pierre.techoueyres@HIDDEN (Pierre =?utf-8?Q?T=C3=A9choueyres?=)
To: bug-gnu-emacs@HIDDEN
Subject: 26.0.90; eieio-persistent-read fail to restore saved object.
Date: Wed, 08 Nov 2017 23:04:28 +0100
Message-ID: <87y3nga0lv.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
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-Received-From: 2001:4830:134:3::11
X-Spam-Score: -5.0 (-----)
X-Debbugs-Envelope-To: submit
X-Mailman-Approved-At: Wed, 08 Nov 2017 17:19:05 -0500
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -5.0 (-----)

--=-=-=
Content-Type: text/plain



Emacs 26 is unable to restore an previously saved eieio object.
Same receipt work fine in emacs 25.3

emacs-26 --batch -l eieio-fail.el produces:
Wrong number of arguments: #<subr stringp>, 3

where emacs 25.3
Loading /usr/share/emacs/site-lisp/site-start.d/autoconf-init.el (source)...
Loading /usr/share/emacs/site-lisp/site-start.d/cmake-init.el (source)...
Loading /usr/share/emacs/site-lisp/site-start.d/desktop-entry-mode-init.el (source)...
Loading /usr/share/emacs/site-lisp/site-start.d/git-init.el (source)...
Loading /usr/share/emacs/site-lisp/site-start.d/rpmdev-init.el (source)...
Loading /usr/share/emacs/site-lisp/site-start.d/systemtap-init.el (source)...
[eieio-class-tag--eieio-fail "tmp-25.3.1" nil nil #s(hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8 data


--=-=-=
Content-Type: text/plain
Content-Disposition: inline; filename=eieio-fail.el
Content-Description: receipe for eieio-persistent-read reading bug

;;; -*- lexical-binding: t -*-
(require 'eieio)
(require 'eieio-base)

(defclass eieio-fail (eieio-persistent eieio-named)
  ((version :initarg :version :initform nil)
   (version-constant :allocation :class)
   (entries :initarg :entries :initform (make-hash-table))))

(let ((ef (make-instance 'eieio-fail :file "tmp")))
  (eieio-persistent-save ef (concat "tmp-" emacs-version)))

(let ((ef (eieio-persistent-read (concat "tmp-" emacs-version) 'eieio-fail t)))
  (pp ef))

--=-=-=
Content-Type: text/plain



In GNU Emacs 26.0.90 (build 1, x86_64-fc26-linux-gnu, GTK+ Version 3.22.21)
 of 2017-11-08 built on killashandra.ballybran.fr
Repository revision: a215be999454b8f0118141d4e4f6cf58298f79e0
Windowing system distributor 'Fedora Project', version 11.0.11903000
Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Configured using:
 'configure --prefix=/usr/local --with-xwidgets --with-modules
 --host=x86_64-fc26-linux-gnu --with-mailutils --with-gconf
 host_alias=x86_64-fc26-linux-gnu'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 MODULES XWIDGETS LIBSYSTEMD LCMS2

Important settings:
  value of $LC_CTYPE: fr_FR.UTF-8
  value of $LANG: fr_FR.UTF-8
  value of $XMODIFIERS: @im=none
  locale-coding-system: utf-8-unix

Major mode: Emacs-Lisp

Minor modes in effect:
  diff-auto-refine-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny seq byte-opt gv
bytecomp byte-compile cconv cl-loaddefs cl-lib dired dired-loaddefs
format-spec rfc822 mml mml-sec password-cache epa derived epg epg-config
gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils vc-git diff-mode easymenu
easy-mmode elec-pair time-date mule-util 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 elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame 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 minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote dbusbind inotify lcms2 dynamic-setting system-font-setting
font-render-setting xwidget-internal move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 99040 11809)
 (symbols 48 21157 1)
 (miscs 40 53 130)
 (strings 32 29949 1299)
 (string-bytes 1 792306)
 (vectors 16 14803)
 (vector-slots 8 509702 10218)
 (floats 8 53 175)
 (intervals 56 265 20)
 (buffers 992 13))

--=-=-=--




Acknowledgement sent to pierre.techoueyres@HIDDEN (Pierre Téchoueyres):
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#29220; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Fri, 23 Nov 2018 07:15:02 UTC

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