<div dir="ltr"><div dir="ltr"><br></div><div dir="ltr">Hi Juan<br><br>Yes, I am lucky enough that my "database" (in the form of a data obj file) currently uses "small" SmallIntegers (values < 10000, and mostly <=255 in ByteArrarys).<br><br>Moving it from Squeak to Cuis is fine again.<br>Thank you for re-establishing this compatibility in Cuis 7.5 with change set 7600-ReferenceStream-Compatibility! <br><br>I am currently looking into the issue you mention with a broken implementation serializing larger values of SmallIntegers with DataStreams or ReferenceStreams in Squeak. I want to identify these cases and will post the results under a subject 'ReferenceStreams with "large" SmallIntegers in Cuis and Squeak'<br><br>--Hannes</div><div dir="ltr"><br></div><div dir="ltr"><br></div>On Mon, Sep 22, 2025 at 3:45 PM Juan Vuletich <<a href="mailto:juan@cuis.st">juan@cuis.st</a>> wrote:<div class="gmail_quote gmail_quote_container"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><u></u>
<div>
<p>Hi,</p>
<div>On 22/09/2025 10:10 AM, H. Hirzel via
Cuis-dev wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>I could identify the change set which causes the problem,
it is from last Wednesday<br>
</div>
<div><br>
</div>
<div>CoreUpdates\<a href="http://7580-ReferenceStream-61BitSmallIntegers-fix-JuanVuletich-2025Sep17-08h16m-jmv.001.cs.st" target="_blank">7580-ReferenceStream-61BitSmallIntegers-fix-JuanVuletich-2025Sep17-08h16m-jmv.001.cs.st</a></div>
<div><br>
</div>
<div>It introduces a new version of #readInteger and
writeInteger: in the class DataStream.</div>
<div>If I undo the change of this change set it works.</div>
<div><br>
</div>
<div>--Hannes<br>
</div>
</div>
</blockquote>
<p><br>
</p>
<p>As you saw in that changeset (file name, comments in code, c ommit
message), and as exemplified in the test added to BaseImageTests
shortly after, what that code does is not to cause a problem, but
to fix a serious bug that has been around for a long time and that
is still present in Squeak. Just try to serialize an object with a
largish SmallInteger and see what you get back.</p></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>
<p>Anyway. I just pushed a better implementation that uses a
different format for 32bit SmallIntegers than from larger ones.
This brings back compatibility with the badly broken Squeak
format, although it obviously can't bring back the bits that
Squeak discarded when saving the file, and results will be wrong
unless you're lucky enough to only use small SmallIntegers.</p></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>
<p><br>
</p>
<br></div></blockquote><br></div></div>