<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>