<!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">
    Hi Jaromir,<br>
    <br>
    On 12/1/2023 4:31 PM, Jaromir Matas via Cuis-dev wrote:
    <blockquote
      cite="mid:em9d10ac9e-b0c4-4450-9bec-4d9fc71fb4e7@ab6ea512.com"
      type="cite">
      <style id="css_styles" type="text/css"><!--blockquote.cite { margin-left: 5px; margin-right: 0px; padding-left: 10px; padding-right:0px; border-left: 1px solid #cccccc }
blockquote.cite2 {margin-left: 5px; margin-right: 0px; padding-left: 10px; padding-right:0px; border-left: 1px solid #cccccc; margin-top: 3px; padding-top: 0px; }
a img { border: 0px; }
li[style='text-align: center;'], li[style='text-align: center; '], li[style='text-align: right;'], li[style='text-align: right; '] {  list-style-position: inside;}
body { font-family: 'Segoe UI'; font-size: 12pt; }
.quote { margin-left: 1em; margin-right: 1em; border-left: 5px #ebebeb solid; padding-left: 0.3em; }
--></style>
      <div>Hi Juan,
      </div>
      <div><br>
      </div>
      <div>Many thanks!
      </div>
      <div><br>
      </div>
      <div>> edit Cuis-Smalltalk-Dev/UserPrefs.txt to your liking
      </div>
      <div><br>
      </div>
      <div>perfect
      </div>
      <div><br>
      </div>
      <div>> You could do ./pullAllRepos.sh. </div>
      <div><br>
      </div>
      <div>that didn't help but having been encouraged I tried
        ./clonePackageRepos.sh and then all core packages loaded
      </div>
      <div><br>
      </div>
      <div>> Anyway, unless you really want to load 'CorePackages',
        I'd just skip that step.
      </div>
      <div><br>
      </div>
      <div>What I really wanted was BaseImageTests to access the tests.
        Normally I don't do any Feature require - unless I need the
        tests. Is this actually the right/easiest way to get there?
      </div>
    </blockquote>
    <br>
    For that you only need the main Cuis-Smalltalk-Dev repo, and just
    evaluate `Feature require: 'BaseImageTests'`. Much quicker and
    simpler. And no breackage in optional packages will affect you.<br>
    <br>
    <blockquote
      cite="mid:em9d10ac9e-b0c4-4450-9bec-4d9fc71fb4e7@ab6ea512.com"
      type="cite">
      <div>I'm enclosing the updated changesets.
      </div>
    </blockquote>
    <br>
    Thanks. Just integrated them and pushed to GitHub.<br>
    <br>
    <blockquote
      cite="mid:em9d10ac9e-b0c4-4450-9bec-4d9fc71fb4e7@ab6ea512.com"
      type="cite">
      <div>Two more unrelated questions:
      </div>
      <div><br>
      </div>
      <div>1) I've noticed all underscore assignments in
        #runUntilErrorOrReturnFrom have been replaced with ':=' - have I
        missed something?
      </div>
    </blockquote>
    <br>
    We are switching to saving all code in files with ':=' ANSI
    assignments, to help with interoperability with other Smalltalk
    dialects, but also for a better experience when viewing code with
    external tools. They are still displayed as a left arrow inside the
    image by default.<br>
    <br>
    <blockquote
      cite="mid:em9d10ac9e-b0c4-4450-9bec-4d9fc71fb4e7@ab6ea512.com"
      type="cite">
      <div>2) I'm a bit hesitant to ask but what is a "quick return"? I
        haven't come across this term until Facundo updated the
        #runUntilErrorOrReturnFrom: method.
      </div>
      <div><br>
      </div>
      <div>I can see
      </div>
      <div><br>
      </div>
      <div>        "Quick Push Const Methods"
      </div>
      <div>        (256 nil) "primitivePushSelf"
      </div>
      <div>        (257 nil) "primitivePushTrue"
      </div>
      <div>        (258 nil) "primitivePushFalse"
      </div>
      <div>        (259 nil) "primitivePushNil"
      </div>
      <div>        (260 nil) "primitivePushMinusOne"
      </div>
      <div>        (261 nil) "primitivePushZero"
      </div>
      <div>        (262 nil) "primitivePushOne"
      </div>
      <div>        (263 nil) "primitivePushTwo"
      </div>
      <div><br>
      </div>
      <div>        "Quick Push Inst Var Methods"
      </div>
      <div>        (264 519 nil) "primitiveLoadInstVar 0 - 255"
      </div>
      <div><br>
      </div>
      <div>but it still doesn't ring any bell why "quick return" ;)
      </div>
    </blockquote>
    <br>
    Just do Show... / byteCodes in any browser on a method whose only
    code is to return self, true, false, nil, -1, 0, 1, 2 or an instance
    variable. This is done via those primitives you listed, meaning that
    there is no real method activation. It is an optimization that comes
    (I believe) from Smalltalk-80. See #isQuick, #isReturnSpecial,
    #isReturnField and #longPrintOn:indent: .<br>
    <br>
    <blockquote
      cite="mid:em9d10ac9e-b0c4-4450-9bec-4d9fc71fb4e7@ab6ea512.com"
      type="cite">
      <div>Thanks again,
      </div>
      <div>best
      </div>
      <div>Jaromir</div>
      <div style="clear: both;"><br>
      </div>
      <br>
    </blockquote>
    <br>
    Thank you.<br>
    Cheers!<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>