<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    On 10/24/2023 10:34 PM, Vanessa Freudenberg via Cuis-dev wrote:
    <blockquote
cite="mid:CAOWGXNCJtVL16kqqOEyiDAnftQc9VFVwSsX0Ze_8tStiUBzpFw@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div class="gmail_quote">
          <div dir="ltr">Hi all,
            <div><br>
            </div>
            <div>I was trying to run Cuis on SqueakJS for fun. The spur
              images need some prims that SqueakJS doesn't have yet, but
              the v3 image worked. Or almost worked. The Transcript was
              showing tons of errors which made the system unusable:</div>
            <div><br>
            </div>
          </div>
        </div>
        <blockquote style="margin: 0pt 0pt 0pt 40px; border: medium
          none; padding: 0px;">
          <div class="gmail_quote">
            <div>
              <div>
                <p style="margin: 0px; font-stretch: normal; font-size:
                  12px; line-height: normal; font-family: Helvetica;">HybridCanvas(MorphicCanvas)>>drawWorld:repair:</p>
              </div>
            </div>
          </div>
          <div class="gmail_quote">
            <div>
              <div>
                <p style="margin: 0px; font-stretch: normal; font-size:
                  12px; line-height: normal; font-family: Helvetica;">BitBIt
                  >> copyBits failed. Will retry with parameters
                  rounded. Requested parameters are:</p>
              </div>
            </div>
          </div>
          <div class="gmail_quote">
            <div>
              <div>
                <p style="margin: 0px; font-stretch: normal; font-size:
                  12px; line-height: normal; font-family: Helvetica;">#('dest,
                  source, halftone, rule:' Form(1512x807×32) nil a
                  Bitmap:1 of length 1 0)</p>
              </div>
            </div>
          </div>
          <div class="gmail_quote">
            <div>
              <div>
                <p style="margin: 0px; font-stretch: normal; font-size:
                  12px; line-height: normal; font-family: Helvetica;">#('dest,
                  extent, source, clipOrigin, clipExtent' 523@46 158@280
                  0@0 0@0 681@326)</p>
              </div>
            </div>
          </div>
          <div class="gmail_quote">
            <div>
              <div>
                <p style="margin: 0px; font-stretch: normal; font-size:
                  12px; line-height: normal; font-family: Helvetica;">#('colorMap'
                  a Bitmap:4096 of length 4096)</p>
              </div>
            </div>
          </div>
          <div class="gmail_quote">
            <div>
              <div>
                <p style="margin: 0px; font-stretch: normal; font-size:
                  12px; line-height: normal; font-family: Helvetica;">#copyBitsAgain
                  failed. Requested BitBIt operation not performed. Call
                  stack follows:</p>
              </div>
            </div>
          </div>
          <div class="gmail_quote">
            <div>
              <div>
                <p style="margin: 0px; font-stretch: normal; font-size:
                  12px; line-height: normal; font-family: Helvetica;">BitBitCanvasEngine(BitBIt)>>copyBitsAgain</p>
              </div>
            </div>
          </div>
        </blockquote>
        <div class="gmail_quote">
          <div dir="ltr">
            <div><br>
            </div>
            <div>Turned out the BitBlt failed because some bitmaps were
              1 word longer than width*height would require, and my (10
              year old) version of BitBlt complained about that, it
              expected an exact size match.</div>
            <div><br>
            </div>
            <div>I implemented a workaround in my VM which warns about
              the mismatch but doesn't fail the BitBlt primitive. It
              works now, try it here 🎉</div>
            <div><br>
            </div>
            <div>    <a moz-do-not-send="true"
                href="https://tinyurl.com/cuis6053" target="_blank">https://tinyurl.com/cuis6053</a><br>
            </div>
            <div><br>
            </div>
            <div>Cuis on a phone 😍 although not exactly usable there
              (you could set highdpi to false in the URL but then the UI
              gets huge).</div>
            <div><br>
            </div>
            <div>
              <div>But my question is: Was the image wrong or the VM?
                I've never seen this problem in Squeak images, old or
                new.</div>
              <div><br>
              </div>
              <div>Vanessa</div>
            </div>
            <div><br>
            </div>
            <div><img src="cid:part1.08070504.02060405@cuis.st"
                alt="IMG_0FC5A40A0908-1.jpeg" height="542" width="250"><br>
            </div>
            <div><br>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Hi Vanessa,<br>
    <br>
    This is very nice, thank you!<br>
    <br>
    WRT the (self wordsPerLine * height) + 1, it is there because of a
    bug in VectorEnginePlugin, that could access an invalid position
    beyond the end. See senders of #VEPapi5. But as SqueakJS doesn't
    include the VectorEnginePlugin, that hack is not needed. Just pushed
    an update for that. In order to use it, you'd need to pull repo,
    start Cuis with an OpenSmalltalk VM, do World / Changes / Install
    new updates, then save the image.<br>
    <br>
    Still, I wonder why the Spur image flavors won't run on SqueakJS. Is
    Cuis using some primitive that Squeak doesn't use? (I mean, Spur
    Squeak does run on SqueakJS, right?) If so, do you plan to include
    them? If not, please tell which they are, I can borrow workaround
    code for them from older Cuis, or from Squeak, so Spur Cuis will run
    on SqueakJS.<br>
    <br>
    Main reason is that in the future I'd like to have a single,
    immediate, Unicode ready Character class. Right now Character is the
    old byte style from Smalltalk-80, and UnicodeCodePoint is immediate
    on Spur but not on V3. I'd like to clean all that.<br>
    <br>
    Thanks!<br>
    <pre class="moz-signature" cols="72">-- 
Juan Vuletich
cuis.st
github.com/jvuletich
researchgate.net/profile/Juan-Vuletich
independent.academia.edu/JuanVuletich
patents.justia.com/inventor/juan-manuel-vuletich
linkedin.com/in/juan-vuletich-75611b3
twitter.com/JuanVuletich</pre>
  </body>
</html>