[Vm-dev] bugs in DeflatePlugin?
Eliot Miranda
eliot.miranda at gmail.com
Tue Jan 11 19:15:27 UTC 2022
_,,,^..^,,,_ (phone)
> On Jan 11, 2022, at 3:22 AM, Marcel Taeumel <marcel.taeumel at hpi.de> wrote:
>
>
> Hi Florin, hi Fabio --
>
> Fixed via VMMaker.oscog-mt.3135.
I just generated the plug-in.
>
> Thanks for reporting this!
+1
>
> Best,
> Marcel
>> Am 10.01.2022 19:39:46 schrieb Florin Mateoc <florin.mateoc at gmail.com>:
>>
>> Also now MCSerializationTest>>#testMczSerialization is succeeding for me,
>> it was failing before (in JsSqueak)
>>
>> On Mon, Jan 10, 2022 at 3:42 AM Fabio Niephaus wrote:
>>
>> >
>> > Hi Florin,
>> >
>> > Happy new year and thanks for the bug report! PNGReadWriterTest seems
>> > to pass on TruffleSqueak (although I remember some bug fixing a while
>> > ago). Anyway, I looked into #primitiveZipSendBlock which seems to be
>> > the only sender of #loadZipEncoderFrom:.
>> >
>> > While #loadZipEncoderFrom: reads from writeStreamInstSize + 1 and + 2,
>> > which is off by one as you mentioned, #primitiveZipSendBlock stores at
>> > readStreamInstSize + 1 and + 2. And as it happens, readStreamInstSize
>> > seems to be 4 while writeStreamInstSize is 5, which compensates for
>> > the off-by-one error. However, I don't understand why reading from the
>> > wrong positions does not cause the tests to fail. Anyway, I cleaned
>> > this up in TruffleSqueak (see [1]).
>> >
>> > Fabio
>> >
>> > [1]
>> > https://github.com/hpi-swa/trufflesqueak/commit/5b6066b54e03e19ec4c4d2b22550ff081e46f6e6
>> >
>> > On Mon, Jan 10, 2022 at 4:33 AM Florin Mateoc
>> > wrote:
>> > >
>> > >
>> > > I should have also mentioned that PNGReadWriterTest also has 18 failures
>> > for SqueakJS, and I think I remember them failing in TruffleSqueak as well
>> > >
>> > > On Sun, Jan 9, 2022 at 10:18 PM Florin Mateoc
>> > wrote:
>> > >>
>> > >> Hi all, and Happy New Year!
>> > >>
>> > >> 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.
>> > >>
>> > >> One is in #loadZipEncoderFrom:
>> > >> 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
>> > >>
>> > >> The other is in #primitiveZipSendBlock
>> > >> 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.
>> > >>
>> > >> 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 :)
>> > >>
>> > >> All the best,
>> > >> Florin
>> >
>> Also now MCSerializationTest>>#testMczSerialization is succeeding for me, it was failing before
>> (in JsSqueak)
>>
>>
>> On Mon, Jan 10, 2022 at 3:42 AM Fabio Niephaus <lists at fniephaus.com> wrote:
>>>
>>>
>>> Hi Florin,
>>>
>>>
>>>
>>> Happy new year and thanks for the bug report! PNGReadWriterTest seems
>>>
>>> to pass on TruffleSqueak (although I remember some bug fixing a while
>>>
>>> ago). Anyway, I looked into #primitiveZipSendBlock which seems to be
>>>
>>> the only sender of #loadZipEncoderFrom:.
>>>
>>>
>>>
>>> While #loadZipEncoderFrom: reads from writeStreamInstSize + 1 and + 2,
>>>
>>> which is off by one as you mentioned, #primitiveZipSendBlock stores at
>>>
>>> readStreamInstSize + 1 and + 2. And as it happens, readStreamInstSize
>>>
>>> seems to be 4 while writeStreamInstSize is 5, which compensates for
>>>
>>> the off-by-one error. However, I don't understand why reading from the
>>>
>>> wrong positions does not cause the tests to fail. Anyway, I cleaned
>>>
>>> this up in TruffleSqueak (see [1]).
>>>
>>>
>>>
>>> Fabio
>>>
>>>
>>>
>>> [1] https://github.com/hpi-swa/trufflesqueak/commit/5b6066b54e03e19ec4c4d2b22550ff081e46f6e6
>>>
>>>
>>>
>>> On Mon, Jan 10, 2022 at 4:33 AM Florin Mateoc <florin.mateoc at gmail.com> wrote:
>>>
>>> >
>>>
>>> >
>>>
>>> > I should have also mentioned that PNGReadWriterTest also has 18 failures for SqueakJS, and I think I remember them failing in TruffleSqueak as well
>>>
>>> >
>>>
>>> > On Sun, Jan 9, 2022 at 10:18 PM Florin Mateoc <florin.mateoc at gmail.com> wrote:
>>>
>>> >>
>>>
>>> >> Hi all, and Happy New Year!
>>>
>>> >>
>>>
>>> >> 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.
>>>
>>> >>
>>>
>>> >> One is in #loadZipEncoderFrom:
>>>
>>> >> 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
>>>
>>> >>
>>>
>>> >> The other is in #primitiveZipSendBlock
>>>
>>> >> 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.
>>>
>>> >>
>>>
>>> >> 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 :)
>>>
>>> >>
>>>
>>> >> All the best,
>>>
>>> >> Florin
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20220111/ea40f11c/attachment.html>
More information about the Vm-dev
mailing list