<div dir="ltr">wow, I did not know about those changes in Squeak and Pharo...<div>Anyway, for me the least surprising behavior is the original one, it is what most of the people will expect to happen.</div><div>I understand the consistency of the proposed behavior, but as I said before, it is an edge case that deserves special treatment.</div><div><br></div><div>Cheers!</div><div>Hernan.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, May 13, 2022 at 12:32 PM Martin McClure <<a href="mailto:martin@hand2mouse.com">martin@hand2mouse.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div>
    <div>
      <blockquote type="cite">
        <div>Going back to the original behavior makes the behavior of
          these messages more natural and it will maintain compatibility
          with other Squeak descendant Smalltalks.</div>
        <div><br>
        </div>
      </blockquote>
      <br>
      If compatibility is desirable, the ANSI spec is often (but not
      always) a good guide.<br>
      <br>
      As far as Squeak-descendant Smalltalks, for "1@-2" Squeak puts up
      a warning about "ambiguous selector" and asks you to choose which
      interpretation to use. Pharo interprets "1@-2" as a send of #'@-'.
      So this change would seem to make Cuis *more* compatible than the
      original behavior.<br>
      <br>
      And it gets rid of the special-casing of $- in binary selectors,
      which increases the simplicity and regularity of the language,
      some of the characteristics that are so great about Smalltalk.<br>
      <br>
      Regards,<br>
      -Martin<br>
      <br>
      On 5/13/22 08:02, Hernan Wilkinson via Cuis-dev wrote:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="ltr">I would go back to the original behavior. if 1 @- 2
        sends the message @- to 1 then that message will have to be
        implemented in Number to get the expected behavior, and that
        will happen with 1 *- 2 and 1 /- 2 and so on.
        <div>This is a case where we have to be pragmatic and we have to
          prioritize how these messages are modeling the arithmetic of
          numbers.</div>
        <div>For me, this is an example where a special case in the
          syntax makes it more easy to use, closer to the domain problem
          where those messages are used 99% of the time (mathematic) and
          that will generate the least number of surprises.</div>
        <div>We already have problems explaining why 3 + 4 * 5 is not 23
          but 35, I can not imagine myself explaining why 1@-2 is not
          the same as 1@- 2 </div>
        <div>when -2 and - 2 are the same.</div>
        <div>And also, I think we have to give credit to the people that
          defined this behavior a long (Dan Ingalls & co). For sure
          they had this same discussion and they decided to go this way
          for a reason, and the reason for me has to do with what I
          mentioned earlier.</div>
        <div>Going back to the original behavior makes the behavior of
          these messages more natural and it will maintain compatibility
          with other Squeak descendant Smalltalks.</div>
        <div><br>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Fri, May 13, 2022 at 11:38
          AM Luciano Notarfrancesco <<a href="mailto:luchiano@gmail.com" target="_blank">luchiano@gmail.com</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          <div dir="auto">Sounds good to me, but not a requirement for
            my use case, if you think it would complicate the parser you
            don’t need to do it (at least not for me).</div>
          <div><br>
            <div class="gmail_quote">
              <div dir="ltr" class="gmail_attr">On Fri, 13 May 2022 at
                9:31 PM Juan Vuletich <<a href="mailto:JuanVuletich@zoho.com" target="_blank">JuanVuletich@zoho.com</a>>
                wrote:<br>
              </div>
              <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
                <div bgcolor="#ffffff"> I'm pretty sure I can tweak the
                  parser to treat specially $- as last char of a binary
                  selector, so that<br>
                  <br>
                  1@-2 creates a Point.<br>
                  1 @ -2 also creates a Point.<br>
                  1 @- 2 (note the space between - and 2) sends #@-,
                  whatever that might mean.<br>
                  <br>
                  I know it wouldn't be strictly ANSI, but that
                  shouldn't be too important.<br>
                  <br>
                  Do you folks think this would be reasonable behavior?<br>
                  <br>
                  Thanks,</div>
                <div bgcolor="#ffffff"><br>
                  <br>
                  On 5/13/2022 11:07 AM, Luciano Notarfrancesco via
                  Cuis-dev wrote:
                  <blockquote type="cite">
                    <div>Can you think of other characters that could be
                      problematic when allowing them in binary
                      selectors? I don’t use selectors ending with $-,
                      and I agree that the original behavior is more
                      convenient and intuitive. The only disadvantage of
                      keeping the original behavior for this case would
                      be not being ANSI compliant, not a problem for me.</div>
                    <div><br>
                      <div>
                        <div>On Fri, 13 May 2022 at 8:58 PM Luciano
                          Notarfrancesco <<a href="mailto:luchiano@gmail.com" target="_blank">luchiano@gmail.com</a>>
                          wrote:<br>
                        </div>
                        <blockquote>
                          <div>Personally I don’t mind if we decide to
                            make an exception for the special case of
                            $-, but only for that character, because I
                            want to have more options available for
                            binary operators (for example with $|).</div>
                          <div><br>
                          </div>
                          <div>
                            <div>
                              <div>On Fri, 13 May 2022 at 8:53 PM Hernan
                                Wilkinson <<a href="mailto:hernan.wilkinson@10pines.com" target="_blank">hernan.wilkinson@10pines.com</a>>
                                wrote:<br>
                              </div>
                              <blockquote>
                                <div>Even more... this change makes
                                  things like: 1*-2 or 1/-2 or 1//-2 or
                                  1+-2, etc etc etc to generate an
                                  error.<br>
                                  <div>I think it does not make
                                    sense.... any common programmer will
                                    expect 1*-2 to return -2 and not an
                                    error.</div>
                                  <div>I think we should get back to the
                                    previous behavior.</div>
                                  <div><br>
                                  </div>
                                  <div>What do you think?</div>
                                </div>
                                <div>
                                  <div><br>
                                  </div>
                                  <div>Hernan.</div>
                                </div>
                                <br>
                                <div>
                                  <div>On Fri, May 13, 2022 at 10:34 AM
                                    Hernan Wilkinson <<a href="mailto:hernan.wilkinson@10pines.com" target="_blank">hernan.wilkinson@10pines.com</a>>
                                    wrote:<br>
                                  </div>
                                  <blockquote>
                                    <div>Hi all!
                                      <div> I'm just wondering why you
                                        guys think that having @- as a
                                        unary selector is better than
                                        interpreting it as valid for a
                                        negative y of a point... </div>
                                      <div> I mean, it is much more
                                        common to write 1@-1 as a point
                                        whose y is -1 than to use @- as
                                        a selector...</div>
                                      <div> Newcomers will have bit time
                                        problems to understand why 1@-1
                                        does not generate a point with a
                                        -1 as the y, unless the @-
                                        message is implemented in Point
                                        to create a point with the
                                        negation of the parameter
                                        which is for me an
                                        unnecessary indirection...</div>
                                      <div> I mean, what other class is
                                        going to implement a message
                                        such as @- ? </div>
                                      <div> It seems to me more
                                        useful the behavior we had
                                        previous to this change.</div>
                                      <div><br>
                                      </div>
                                      <div>Hernan.</div>
                                      <div> </div>
                                    </div>
                                    <br>
                                    <div>
                                      <div>On Fri, May 13, 2022 at 9:52
                                        AM Luciano Notarfrancesco via
                                        Cuis-dev <<a href="mailto:cuis-dev@lists.cuis.st" target="_blank">cuis-dev@lists.cuis.st</a>>
                                        wrote:<br>
                                      </div>
                                      <blockquote>
                                        <div>If you don't mind, I think
                                          these printOns look better
                                          (either one)</div>
                                        <br>
                                        <div>
                                          <div>On Fri, May 13, 2022 at
                                            2:36 AM Luciano
                                            Notarfrancesco <<a href="mailto:luchiano@gmail.com" target="_blank">luchiano@gmail.com</a>>
                                            wrote:<br>
                                          </div>
                                          <blockquote>
                                            <div>Oh, great, thanks! I
                                              was just thinking that
                                              “1@(-1)” could have been a
                                              better choice for the fix,
                                              and that maybe we should
                                              have a preference to avoid
                                              overwriting timestamp and
                                              other people’s initials
                                              when we do trivial changes
                                              like this.</div>
                                            <div><br>
                                            </div>
                                            <div><br>
                                              <div>
                                                <div>On Fri, 13 May 2022
                                                  at 3:41 AM Juan
                                                  Vuletich <<a href="mailto:JuanVuletich@zoho.com" target="_blank">JuanVuletich@zoho.com</a>> wrote:<br>
                                                </div>
                                                <blockquote>
                                                  <div> Thanks Folks!<br>
                                                    <br>
                                                    Luciano, I just
                                                    pushed your changes.
                                                    I also found an
                                                    instance of '\\-'
                                                    that I fixed too.
                                                    There are several
                                                    changes required for
                                                    optional packages in
                                                    the Cuis-Smalltalk
                                                    organization. Will
                                                    push them tomorrow.<br>
                                                    <br>
                                                    WRT to Decompiler,
                                                    decompiled code is
                                                    actually OK, with a
                                                    space after binary
                                                    selectors. What was
                                                    wrong was the
                                                    #storeString of
                                                    literal Points.
                                                    Fixed
                                                    Point>>#printOn:
                                                    for that. Now
                                                    DecompilerTests
                                                    pass.<br>
                                                    <br>
                                                    Cheers!</div>
                                                  <div><br>
                                                    <br>
                                                    On 5/9/2022 3:21 PM,
                                                    Luciano
                                                    Notarfrancesco via
                                                    Cuis-dev wrote:
                                                    <blockquote type="cite">
                                                      <div>Martin,
                                                        <div>Thanks for
                                                          the very
                                                          detailed
                                                          explanation! I
                                                          went ahead and
                                                          replaced '@-'
                                                          with '@ -' in
                                                          the image and
                                                          the tests.
                                                          There are
                                                          still 10 tests
                                                          producing
                                                          errors because
                                                          the decompiler
                                                          decompiles it
                                                          without the
                                                          space, tho.</div>
                                                        <div><br>
                                                        </div>
                                                      </div>
                                                      <br>
                                                      <div>
                                                        <div>On Mon, May
                                                          9, 2022 at
                                                          5:04 PM Martin
                                                          McClure <<a href="mailto:martin@hand2mouse.com" target="_blank">martin@hand2mouse.com</a>> wrote:<br>
                                                        </div>
                                                        <blockquote>
                                                          <div>
                                                          <div>The ANSI
                                                          Smalltalk
                                                          grammar says
                                                          that "@-"
                                                          should be a
                                                          valid binary
                                                          selector, and
                                                          would require
                                                          whitespace in
                                                          "1@ -1" to
                                                          interpret the
                                                          argument as a
                                                          literal
                                                          negative one.<br>
                                                          <br>
                                                          The Blue Book
                                                          grammar,
                                                          though, does
                                                          not allow "@-"
                                                          as a binary
                                                          selector. The
                                                          Blue Book
                                                          grammar, as
                                                          printed, also
                                                          does not allow
                                                          "," as a
                                                          binary
                                                          selector, even
                                                          though that
                                                          was clearly
                                                          used as a
                                                          binary
                                                          selector in
                                                          Smalltalk-80.
                                                          The Blue Book
                                                          grammar also
                                                          does not talk
                                                          about
                                                          whitespace at
                                                          all, even
                                                          though that is
                                                          clearly
                                                          required in
                                                          some places,
                                                          so the Blue
                                                          Book is a bit
                                                          fuzzier than
                                                          one would want
                                                          as a grammar
                                                          reference.<br>
                                                          <br>
                                                          Going with
                                                          ANSI-like
                                                          grammar and
                                                          putting a
                                                          space in
                                                          expressions
                                                          like "1 @- 1"
                                                          makes more
                                                          sense to me.
                                                          Allows more
                                                          valid
                                                          selectors, and
                                                          the code is
                                                          more readable
                                                          with the
                                                          whitespace.<br>
                                                          <br>
                                                          Regards,<br>
                                                          -Martin <br>
                                                          <br>
                                                          On 5/9/22
                                                          03:48, Luciano
                                                          Notarfrancesco
                                                          via Cuis-dev
                                                          wrote:<br>
                                                          </div>
                                                          <blockquote type="cite">
                                                          <div>After
                                                          this change
                                                          '1@-1' is
                                                          parsed as a
                                                          binary message
                                                          #@-, and this
                                                          causes some
                                                          base image
                                                          tests to fail.
                                                          Should we add
                                                          a space
                                                          between @ and
                                                          -1 or should
                                                          we fix the
                                                          parser?</div>
                                                          <br>
                                                          <div>
                                                          <div>On Fri,
                                                          May 6, 2022 at
                                                          1:56 PM
                                                          Luciano
                                                          Notarfrancesco
                                                          <<a href="mailto:luchiano@gmail.com" target="_blank">luchiano@gmail.com</a>>
                                                          wrote:<br>
                                                          </div>
                                                          <blockquote>
                                                          <div>That was
                                                          quick. Thanks
                                                          a lot!</div>
                                                          <div><br>
                                                          <div>
                                                          <div>On Fri, 6
                                                          May 2022 at
                                                          8:55 PM Juan
                                                          Vuletich <<a href="mailto:JuanVuletich@zoho.com" target="_blank">JuanVuletich@zoho.com</a>> wrote:<br>
                                                          </div>
                                                          <blockquote>
                                                          <div> On
                                                          5/6/2022 10:48
                                                          AM, Luciano
                                                          Notarfrancesco
                                                          via Cuis-dev
                                                          wrote:
                                                          <blockquote type="cite">
                                                          <div>I’m not
                                                          sure I was
                                                          clear, I meant
                                                          a method
                                                          implementing
                                                          those
                                                          messages, not
                                                          sending those
                                                          messages.</div>
                                                          <div><br>
                                                          </div>
                                                          <div>
                                                          <div>
                                                          <div>On Fri, 6
                                                          May 2022 at
                                                          1:22 PM
                                                          Luciano
                                                          Notarfrancesco
                                                          <<a href="mailto:luchiano@gmail.com" target="_blank">luchiano@gmail.com</a>>
                                                          wrote:<br>
                                                          </div>
                                                          <blockquote>I’m
                                                          getting
                                                          “Argument name
                                                          expected” when
                                                          trying to
                                                          compile a
                                                          method with
                                                          selector
                                                          <|. On the
                                                          other hand,
                                                          |>, | and
                                                          || all compile
                                                          fine as binary
                                                          selectors, but
                                                          || breaks
                                                          syntax
                                                          highlighting.
                                                          </blockquote>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          <br>
                                                          </div>
                                                          <div> Sure.
                                                          Fixes at
                                                          GitHub now.<br>
                                                          <br>
                                                          A small
                                                          detail: Now an
                                                          empty temporal
                                                          declaration
                                                          `||` is parsed
                                                          as a binary
                                                          selector, and
                                                          therefore
                                                          marked as
                                                          invalid. Not a
                                                          big deal. We'd
                                                          just remove
                                                          any such.<br>
                                                          <br>
                                                          Cheers,<br>
                                                          <pre style="font-family:monospace">-- 
Juan Vuletich
<a href="http://www.cuis-smalltalk.org" style="font-family:monospace" target="_blank">www.cuis-smalltalk.org</a>
<a href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev" style="font-family:monospace" target="_blank">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a>
<a href="https://github.com/jvuletich" style="font-family:monospace" target="_blank">https://github.com/jvuletich</a>
<a href="https://www.linkedin.com/in/juan-vuletich-75611b3" style="font-family:monospace" target="_blank">https://www.linkedin.com/in/juan-vuletich-75611b3</a>
<a href="https://independent.academia.edu/JuanVuletich" style="font-family:monospace" target="_blank">https://independent.academia.edu/JuanVuletich</a>
<a href="https://www.researchgate.net/profile/Juan-Vuletich" style="font-family:monospace" target="_blank">https://www.researchgate.net/profile/Juan-Vuletich</a>
<a href="https://patents.justia.com/inventor/juan-manuel-vuletich" style="font-family:monospace" target="_blank">https://patents.justia.com/inventor/juan-manuel-vuletich</a>
<a href="https://twitter.com/JuanVuletich" style="font-family:monospace" target="_blank">https://twitter.com/JuanVuletich</a></pre>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </blockquote>
                                                          <br>
                                                          </div>
                                                        </blockquote>
                                                      </div>
                                                    </blockquote>
                                                    <br>
                                                    <br>
                                                    <pre style="font-family:monospace">-- 
Juan Vuletich
<a href="http://www.cuis-smalltalk.org" style="font-family:monospace" target="_blank">www.cuis-smalltalk.org</a>
<a href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev" style="font-family:monospace" target="_blank">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a>
<a href="https://github.com/jvuletich" style="font-family:monospace" target="_blank">https://github.com/jvuletich</a>
<a href="https://www.linkedin.com/in/juan-vuletich-75611b3" style="font-family:monospace" target="_blank">https://www.linkedin.com/in/juan-vuletich-75611b3</a>
<a href="https://independent.academia.edu/JuanVuletich" style="font-family:monospace" target="_blank">https://independent.academia.edu/JuanVuletich</a>
<a href="https://www.researchgate.net/profile/Juan-Vuletich" style="font-family:monospace" target="_blank">https://www.researchgate.net/profile/Juan-Vuletich</a>
<a href="https://patents.justia.com/inventor/juan-manuel-vuletich" style="font-family:monospace" target="_blank">https://patents.justia.com/inventor/juan-manuel-vuletich</a>
<a href="https://twitter.com/JuanVuletich" style="font-family:monospace" target="_blank">https://twitter.com/JuanVuletich</a></pre>
                                                  </div>
                                                </blockquote>
                                              </div>
                                            </div>
                                          </blockquote>
                                        </div>
                                        -- <br>
                                        Cuis-dev mailing list<br>
                                        <a href="mailto:Cuis-dev@lists.cuis.st" target="_blank">Cuis-dev@lists.cuis.st</a><br>
                                        <a href="https://lists.cuis.st/mailman/listinfo/cuis-dev" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br>
                                      </blockquote>
                                    </div>
                                    <br>
                                    <div><br>
                                    </div>
                                    -- <br>
                                    <div>
                                      <div><span>
                                          <div><a href="https://10pines.com/" target="_blank"><img></a><span></span>
                                            <h1>Hernán Wilkinson</h1>
                                            <h2>Software Developer &
                                              Coach</h2>
                                            <p>Alem 896, Floor 6, Buenos
                                              Aires, Argentina</p>
                                            <p>+54 11 6091 3125</p>
                                            <p>@HernanWilkinson</p>
                                          </div>
                                        </span></div>
                                    </div>
                                  </blockquote>
                                </div>
                                <br>
                                <div><br>
                                </div>
                                -- <br>
                                <div>
                                  <div><span>
                                      <div><a href="https://10pines.com/" target="_blank"><img></a><span></span>
                                        <h1>Hernán Wilkinson</h1>
                                        <h2>Software Developer &
                                          Coach</h2>
                                        <p>Alem 896, Floor 6, Buenos
                                          Aires, Argentina</p>
                                        <p>+54 11 6091 3125</p>
                                        <p>@HernanWilkinson</p>
                                      </div>
                                    </span></div>
                                </div>
                              </blockquote>
                            </div>
                          </div>
                        </blockquote>
                      </div>
                    </div>
                  </blockquote>
                  <br>
                  <br>
                  <pre cols="72" style="font-family:monospace">-- 
Juan Vuletich
<a href="http://www.cuis-smalltalk.org" style="font-family:monospace" target="_blank">www.cuis-smalltalk.org</a>
<a href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev" style="font-family:monospace" target="_blank">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a>
<a href="https://github.com/jvuletich" style="font-family:monospace" target="_blank">https://github.com/jvuletich</a>
<a href="https://www.linkedin.com/in/juan-vuletich-75611b3" style="font-family:monospace" target="_blank">https://www.linkedin.com/in/juan-vuletich-75611b3</a>
<a href="https://independent.academia.edu/JuanVuletich" style="font-family:monospace" target="_blank">https://independent.academia.edu/JuanVuletich</a>
<a href="https://www.researchgate.net/profile/Juan-Vuletich" style="font-family:monospace" target="_blank">https://www.researchgate.net/profile/Juan-Vuletich</a>
<a href="https://patents.justia.com/inventor/juan-manuel-vuletich" style="font-family:monospace" target="_blank">https://patents.justia.com/inventor/juan-manuel-vuletich</a>
<a href="https://twitter.com/JuanVuletich" style="font-family:monospace" target="_blank">https://twitter.com/JuanVuletich</a></pre>
                </div>
              </blockquote>
            </div>
          </div>
        </blockquote>
      </div>
      <br clear="all">
      <div><br>
      </div>
      -- <br>
      <div dir="ltr">
        <div dir="ltr"><span style="font-size:xx-small;border-collapse:collapse">
            <div style="font-size:small"><a href="https://10pines.com/" style="font-family:Roboto,Helvetica,Arial,sans-serif;font-size:medium" target="_blank"><img src="https://10pines.github.io/email-signature/10pines-firma@2x.png" style="margin-bottom: 0.5em;" width="108"></a><span style="color:rgb(0,0,0);font-family:Roboto,Helvetica,Arial,sans-serif;font-size:medium"></span>
              <h1 style="margin:0px;font-size:14px">Hernán Wilkinson</h1>
              <h2 style="margin:0px 0px 1em;font-size:14px;color:rgb(100,100,100)">Software
                Developer & Coach</h2>
              <p style="margin:0px;color:rgb(100,100,100);font-size:12px">Alem
                896, Floor 6, Buenos Aires, Argentina</p>
              <p style="margin:0px;color:rgb(100,100,100);font-size:12px">+54
                11 6091 3125</p>
              <p style="margin:0px;color:rgb(100,100,100);font-size:12px">@HernanWilkinson</p>
            </div>
          </span></div>
      </div>
      <br>
      <fieldset></fieldset>
    </blockquote>
    <br>
  </div>

</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><span style="font-size:xx-small;border-collapse:collapse"><div style="font-size:small"><a href="https://10pines.com/" style="font-family:Roboto,Helvetica,Arial,sans-serif;font-size:medium" target="_blank"><img width="108" src="https://10pines.github.io/email-signature/10pines-firma@2x.png" style="margin-bottom: 0.5em;"></a><span style="color:rgb(0,0,0);font-family:Roboto,Helvetica,Arial,sans-serif;font-size:medium"></span><h1 style="margin:0px;font-size:14px">Hernán Wilkinson</h1><h2 style="margin:0px 0px 1em;font-size:14px;color:rgb(100,100,100)">Software Developer & Coach</h2><p style="margin:0px;color:rgb(100,100,100);font-size:12px">Alem 896, Floor 6, Buenos Aires, Argentina</p><p style="margin:0px;color:rgb(100,100,100);font-size:12px">+54 11 6091 3125</p><p style="margin:0px;color:rgb(100,100,100);font-size:12px">@HernanWilkinson</p></div></span></div></div>