<div dir="ltr"><div>The choice in Squeak was to warn only in interactive mode: the interactive compiler proposes a choice @ or @- or cancel, and it automatically correct source by inserting a space either before -2 or before 2.<br></div><div>In non interactive mode, it continues to interpret it as 1@(-2) for backward compatibility.<br></div><div>(For example Compiler evaluate: '1@-2').<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le ven. 13 mai 2022 à 18:28, Luciano Notarfrancesco via Cuis-dev <<a href="mailto:cuis-dev@lists.cuis.st">cuis-dev@lists.cuis.st</a>> a écrit :<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><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" target="_blank">hernan.wilkinson@10pines.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="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"><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 style="margin-bottom: 0.5em; font-family: Roboto, Helvetica, Arial, sans-serif;" width="108"></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>
-- <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" rel="noreferrer" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br>
</blockquote></div>