<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
                                        Hi Florin --<div><br></div><div>Not sure whether you suggested a fix but ... I just have to replace "readStreamInstSize" with "writeStreamInstSize", too. I will do that.</div><div><br></div><div>Best,</div><div>Marcel</div><div class="mb_sig"></div><blockquote class='history_container' type='cite' style='border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;'>
                        <p style='color: #AAAAAA; margin-top: 10px;'>Am 11.01.2022 13:27:50 schrieb Florin Mateoc <florin.mateoc@gmail.com>:</p><div style='font-family:Arial,Helvetica,sans-serif'> Hi Marcel, <br> <br>Thank you for the quick response, but I am afraid the fix in <br>#primitiveZipSendBlock is still wrong. <br>While the method is working with multiple types of objects, in the rcvr <br>variable it clearly loads a zip encoder, and only a zip encoder: <br> <br>      (self loadZipEncoderFrom: rcvr) <br> <br>And at the end of the method, it is in this ZipEncoder instance rcvr that <br>it is storing the modified values. <br>ZipEncoder is a subclass of WriteStream, not of ReadStream. <br> <br>All the best, <br>Florin <br> <br>On Tue, Jan 11, 2022 at 6:22 AM Marcel Taeumel <marcel.taeumel@hpi.de> <br>wrote: <br> <br>> <br>> Hi Florin, hi Fabio -- <br>> <br>> Fixed via VMMaker.oscog-mt.3135. <br>> <br>> Thanks for reporting this! <br>> <br>> Best, <br>> Marcel <br>> <br>> Am 10.01.2022 19:39:46 schrieb Florin Mateoc <florin.mateoc@gmail.com>: <br>> Also now MCSerializationTest>>#testMczSerialization is succeeding for me, <br>> it was failing before (in JsSqueak) <br>> <br>> On Mon, Jan 10, 2022 at 3:42 AM Fabio Niephaus wrote: <br>> <br>> > <br>> > Hi Florin, <br>> > <br>> > Happy new year and thanks for the bug report! PNGReadWriterTest seems <br>> > to pass on TruffleSqueak (although I remember some bug fixing a while <br>> > ago). Anyway, I looked into #primitiveZipSendBlock which seems to be <br>> > the only sender of #loadZipEncoderFrom:. <br>> > <br>> > While #loadZipEncoderFrom: reads from writeStreamInstSize + 1 and + 2, <br>> > which is off by one as you mentioned, #primitiveZipSendBlock stores at <br>> > readStreamInstSize + 1 and + 2. And as it happens, readStreamInstSize <br>> > seems to be 4 while writeStreamInstSize is 5, which compensates for <br>> > the off-by-one error. However, I don't understand why reading from the <br>> > wrong positions does not cause the tests to fail. Anyway, I cleaned <br>> > this up in TruffleSqueak (see [1]). <br>> > <br>> > Fabio <br>> > <br>> > [1] <br>> > <br>> https://github.com/hpi-swa/trufflesqueak/commit/5b6066b54e03e19ec4c4d2b22550ff081e46f6e6 <br>> > <br>> > On Mon, Jan 10, 2022 at 4:33 AM Florin Mateoc <br>> > wrote: <br>> > > <br>> > > <br>> > > I should have also mentioned that PNGReadWriterTest also has 18 <br>> failures <br>> > for SqueakJS, and I think I remember them failing in TruffleSqueak as <br>> well <br>> > > <br>> > > On Sun, Jan 9, 2022 at 10:18 PM Florin Mateoc <br>> > wrote: <br>> > >> <br>> > >> Hi all, and Happy New Year! <br>> > >> <br>> > >> I think I just found a couple of bugs in the DeflatePlugin. They were <br>> > causing errors in my JsSqueak, I don't fully understand why they don't <br>> seem <br>> > to cause problems in Squeak. Anyway, after I fixed them, the primitives <br>> > work and the PNGReadWriterTest tests are all succeeding for me. <br>> > >> <br>> > >> One is in #loadZipEncoderFrom: <br>> > >> The method checks and then determines the writeStreamInstSize and <br>> then <br>> > fetches the bitBuffer and bitPosition (the first two instvars of <br>> > ZipEncoder, a direct subclass of WriteStream) from offsets <br>> > writeStreamInstSize + 1 and writeStreamInstSize + 2, although the <br>> fetches <br>> > are 0-based <br>> > >> <br>> > >> The other is in #primitiveZipSendBlock <br>> > >> The method, still working on a ZipEncoder, at the end stores the <br>> > modified values for bitBuffer and bitPosition at offset <br>> readStreamInstSize <br>> > + 1 and readStreamInstSize + 2, which is just wrong. <br>> > >> <br>> > >> As I said, I don't quite get why this does not cause at least <br>> > image-side errors if not VM crashes in Squeak, but they should probably <br>> be <br>> > fixed anyway :) <br>> > >> <br>> > >> All the best, <br>> > >> Florin <br>> > <br>> Also now MCSerializationTest>>#testMczSerialization is succeeding for me, <br>> it was failing before <br>> (in JsSqueak) <br>> <br>> <br>> On Mon, Jan 10, 2022 at 3:42 AM Fabio Niephaus <lists@fniephaus.com> <br>> wrote: <br>> <br>>> <br>>> <br>>> Hi Florin, <br>>> <br>>> <br>>> <br>>> Happy new year and thanks for the bug report! PNGReadWriterTest seems <br>>> <br>>> to pass on TruffleSqueak (although I remember some bug fixing a while <br>>> <br>>> ago). Anyway, I looked into #primitiveZipSendBlock which seems to be <br>>> <br>>> the only sender of #loadZipEncoderFrom:. <br>>> <br>>> <br>>> <br>>> While #loadZipEncoderFrom: reads from writeStreamInstSize + 1 and + 2, <br>>> <br>>> which is off by one as you mentioned, #primitiveZipSendBlock stores at <br>>> <br>>> readStreamInstSize + 1 and + 2. And as it happens, readStreamInstSize <br>>> <br>>> seems to be 4 while writeStreamInstSize is 5, which compensates for <br>>> <br>>> the off-by-one error. However, I don't understand why reading from the <br>>> <br>>> wrong positions does not cause the tests to fail. Anyway, I cleaned <br>>> <br>>> this up in TruffleSqueak (see [1]). <br>>> <br>>> <br>>> <br>>> Fabio <br>>> <br>>> <br>>> <br>>> [1] <br>>> https://github.com/hpi-swa/trufflesqueak/commit/5b6066b54e03e19ec4c4d2b22550ff081e46f6e6 <br>>> <br>>> <br>>> <br>>> On Mon, Jan 10, 2022 at 4:33 AM Florin Mateoc <florin.mateoc@gmail.com> <br>>> wrote: <br>>> <br>>> > <br>>> <br>>> > <br>>> <br>>> > I should have also mentioned that PNGReadWriterTest also has 18 <br>>> failures for SqueakJS, and I think I remember them failing in TruffleSqueak <br>>> as well <br>>> <br>>> > <br>>> <br>>> > On Sun, Jan 9, 2022 at 10:18 PM Florin Mateoc <florin.mateoc@gmail.com> <br>>> wrote: <br>>> <br>>> >> <br>>> <br>>> >> Hi all, and Happy New Year! <br>>> <br>>> >> <br>>> <br>>> >> I think I just found a couple of bugs in the DeflatePlugin. They were <br>>> causing errors in my JsSqueak, I don't fully understand why they don't seem <br>>> to cause problems in Squeak. Anyway, after I fixed them, the primitives <br>>> work and the PNGReadWriterTest tests are all succeeding for me. <br>>> <br>>> >> <br>>> <br>>> >> One is in #loadZipEncoderFrom: <br>>> <br>>> >> The method checks and then determines the writeStreamInstSize and then <br>>> fetches the bitBuffer and bitPosition (the first two instvars of <br>>> ZipEncoder, a direct subclass of WriteStream) from offsets <br>>> writeStreamInstSize + 1 and writeStreamInstSize + 2, although the fetches <br>>> are 0-based <br>>> <br>>> >> <br>>> <br>>> >> The other is in #primitiveZipSendBlock <br>>> <br>>> >> The method, still working on a ZipEncoder, at the end stores the <br>>> modified values for bitBuffer and bitPosition at offset readStreamInstSize <br>>> + 1 and readStreamInstSize + 2, which is just wrong. <br>>> <br>>> >> <br>>> <br>>> >> As I said, I don't quite get why this does not cause at least <br>>> image-side errors if not VM crashes in Squeak, but they should probably be <br>>> fixed anyway :) <br>>> <br>>> >> <br>>> <br>>> >> All the best, <br>>> <br>>> >> Florin <br>>> <br>>> <br>> <br><div dir="ltr"><div>Hi Marcel,</div><div><br></div><div>Thank you for the quick response, but I am afraid the fix in  <br><span class="gmail-im">#primitiveZipSendBlock</span> is still wrong.</div><div>While the method is working with multiple types of objects, in the rcvr variable it clearly loads a zip encoder, and only a zip encoder:</div><div></div><div> <br> <br><pre style="white-space:pre-wrap;color:rgb(0,0,0);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial">          (self loadZipEncoderFrom: rcvr) <br></pre>And at the end of the method, it is in this ZipEncoder instance rcvr that it is storing the modified values.</div><div>ZipEncoder is a subclass of WriteStream, not of ReadStream.</div><div><br></div><div>All the best,</div><div>Florin<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 11, 2022 at 6:22 AM Marcel Taeumel <<a href="mailto:marcel.taeumel@hpi.de">marcel.taeumel@hpi.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <div id="gmail-m_-7492184690558884719__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: rgb(0,0,0);text-align: left" dir="ltr"> <br>                                        Hi Florin, hi Fabio --<div><br></div><div>Fixed via VMMaker.oscog-mt.3135.</div><div><br></div><div>Thanks for reporting this!</div><div><br></div><div>Best,</div><div>Marcel</div><div></div> <br>                                        <blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-top:20px;margin-left:0px;padding-left:10px;min-width:500px"> <br>                        <p style="color:rgb(170,170,170);margin-top:10px">Am 10.01.2022 19:39:46 schrieb Florin Mateoc <<a href="mailto:florin.mateoc@gmail.com" target="_blank">florin.mateoc@gmail.com</a>>:</p><div style="font-family:Arial,Helvetica,sans-serif"> Also now MCSerializationTest>>#testMczSerialization is succeeding for me, <br><br>it was failing before (in JsSqueak) <br><br> <br><br>On Mon, Jan 10, 2022 at 3:42 AM Fabio Niephaus <u></u> wrote: <br><br> <br><br>> <br><br>> Hi Florin, <br><br>> <br><br>> Happy new year and thanks for the bug report! PNGReadWriterTest seems <br><br>> to pass on TruffleSqueak (although I remember some bug fixing a while <br><br>> ago). Anyway, I looked into #primitiveZipSendBlock which seems to be <br><br>> the only sender of #loadZipEncoderFrom:. <br><br>> <br><br>> While #loadZipEncoderFrom: reads from writeStreamInstSize + 1 and + 2, <br><br>> which is off by one as you mentioned, #primitiveZipSendBlock stores at <br><br>> readStreamInstSize + 1 and + 2. And as it happens, readStreamInstSize <br><br>> seems to be 4 while writeStreamInstSize is 5, which compensates for <br><br>> the off-by-one error. However, I don't understand why reading from the <br><br>> wrong positions does not cause the tests to fail. Anyway, I cleaned <br><br>> this up in TruffleSqueak (see [1]). <br><br>> <br><br>> Fabio <br><br>> <br><br>> [1] <br><br>> <a href="https://github.com/hpi-swa/trufflesqueak/commit/5b6066b54e03e19ec4c4d2b22550ff081e46f6e6" target="_blank">https://github.com/hpi-swa/trufflesqueak/commit/5b6066b54e03e19ec4c4d2b22550ff081e46f6e6</a> <br><br>> <br><br>> On Mon, Jan 10, 2022 at 4:33 AM Florin Mateoc <u></u> <br><br>> wrote: <br><br>> > <br><br>> > <br><br>> > I should have also mentioned that PNGReadWriterTest also has 18 failures <br><br>> for SqueakJS, and I think I remember them failing in TruffleSqueak as well <br><br>> > <br><br>> > On Sun, Jan 9, 2022 at 10:18 PM Florin Mateoc <u></u> <br><br>> wrote: <br><br>> >> <br><br>> >> Hi all, and Happy New Year! <br><br>> >> <br><br>> >> I think I just found a couple of bugs in the DeflatePlugin. They were <br><br>> causing errors in my JsSqueak, I don't fully understand why they don't seem <br><br>> to cause problems in Squeak. Anyway, after I fixed them, the primitives <br><br>> work and the PNGReadWriterTest tests are all succeeding for me. <br><br>> >> <br><br>> >> One is in #loadZipEncoderFrom: <br><br>> >> The method checks and then determines the writeStreamInstSize and then <br><br>> fetches the bitBuffer and bitPosition (the first two instvars of <br><br>> ZipEncoder, a direct subclass of WriteStream) from offsets <br><br>> writeStreamInstSize + 1 and writeStreamInstSize + 2, although the fetches <br><br>> are 0-based <br><br>> >> <br><br>> >> The other is in #primitiveZipSendBlock <br><br>> >> The method, still working on a ZipEncoder, at the end stores the <br><br>> modified values for bitBuffer and bitPosition at offset readStreamInstSize <br><br>> + 1 and readStreamInstSize + 2, which is just wrong. <br><br>> >> <br><br>> >> As I said, I don't quite get why this does not cause at least <br><br>> image-side errors if not VM crashes in Squeak, but they should probably be <br><br>> fixed anyway :) <br><br>> >> <br><br>> >> All the best, <br><br>> >> Florin <br><br>> <br><br><div dir="ltr">Also now MCSerializationTest>>#testMczSerialization is succeeding for me, it was failing before <br><br> (in JsSqueak) <br><br> <br><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jan 10, 2022 at 3:42 AM Fabio Niephaus <<a href="mailto:lists@fniephaus.com" target="_blank">lists@fniephaus.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex;min-width:500px"> <br> <br><br>Hi Florin,<br> <br><br><br> <br><br>Happy new year and thanks for the bug report! PNGReadWriterTest seems<br> <br><br>to pass on TruffleSqueak (although I remember some bug fixing a while<br> <br><br>ago). Anyway, I looked into #primitiveZipSendBlock which seems to be<br> <br><br>the only sender of #loadZipEncoderFrom:.<br> <br><br><br> <br><br>While #loadZipEncoderFrom: reads from writeStreamInstSize + 1 and + 2,<br> <br><br>which is off by one as you mentioned, #primitiveZipSendBlock stores at<br> <br><br>readStreamInstSize + 1 and + 2. And as it happens, readStreamInstSize<br> <br><br>seems to be 4 while writeStreamInstSize is 5, which compensates for<br> <br><br>the off-by-one error. However, I don't understand why reading from the<br> <br><br>wrong positions does not cause the tests to fail. Anyway, I cleaned<br> <br><br>this up in TruffleSqueak (see [1]).<br> <br><br><br> <br><br>Fabio<br> <br><br><br> <br><br>[1] <a href="https://github.com/hpi-swa/trufflesqueak/commit/5b6066b54e03e19ec4c4d2b22550ff081e46f6e6" rel="noreferrer" target="_blank">https://github.com/hpi-swa/trufflesqueak/commit/5b6066b54e03e19ec4c4d2b22550ff081e46f6e6</a><br> <br><br><br> <br><br>On Mon, Jan 10, 2022 at 4:33 AM Florin Mateoc <<a href="mailto:florin.mateoc@gmail.com" target="_blank">florin.mateoc@gmail.com</a>> wrote:<br> <br><br>><br> <br><br>><br> <br><br>> I should have also mentioned that PNGReadWriterTest also has 18 failures for SqueakJS, and I think I remember them failing in TruffleSqueak as well<br> <br><br>><br> <br><br>> On Sun, Jan 9, 2022 at 10:18 PM Florin Mateoc <<a href="mailto:florin.mateoc@gmail.com" target="_blank">florin.mateoc@gmail.com</a>> wrote:<br> <br><br>>><br> <br><br>>> Hi all, and Happy New Year!<br> <br><br>>><br> <br><br>>> I think I just found a couple of bugs in the DeflatePlugin. They were causing errors in my JsSqueak, I don't fully understand why they don't seem to cause problems in Squeak. Anyway, after I fixed them, the primitives work and the PNGReadWriterTest tests are all succeeding for me.<br> <br><br>>><br> <br><br>>> One is in #loadZipEncoderFrom:<br> <br><br>>> The method checks and then determines the writeStreamInstSize and then fetches the bitBuffer and bitPosition (the first two instvars of ZipEncoder, a direct subclass of WriteStream) from offsets writeStreamInstSize + 1 and writeStreamInstSize + 2, although the fetches are 0-based<br> <br><br>>><br> <br><br>>> The other is in #primitiveZipSendBlock<br> <br><br>>> The method, still working on a ZipEncoder, at the end stores the modified values for bitBuffer and bitPosition at offset readStreamInstSize + 1 and readStreamInstSize + 2, which is just wrong.<br> <br><br>>><br> <br><br>>> As I said, I don't quite get why this does not cause at least image-side errors if not VM crashes in Squeak, but they should probably be fixed anyway :)<br> <br><br>>><br> <br><br>>> All the best,<br> <br><br>>> Florin<br> <br><br></blockquote></div> <br><br><u></u><u></u><u></u></div></blockquote></div></blockquote></div> <br></florin.mateoc@gmail.com></florin.mateoc@gmail.com></lists@fniephaus.com></florin.mateoc@gmail.com></marcel.taeumel@hpi.de></div></blockquote>
                                        </div></body>