<!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 Folks,<br>
    <br>
    I have just pushed an update to VectorEnginePlugin.pck.st at the
    Cuis-Smalltalk-Dev Cuis repo to use only ANSI style assignment ' :=
    '. In my system, generated C source is exactly the same as before.<br>
    <br>
    Thank you all for your help in integrating this in the official VMs!<br>
    <br>
    Cheers,<br>
    <pre class="moz-signature" cols="72">-- 
Juan Vuletich
<a class="moz-txt-link-abbreviated" href="http://www.cuis-smalltalk.org">www.cuis-smalltalk.org</a>
<a class="moz-txt-link-freetext" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a>
<a class="moz-txt-link-freetext" href="https://github.com/jvuletich">https://github.com/jvuletich</a>
<a class="moz-txt-link-freetext" href="https://www.linkedin.com/in/juan-vuletich-75611b3">https://www.linkedin.com/in/juan-vuletich-75611b3</a>
@JuanVuletich</pre>
    <br>
    On 8/11/2021 4:14 AM, Marcel Taeumel wrote:<br>
    <br>
    <blockquote
      cite="mid:Mailbird-8f60e3fd-f1cd-4cb6-a28f-061685fb1b83@hpi.de"
      type="cite">
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <div id="__MailbirdStyleContent" style="font-size: 10pt;
        font-family: Arial; color: rgb(0, 0, 0); text-align: left;"
        dir="ltr"> Hi Juan!
        <div><br>
        </div>
        <div>> [...] <span style="font-family:
            Arial,Helvetica,sans-serif; font-size: 13px;">I'll happy </span><span
            style="font-family: Arial,Helvetica,sans-serif; font-size:
            13px;">to make the change.</span></div>
        <div><span style="font-family: Arial,Helvetica,sans-serif;
            font-size: 13px;"><br>
          </span></div>
        <div><span style="font-family: Arial,Helvetica,sans-serif;
            font-size: 13px;">This would be the easiest solution. :-)
            Thank you!</span></div>
        <div><span style="font-family: Arial,Helvetica,sans-serif;
            font-size: 13px;"><br>
          </span></div>
        <div><span style="font-family: Arial,Helvetica,sans-serif;
            font-size: 13px;">Hi Eliot!</span></div>
        <div><span style="font-family: Arial,Helvetica,sans-serif;
            font-size: 13px;"><br>
          </span></div>
        <div><span style="font-family: Arial,Helvetica,sans-serif;
            font-size: 13px;">> [...] </span><span
            style="font-family: Arial,Helvetica,sans-serif; font-size:
            13px;">the class side method must be loaded before methods
            containing a underscore assignments [...]</span></div>
        <div><span style="font-family: Arial,Helvetica,sans-serif;
            font-size: 13px;"><br>
          </span></div>
        <div><span style="font-family: Arial,Helvetica,sans-serif;
            font-size: 13px;">Currently, Squeak+Monticello give only
            coarse-grained control over code load order:</span></div>
        <div><span style="font-family: Arial,Helvetica,sans-serif;
            font-size: 13px;"><br>
          </span></div>
        <div><span style="font-family: Arial,Helvetica,sans-serif;
            font-size: 13px;">- Packages can be ordered via MC
            "dependencies" (see "required packages" in context menu)</span><span
            style="font-family: Arial,Helvetica,sans-serif; font-size:
            13px;"><br>
          </span></div>
        <div><span style="font-family: Arial,Helvetica,sans-serif;
            font-size: 13px;">- Packages can be ordered in an update map
            / MCConfiguration</span></div>
        <div><span style="font-family: Arial,Helvetica,sans-serif;
            font-size: 13px;">- MCPackageLoader implements some generic
            rules such as "addition-before-removal", which affects "move
            methods" across packages (see MCPackageLodaer >>
            #basicLoad)</span></div>
        <div><span style="font-family: Arial,Helvetica,sans-serif;
            font-size: 13px;"><br>
          </span></div>
        <div><span style="font-family: Arial,Helvetica,sans-serif;
            font-size: 13px;">So, even the #compilerClass hook is
            currently not working as one might expect. We currently rely
            on the byte code being present in and installed from .mcz
            files. See snapshot.bin inside the .mcz.</span></div>
        <div><span style="font-family: Arial,Helvetica,sans-serif;
            font-size: 13px;"><br>
          </span></div>
        <div><span style="font-family: Arial,Helvetica,sans-serif;
            font-size: 13px;">Maybe also see MethodAddition >>
            #notifyObservers.</span></div>
        <div><span style="font-family: Arial,Helvetica,sans-serif;
            font-size: 13px;"><br>
          </span></div>
        <div><span style="font-family: Arial,Helvetica,sans-serif;
            font-size: 13px;">Best,</span></div>
        <div><span style="font-family: Arial,Helvetica,sans-serif;
            font-size: 13px;">Marcel</span></div>
        <blockquote class="history_container" type="cite"
          style="border-left-style: solid; border-width: 1px;
          margin-top: 20px; margin-left: 0px; padding-left: 10px;
          min-width: 500px;">
          <p style="color: rgb(170, 170, 170); margin-top: 10px;">Am
            10.08.2021 19:21:48 schrieb Juan Vuletich
            <a class="moz-txt-link-rfc2396E" href="mailto:juanvuletich@zoho.com"><juanvuletich@zoho.com></a>:</p>
          <div style="font-family: Arial,Helvetica,sans-serif;"> <br>
            Hi Folks,<br>
            <br>
            On 8/10/2021 1:40 PM, Eliot Miranda wrote:<br>
            ><br>
            > Hi Dave, Hi Marcel,<br>
            ><br>
            >> On Aug 8, 2021, at 5:40 PM, David T. Lewis<lewis@mail.msen.com>
              wrote:<br>
              >><br>
              >> <br>
              >> Background: By convention the assignment operator
              in modern day Squeak<br>
              >> is ':=' and it Cuis it is '_'. The actual fonts
              are rendered nicely in<br>
              >> either case for Cuis and Squeak.<br>
              >><br>
              >> The VMs used for Cuis and Squeak consist of the
              VM proper along with various<br>
              >> VM plugins such as OSProcessPlugin and
              VectorEnginePlugin. The VM plugins<br>
              >> are written in Smalltalk ("slang") with
              supporting external code as needed.<br>
              >> The Smalltalk code for each VM plugin is
              translated to C code, and the<br>
              >> resulting C code is expected to be correct
              regardless of the dialect of<br>
              >> Squeak/Cuis in which the plugin is written.<br>
              >><br>
              >> The generated C code for a VM plugin is the same
              regardless of whether the<br>
              >> Smalltalk source is written in the '_' or ':='
              convention. However, mixing<br>
              >> these two conventions in the same VMMaker image
              may be confusing, especially<br>
              >> if the (Squeak) image has disabled its 'Allow
              underscore selectors' preference.<br>
              >><br>
              >> OK, enough background. The question I want to
              present is this:<br>
              >><br>
              >> The new VectorEnginePlugin is being developed in
              Cuis, and therefore uses<br>
              >> the '_' convention in its Smalltalk source code.
              When building a new<br>
              >> opensmalltalk-vm VMMaker image from primary
              sources, the 'Allow underscore<br>
              >> selectors' preference' is disabled, presumably in
              order to catch VM plugin<br>
              >> code that accidentally uses the '_' convention.
              However, in the case of<br>
              >> VectorEnginePlugin, the use of '_' is
              intentional, and we can expect it<br>
              >> to be used for current and future versions of the
              plugin Smalltalk code<br>
              >> as development proceeds.<br>
              >><br>
              >> So should we:<br>
              >><br>
              >> 1) Relax the restriction and allow
              VectorEnginePlugin to be loaded without<br>
              >> modification in a VMMaker image<br>
              >><br>
              >> or:<br>
              >><br>
              >> 2) Convert current and future versions of the
              VectorEnginePlugin Smalltalk<br>
              >> to use ':=' for assigments prior to loading in a
              Squeak VMMaker image<br>
              >> (method author/timestamps would be preserved).<br>
              >><br>
              >> I personally prefer 1) but consider either option
              to be reasonable and doable.<br>
              >><br>
              >> Comments? Preferences?<br>
              > My preference is 1a :-). 1a is supporting a Compiler
              patch that allows one to assert the 'Allow underscore
              selectors' preference on a per-class basis and adding some
              class side state (a method? A method containing a pragma?)
              to VectorEnginePlugin that asserts the preference. Maybe
              this is too elaborate, and there’s a bootstrap problem
              (the class side method must be loaded before methods
              containing a underscore assignments) but I like not having
              the preference globally.<br>
              ><br>
              >> Dave<br>
              <br>
              I can change VectorEnginePlugin to use only ':='
              assignments. I used '_' <br>
              assignments only because it is what I am used to. But this
              is code that <br>
              is meant to be used in Squeak and not only in Cuis. Dave,
              unless you see <br>
              additional value in allowing '_' assignment in plugin
              code, I'll happy <br>
              to make the change.<br>
              <br>
              Thanks,<br>
              <br>
              -- <br>
              Juan Vuletich<br>
              <a class="moz-txt-link-abbreviated" href="http://www.cuis-smalltalk.org">www.cuis-smalltalk.org</a><br>
              <a class="moz-txt-link-freetext" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a><br>
              <a class="moz-txt-link-freetext" href="https://github.com/jvuletich">https://github.com/jvuletich</a><br>
              <a class="moz-txt-link-freetext" href="https://www.linkedin.com/in/juan-vuletich-75611b3">https://www.linkedin.com/in/juan-vuletich-75611b3</a><br>
              @JuanVuletich<br>
              <br>
            </lewis@mail.msen.com></div>
        </blockquote>
      </div>
    </blockquote>
    <br>
    <br>
  </body>
</html>