<div><span style="word-spacing:1px;border-color:rgb(49,49,49);color:rgb(49,49,49)">I wouldn’t implement @- *- etc in Number, that would be even more confusing and reinforce bad style, I think. And ‘- 2’ compiling as -2 is kind of weird too, maybe shouldn’t be allowed.</span><br></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 13 May 2022 at 10:02 PM Hernan Wilkinson <<a href="mailto:hernan.wilkinson@10pines.com">hernan.wilkinson@10pines.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><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-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><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-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><u></u>

  
    
    
  
  <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 width="108" style="margin-bottom: 0.5em; font-family: Roboto, Helvetica, Arial, sans-serif;"></a><span style="font-family:Roboto,Helvetica,Arial,sans-serif;font-size:medium;color:rgb(0,0,0)"></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;font-size:12px;color:rgb(100,100,100)">Alem 896, Floor 6, Buenos Aires, Argentina</p><p style="margin:0px;font-size:12px;color:rgb(100,100,100)">+54 11 6091 3125</p><p style="margin:0px;font-size:12px;color:rgb(100,100,100)">@HernanWilkinson</p></div></span></div></div>
</blockquote></div></div>