<!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 Stephen,<br>
    <br>
    Apologies for being so slow in answering.<br>
    <br>
    On 12/2/2022 12:17 AM, Stephen Travis Pope via Cuis-dev wrote:
    <blockquote
      cite="mid:A7681436-3D1F-4891-BD8F-9BE64FCB4201@heaveneverywhere.com"
      type="cite">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div><br>
      </div>
      <div>Hello all,</div>
      <div><br>
      </div>
      <div>1. I have to say that I’m *loving* Cuis development (except
        that my dislike of Morphic now borders on…).</div>
    </blockquote>
    <br>
    I'm glad you like Cuis. Perhaps if you are specific on just a few of
    the worst annoyances, we try to fix them, or make them more
    tolerable :)<br>
    <br>
    <blockquote
      cite="mid:A7681436-3D1F-4891-BD8F-9BE64FCB4201@heaveneverywhere.com"
      type="cite">
      <div>2. Is there a central place for documentation of the language
        changes in Cuis, such as,</div>
      <div><br>
      </div>
      <div><span class="Apple-tab-span" style="white-space: pre;"> </span>{
        … }
        <div><span class="Apple-tab-span" style="white-space: pre;"> </span>`
          … `</div>
        <div><span class="Apple-tab-span" style="white-space: pre;"> </span>::</div>
      </div>
    </blockquote>
    <br>
    World / Help / Terse Guide to Cuis<br>
    <br>
    <blockquote
      cite="mid:A7681436-3D1F-4891-BD8F-9BE64FCB4201@heaveneverywhere.com"
      type="cite">
      <div>
        <div>
          <div>(Part of the reason I was so shocked by Pharo is that I
            played a bit in the browser and thought, “I wonder what
            language this is…”)</div>
        </div>
        <div><br>
        </div>
        <div>(The only language extension I was ever motivated to make
          to Smalltalk was to use “{ }" as nesting comment characters.)</div>
        <div><br>
        </div>
        <div>The main usage I find of the { … } form in Cuis is in menu
          creation, where one sees,</div>
        <div><br>
        </div>
        <div><span class="Apple-tab-span" style="white-space: pre;"> </span>{#label
          -> 'find class... (f)'. #selector -> #findClass}
          asDictionary.</div>
         <br>
        <div>which could more easily be written in “standard”
          Smalltalk-80 as,</div>
        <div><br>
        </div>
        <div><span class="Apple-tab-span" style="white-space: pre;"> </span>(#label
          -> 'find class... (f)’) , (#selector -> #findClass)</div>
        <div><br>
        </div>
        <div>using the shorthand that,</div>
        <div><span class="Apple-tab-span" style="white-space: pre;"> </span>(association,
          association) -> dictionary </div>
        <div>and,</div>
        <div><span class="Apple-tab-span" style="white-space: pre;"> </span>(dictionary,
          association) adds association to the dictionary.</div>
      </div>
    </blockquote>
    <br>
    The big difference is that the {...} form doesn't create a literal.
    Each element is evaluated, so it can be arbitrary Smalltalk code.
    Additionally, backticks $` are used to delimit Smalltalk code that
    is evaluated at compile time, actually creating a literal from
    _anything_. So<br>
    <br>
    stuff<br>
        | a |<br>
        a := `{ Smalltalk size. Object withAllSubclasses collect: [ :c |
    c allInstances size ] }`<br>
    <br>
    is perfectly valid, and you get an array that is created and filled
    at compile time, and stored in the method in the literal frame (like
    any other literal). These kind of facilities are not needed often,
    but they can be helpful, and simplify code by avoiding some class
    variables and initialization code.<br>
    <br>
    <blockquote
      cite="mid:A7681436-3D1F-4891-BD8F-9BE64FCB4201@heaveneverywhere.com"
      type="cite">
      <div>
        <div>3. I’d really love to hear from anyone who can get the FFI
          or Socket back-end to work on an ARM-based Mac.  I’m having no
          luck at all, and have checked that the app resources contain
          binary bundles with the right external code tokens in the name
          list.  Could it be the loader?</div>
      </div>
    </blockquote>
    <br>
    Any news wrt this? Have you tried FFI or Sockets on your ARM Mac
    using Squeak? As we use the very same VM, if something works on
    Squeak but it doesn't work in Cuis, at least we have a good place to
    do experiments and look for code to integrate. <br>
    <br>
    Have you tried asking in <a class="moz-txt-link-abbreviated" href="mailto:vm-dev@lists.squeakfoundation.org">vm-dev@lists.squeakfoundation.org</a> ?<br>
    <br>
    <blockquote
      cite="mid:A7681436-3D1F-4891-BD8F-9BE64FCB4201@heaveneverywhere.com"
      type="cite">
      <div>
        <div>Thanks to the team!!!</div>
        <div><br>
        </div>
        <div>Latest image of the display list stuff is below, still no
          interaction with the items, though the menu works…</div>
        <div><br>
        </div>
        <div>stp</div>
        <div><br>
        </div>
        <div>——</div>
      </div>
    </blockquote>
    <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>