Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
November 2017
- 846 messages
Re: [Pharo-dev] Pharo and special unary selectors
by Benoit St-Jean
Personnally, I against adding those special symbols. They add close to nothing (except complexity in the parser) to what we can actually do!
Besides, what does 30$ + 17$ add up to? Oh! Did I tell you it was actually $30USD + $17CAN ? :)
-----------------
Benoît St-Jean
Yahoo! Messenger: bstjean
Twitter: @BenLeChialeux
Pinterest: benoitstjean
Instagram: Chef_Benito
IRC: lamneth
Blogue: endormitoire.wordpress.com
"A standpoint is an intellectual horizon of radius zero". (A. Einstein)
On Friday, November 17, 2017, 6:41:11 PM EST, Ben Coman <btc(a)openinworld.com> wrote:
If a valid Smalltalk method identifier contains only... [a-zA-Z][a-zA-Z0-9]*http://www.osdata.com/programming/firstprograms/validide…
then one option could be that unary symbols must touch the previous identifier, i.e. no intervening whitespace,
 100% Â
 20$
 40â¬
 12â°Â  portion% someMoney$
or pick a new "unary separator/binder"Â
 100'%  or 100 '%
 20'$    or  20 '$
 40'â¬Â    or 40 'â¬
 12'â°Â   or 12 'â°Â  portion'% someMoney'$
or re-use the existing colon which indicates an argument to the right,
to indicate an argument to the left....
 100 :% Â
 20 :$
 40 :â¬
 12 :â°Â (for promille) portion :% someMoney :$
which is unambiguous regarding block variable definitions since no messages are valid in the block variable definition area,but this may complicate precedence semantics due to its similarity to a keyword selector, and would complicate things if the space was missing.Â
On 18 November 2017 at 04:02, Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com> wrote:
2017-11-17 18:32 GMT+01:00 Thierry Goubier <thierry.goubier(a)gmail.com>:
Le 17/11/2017 à 10:14, Nicolas Cellier a écrit :
2017-11-17 17:40 GMT+01:00 Gabriel Cotelli <g.cotelli(a)gmail.com <mailto:g.cotelli@gmail.com>>:
  I would really like to see % removed as a binary selector and
  available to use in unary or keyword ones. The only implementor in a
  Pharo 6 image is:
    % aNumber
      ^ self \\ aNumber
+1, such alias has nothing to do in Kernel
  So it's juts aliasing \\ , and % most widespread usage in the real
  world is por percentages (the use in modular arithmetic is more a
  programming thing that math notation I think).
  And for allowing more Unicode code points for selector names I'm
  totally in for Symbols, Arrows, Math Symbols, etc... We just need to
  analyse the ones that makes sense as binary selectors, and the ones
  allowed for unary and keyword ones. This will allow us to write
  pretty cool DSLs.
  Just my opinion.
This could also be the case for punctuation like ! and ?
The idea of Torsten is more generic, any combination of binary char could be used.
 From what I understand from https://en.wikipedia.org/wiki/ LR_parser we would just have to scan one more token ahead for deciding if unary or binary, and could preserve our simple shift reduce steps...
The Smalltalk parsers being handwritten, there wouldn't be shift/reduces to contend with, and, anyway, the lexer doesn't shift/reduce; it would simply creates a token up to the next separator (that is goble up the next space/cr/end of line dot/closing parenthesis/etc...)
I don't have academical cursus, so I may be approximate, but the manually written parsers just have to read a single token ahead so far, and linearly build the parseNode, to me it was equivalent.
So it seems doable for resolving the send.
Sort of. The parser difficulty would be this one:
anObject % print
Yes, that's a severe limitation. Context free => it's a binary... Or we have to use ( ).Â
But then it's unfriendly to have different rules for unary symbols versus unary words...It devaluates the idea...Â
Is this a binary selector with a print argument or two unary selectors?
Less ambiguous...anObject'% printanObject '% printÂ
Â
Using the symbol table when you parse would solve it, but that is certainly not context free...
More problematic would be the declaration of method, if we have both a unary + and a binary +, we will need new syntax for marking the difference.
In most cases, distinguishing between unary + declaration and binary + declaration would be doable:
+ whatever
is the start of a binary selector
+ ^ self
is the start (or the declaration of) an unary selector.
But writing
+ self
Can be interpreted as either unary plus doing self, or binary + method definition...
a "unary binder" could distinguish them...
binary method definition...
+ self
unary method definition...'+ self
 Â
 issues...
+ b | c |
a binary plus with unused temp and implicit ^self, or unary + with binary | sent to b with unary (c |) parameter etc...
+ b | c |
binary plus, unused temporary c
'+ b | c |unary plus, first | is binary, second | is unary  or maybe it would need to be...  '+ b | c'|
Â
So we need a new syntax meaning that there is no parameter, like + ][ or anything yet unused...
without 'Â
+ || b | c |empty local variable definition, next | is binary, second | is unary Â
also with local variable...+ | lv1 | b | c |
+ | lv1 | b | c'|
Â
Whether it's worth or not is another matter...
Well, one should probably try to implement the various parsers for that (extend RB, extend the SmaCC Smalltalk parser, extend the Petit Parser) to see how much complexity it would bring.
Coming up with strange interpretations one could do with that syntax can be helpfull as well.
Regards,
Thierry
  On Fri, Nov 17, 2017 at 6:32 AM, Torsten Bergmann <astares(a)gmx.de
  <mailto:astares@gmx.de>> wrote:
    Hi,
    just something to think about: one thing I always liked about
    Smalltalk is that it allows for nice DSL's. We have nice things
    like a unit framework in Pharo, ...
    In the most simple case one can easily implement own units just
    by providing a unary messages:
      1 m
      1 second
      1 px
      1 EUR
    One can easily implement an own Money class with a currency and
    then do polymorphic tricks like
      10 EUR + 20 EUR
btw, did the recently announced QA Release Tests add enforcement all selectors to start with a lowercase?I felt that one a bit overly-restrictive, which would break such a currency DSL.
cheers -ben
    But we can currently can not implement special unary selectors
    (including special unary selectors with unicode) like:
      100 %
      20 $
      40 â¬
      12 â°Â (for promille)
    Especially things like 20 % would be nice for layout issues or
    other (Bloc comes to mind).
    Maybe we should put that on the roadmap of Pharo because IMHO it
    would be cool to support such things in the
    future. Dont know how much effort it currently means on the
    technical level but maybe others can comment.
    Thx
    T.
Nov. 17, 2017
Re: [Pharo-dev] Pharo and special unary selectors
by Thierry Goubier
Le 17 nov. 2017 1:03 PM, "Nicolas Cellier" <
nicolas.cellier.aka.nice(a)gmail.com> a écrit :
2017-11-17 18:32 GMT+01:00 Thierry Goubier <thierry.goubier(a)gmail.com>:
> Le 17/11/2017 à 10:14, Nicolas Cellier a écrit :
>
>>
>>
>> 2017-11-17 17:40 GMT+01:00 Gabriel Cotelli <g.cotelli(a)gmail.com <mailto:
>> g.cotelli(a)gmail.com>>:
>>
>> I would really like to see % removed as a binary selector and
>> available to use in unary or keyword ones. The only implementor in a
>> Pharo 6 image is:
>>
>> % aNumber
>>
>> ^ self \\ aNumber
>>
>>
>> +1, such alias has nothing to do in Kernel
>>
>> So it's juts aliasing \\ , and % most widespread usage in the real
>> world is por percentages (the use in modular arithmetic is more a
>> programming thing that math notation I think).
>>
>> And for allowing more Unicode code points for selector names I'm
>> totally in for Symbols, Arrows, Math Symbols, etc... We just need to
>> analyse the ones that makes sense as binary selectors, and the ones
>> allowed for unary and keyword ones. This will allow us to write
>> pretty cool DSLs.
>>
>> Just my opinion.
>>
>> This could also be the case for punctuation like ! and ?
>>
>> The idea of Torsten is more generic, any combination of binary char could
>> be used.
>> From what I understand from https://en.wikipedia.org/wiki/LR_parser we
>> would just have to scan one more token ahead for deciding if unary or
>> binary, and could preserve our simple shift reduce steps...
>>
>
> The Smalltalk parsers being handwritten, there wouldn't be shift/reduces
> to contend with, and, anyway, the lexer doesn't shift/reduce; it would
> simply creates a token up to the next separator (that is goble up the next
> space/cr/end of line dot/closing parenthesis/etc...)
>
I don't have academical cursus, so I may be approximate, but the manually
written parsers just have to read a single token ahead so far, and linearly
build the parseNode, to me it was equivalent.
What I meant is that at the tokenifier stage, the parser already combines
characters into a single token. So the parser is yes using only a single
token lookahead,, but where a token can be multiple characters.
> So it seems doable for resolving the send.
>>
>
> Sort of. The parser difficulty would be this one:
>
> anObject % print
>
Yes, that's a severe limitation. Context free => it's a binary... Or we
have to use ( ).
But then it's unfriendly to have different rules for unary symbols versus
unary words...
It devaluates the idea...
I agree.
> Is this a binary selector with a print argument or two unary selectors?
>
> Using the symbol table when you parse would solve it, but that is
> certainly not context free...
>
> More problematic would be the declaration of method, if we have both a
>> unary + and a binary +, we will need new syntax for marking the difference.
>>
>
> In most cases, distinguishing between unary + declaration and binary +
> declaration would be doable:
>
> + whatever
>
> is the start of a binary selector
>
> + ^ self
>
> is the start (or the declaration of) an unary selector.
>
> But writing
>
> + self
>
> Can be interpreted as either unary plus doing self, or binary + method
> definition...
>
Yes I was thinking of similar issues...
+ b | c |
a binary plus with unused temp and implicit ^self, or unary + with binary |
sent to b with unary (c |) parameter etc...
I haven't seen this one coming.
So we need a new syntax meaning that there is no parameter, like + ][ or
anything yet unused...
It starts to look very convoluted. Yuck.
Thierry
> Whether it's worth or not is another matter...
>>
>
> Well, one should probably try to implement the various parsers for that
> (extend RB, extend the SmaCC Smalltalk parser, extend the Petit Parser) to
> see how much complexity it would bring.
>
> Coming up with strange interpretations one could do with that syntax can
> be helpfull as well.
>
> Regards,
>
> Thierry
>
> On Fri, Nov 17, 2017 at 6:32 AM, Torsten Bergmann <astares(a)gmx.de
>> <mailto:astares@gmx.de>> wrote:
>>
>> Hi,
>>
>> just something to think about: one thing I always liked about
>> Smalltalk is that it allows for nice DSL's. We have nice things
>> like a unit framework in Pharo, ...
>>
>> In the most simple case one can easily implement own units just
>> by providing a unary messages:
>>
>> 1 m
>> 1 second
>> 1 px
>> 1 EUR
>>
>> One can easily implement an own Money class with a currency and
>> then do polymorphic tricks like
>>
>> 10 EUR + 20 EUR
>>
>> But we can currently can not implement special unary selectors
>> (including special unary selectors with unicode) like:
>>
>> 100 %
>> 20 $
>> 40 â¬
>> 12 â° (for promille)
>>
>> Especially things like 20 % would be nice for layout issues or
>> other (Bloc comes to mind).
>>
>> Maybe we should put that on the roadmap of Pharo because IMHO it
>> would be cool to support such things in the
>> future. Dont know how much effort it currently means on the
>> technical level but maybe others can comment.
>>
>> Thx
>> T.
>>
>>
>>
>>
>
>
Nov. 17, 2017
Re: [Pharo-dev] Pharo and special unary selectors
by Ben Coman
If a valid Smalltalk method identifier contains only... [a-zA-Z][a-zA-Z0-9]*
http://www.osdata.com/programming/firstprograms/valididentifiers.html
then one option could be that unary symbols must touch the previous
identifier, i.e. no intervening whitespace,
100%
20$
40â¬
12â°
portion%
someMoney$
or pick a new "unary separator/binder"
100'% or 100 '%
20'$ or 20 '$
40'⬠or 40 'â¬
12'â° or 12 'â°
portion'%
someMoney'$
or re-use the existing colon which indicates an argument to the right,
to indicate an argument to the left....
100 :%
20 :$
40 :â¬
12 :â° (for promille)
portion :%
someMoney :$
which is unambiguous regarding block variable definitions since no messages
are valid in the block variable definition area,
but this may complicate precedence semantics due to its similarity to a
keyword selector,
and would complicate things if the space was missing.
On 18 November 2017 at 04:02, Nicolas Cellier <
nicolas.cellier.aka.nice(a)gmail.com> wrote:
>
>
> 2017-11-17 18:32 GMT+01:00 Thierry Goubier <thierry.goubier(a)gmail.com>:
>
>> Le 17/11/2017 à 10:14, Nicolas Cellier a écrit :
>>
>>>
>>>
>>> 2017-11-17 17:40 GMT+01:00 Gabriel Cotelli <g.cotelli(a)gmail.com <mailto:
>>> g.cotelli(a)gmail.com>>:
>>>
>>> I would really like to see % removed as a binary selector and
>>> available to use in unary or keyword ones. The only implementor in a
>>> Pharo 6 image is:
>>>
>>> % aNumber
>>>
>>> ^ self \\ aNumber
>>>
>>>
>>> +1, such alias has nothing to do in Kernel
>>>
>>> So it's juts aliasing \\ , and % most widespread usage in the real
>>> world is por percentages (the use in modular arithmetic is more a
>>> programming thing that math notation I think).
>>>
>>> And for allowing more Unicode code points for selector names I'm
>>> totally in for Symbols, Arrows, Math Symbols, etc... We just need to
>>> analyse the ones that makes sense as binary selectors, and the ones
>>> allowed for unary and keyword ones. This will allow us to write
>>> pretty cool DSLs.
>>>
>>> Just my opinion.
>>>
>>> This could also be the case for punctuation like ! and ?
>>>
>>> The idea of Torsten is more generic, any combination of binary char
>>> could be used.
>>> From what I understand from https://en.wikipedia.org/wiki/LR_parser we
>>> would just have to scan one more token ahead for deciding if unary or
>>> binary, and could preserve our simple shift reduce steps...
>>>
>>
>> The Smalltalk parsers being handwritten, there wouldn't be shift/reduces
>> to contend with, and, anyway, the lexer doesn't shift/reduce; it would
>> simply creates a token up to the next separator (that is goble up the next
>> space/cr/end of line dot/closing parenthesis/etc...)
>>
>
> I don't have academical cursus, so I may be approximate, but the manually
> written parsers just have to read a single token ahead so far, and linearly
> build the parseNode, to me it was equivalent.
>
>
>> So it seems doable for resolving the send.
>>>
>>
>> Sort of. The parser difficulty would be this one:
>>
>> anObject % print
>>
>
Yes, that's a severe limitation. Context free => it's a binary... Or we
> have to use ( ).
> But then it's unfriendly to have different rules for unary symbols versus
> unary words...
> It devaluates the idea...
>
>
>> Is this a binary selector with a print argument or two unary selectors?
>>
>
Less ambiguous...
anObject'% print
anObject '% print
>
>> Using the symbol table when you parse would solve it, but that is
>> certainly not context free...
>>
>> More problematic would be the declaration of method, if we have both a
>>> unary + and a binary +, we will need new syntax for marking the difference.
>>>
>>
>> In most cases, distinguishing between unary + declaration and binary +
>> declaration would be doable:
>>
>> + whatever
>>
>> is the start of a binary selector
>>
>> + ^ self
>>
>> is the start (or the declaration of) an unary selector.
>>
>> But writing
>>
>> + self
>>
>> Can be interpreted as either unary plus doing self, or binary + method
>> definition...
>
>
a "unary binder" could distinguish them...
binary method definition...
+ self
unary method definition...
'+ self
> issues...
>
> + b | c |
>
> a binary plus with unused temp and implicit ^self, or unary + with binary
> | sent to b with unary (c |) parameter etc...
>
+ b | c |
binary plus, unused temporary c
'+ b | c |
unary plus, first | is binary, second | is unary
or maybe it would need to be... '+ b | c'|
> So we need a new syntax meaning that there is no parameter, like + ][ or
> anything yet unused...
>
without '
+ || b | c |
empty local variable definition, next | is binary, second | is unary
also with local variable...
+ | lv1 | b | c |
+ | lv1 | b | c'|
>
>
>
>> Whether it's worth or not is another matter...
>>>
>>
>> Well, one should probably try to implement the various parsers for that
>> (extend RB, extend the SmaCC Smalltalk parser, extend the Petit Parser) to
>> see how much complexity it would bring.
>>
>> Coming up with strange interpretations one could do with that syntax can
>> be helpfull as well.
>>
>> Regards,
>>
>> Thierry
>>
>> On Fri, Nov 17, 2017 at 6:32 AM, Torsten Bergmann <astares(a)gmx.de
>>> <mailto:astares@gmx.de>> wrote:
>>>
>>> Hi,
>>>
>>> just something to think about: one thing I always liked about
>>> Smalltalk is that it allows for nice DSL's. We have nice things
>>> like a unit framework in Pharo, ...
>>>
>>> In the most simple case one can easily implement own units just
>>> by providing a unary messages:
>>>
>>> 1 m
>>> 1 second
>>> 1 px
>>> 1 EUR
>>>
>>> One can easily implement an own Money class with a currency and
>>> then do polymorphic tricks like
>>>
>>> 10 EUR + 20 EUR
>>>
>>
btw, did the recently announced QA Release Tests add enforcement all
selectors to start with a lowercase?
I felt that one a bit overly-restrictive, which would break such a currency
DSL.
cheers -ben
>>> But we can currently can not implement special unary selectors
>>> (including special unary selectors with unicode) like:
>>>
>>> 100 %
>>> 20 $
>>> 40 â¬
>>> 12 â° (for promille)
>>>
>>> Especially things like 20 % would be nice for layout issues or
>>> other (Bloc comes to mind).
>>>
>>> Maybe we should put that on the roadmap of Pharo because IMHO it
>>> would be cool to support such things in the
>>> future. Dont know how much effort it currently means on the
>>> technical level but maybe others can comment.
>>>
>>> Thx
>>> T.
>>>
>>
Nov. 17, 2017
Re: [Pharo-dev] Pharo and special unary selectors
by Thierry Goubier
Le 17/11/2017 à 11:08, Sven Van Caekenberghe a écrit :
> Parsing difficulty also means that it is harder for humans to understand, to explain to (new) users.
Agreed. This is a significant issue in some programming languages.
> It would be pretty strange to have binary selectors that are unary, is my first reaction.
Or that it could be both...
An unary +, then a binary +, maybe not in the same class...
Thierry
>
>> On 17 Nov 2017, at 18:32, Thierry Goubier <thierry.goubier(a)gmail.com> wrote:
>>
>> Le 17/11/2017 à 10:14, Nicolas Cellier a écrit :
>>> 2017-11-17 17:40 GMT+01:00 Gabriel Cotelli <g.cotelli(a)gmail.com <mailto:g.cotelli@gmail.com>>:
>>> I would really like to see % removed as a binary selector and
>>> available to use in unary or keyword ones. The only implementor in a
>>> Pharo 6 image is:
>>> % aNumber
>>> ^ self \\ aNumber
>>> +1, such alias has nothing to do in Kernel
>>> So it's juts aliasing \\ , and % most widespread usage in the real
>>> world is por percentages (the use in modular arithmetic is more a
>>> programming thing that math notation I think).
>>> And for allowing more Unicode code points for selector names I'm
>>> totally in for Symbols, Arrows, Math Symbols, etc... We just need to
>>> analyse the ones that makes sense as binary selectors, and the ones
>>> allowed for unary and keyword ones. This will allow us to write
>>> pretty cool DSLs.
>>> Just my opinion.
>>> This could also be the case for punctuation like ! and ?
>>> The idea of Torsten is more generic, any combination of binary char could be used.
>>> From what I understand from https://en.wikipedia.org/wiki/LR_parser we would just have to scan one more token ahead for deciding if unary or binary, and could preserve our simple shift reduce steps...
>>
>> The Smalltalk parsers being handwritten, there wouldn't be shift/reduces to contend with, and, anyway, the lexer doesn't shift/reduce; it would simply creates a token up to the next separator (that is goble up the next space/cr/end of line dot/closing parenthesis/etc...)
>>
>>> So it seems doable for resolving the send.
>>
>> Sort of. The parser difficulty would be this one:
>>
>> anObject % print
>>
>> Is this a binary selector with a print argument or two unary selectors?
>>
>> Using the symbol table when you parse would solve it, but that is certainly not context free...
>>
>>> More problematic would be the declaration of method, if we have both a unary + and a binary +, we will need new syntax for marking the difference.
>>
>> In most cases, distinguishing between unary + declaration and binary + declaration would be doable:
>>
>> + whatever
>>
>> is the start of a binary selector
>>
>> + ^ self
>>
>> is the start (or the declaration of) an unary selector.
>>
>> But writing
>>
>> + self
>>
>> Can be interpreted as either unary plus doing self, or binary + method definition...
>>
>>> Whether it's worth or not is another matter...
>>
>> Well, one should probably try to implement the various parsers for that (extend RB, extend the SmaCC Smalltalk parser, extend the Petit Parser) to see how much complexity it would bring.
>>
>> Coming up with strange interpretations one could do with that syntax can be helpfull as well.
>>
>> Regards,
>>
>> Thierry
>>
>>> On Fri, Nov 17, 2017 at 6:32 AM, Torsten Bergmann <astares(a)gmx.de
>>> <mailto:astares@gmx.de>> wrote:
>>> Hi,
>>> just something to think about: one thing I always liked about
>>> Smalltalk is that it allows for nice DSL's. We have nice things
>>> like a unit framework in Pharo, ...
>>> In the most simple case one can easily implement own units just
>>> by providing a unary messages:
>>> 1 m
>>> 1 second
>>> 1 px
>>> 1 EUR
>>> One can easily implement an own Money class with a currency and
>>> then do polymorphic tricks like
>>> 10 EUR + 20 EUR
>>> But we can currently can not implement special unary selectors
>>> (including special unary selectors with unicode) like:
>>> 100 %
>>> 20 $
>>> 40 â¬
>>> 12 â° (for promille)
>>> Especially things like 20 % would be nice for layout issues or
>>> other (Bloc comes to mind).
>>> Maybe we should put that on the roadmap of Pharo because IMHO it
>>> would be cool to support such things in the
>>> future. Dont know how much effort it currently means on the
>>> technical level but maybe others can comment.
>>> Thx
>>> T.
>>
>>
>
>
>
Nov. 17, 2017
Re: [Pharo-dev] [ci-announces] CI capacity problems, help wanted !
by Stephane Ducasse
Hi Bruno
We will have a look. Now the failures/erasure of the configurations
this summer did not really help
us. We still not fully recovered.
Once Pharo will be managed on git. I think that many of our community
jobs will be
migrated to travis and other services.
Stef
On Thu, Nov 16, 2017 at 1:02 PM, Bruno Carrez <bruno.carrez(a)inria.fr> wrote:
> Dear CI users,
>
> As some of you may have noticed, the CI service is in capacity troubles.
> Most VM deployment fail due to a lack of resources.
>
> A lot of VMs use a high-end hardware configuration (XL or XXL), but you must
> be aware that cloudstack is a mutalised service; so, it is important to use
> the right configuration for your real needs.
> It is not acceptable to have unused or oversized slaves on one side, and
> stucked users on the other side that cannot use the service.
>
> A lot of users are affected by this issue and are unable use the platform at
> all !
>
> So I highly recommend to check if you can reduce your footprint on the
> service:
>
> - by downgrading your oversized slaves,
> - or deleting your unused slaves
>
> If you donât know how to decrease the slave configuration, issue a support
> ticket and we will be glad to help you.
>
> Thanks in advance, in the name of all the ci users.
>
> - The CI team
>
Nov. 17, 2017
Re: [Pharo-dev] Pharo and special unary selectors
by Nicolas Cellier
2017-11-17 18:32 GMT+01:00 Thierry Goubier <thierry.goubier(a)gmail.com>:
> Le 17/11/2017 à 10:14, Nicolas Cellier a écrit :
>
>>
>>
>> 2017-11-17 17:40 GMT+01:00 Gabriel Cotelli <g.cotelli(a)gmail.com <mailto:
>> g.cotelli(a)gmail.com>>:
>>
>> I would really like to see % removed as a binary selector and
>> available to use in unary or keyword ones. The only implementor in a
>> Pharo 6 image is:
>>
>> % aNumber
>>
>> ^ self \\ aNumber
>>
>>
>> +1, such alias has nothing to do in Kernel
>>
>> So it's juts aliasing \\ , and % most widespread usage in the real
>> world is por percentages (the use in modular arithmetic is more a
>> programming thing that math notation I think).
>>
>> And for allowing more Unicode code points for selector names I'm
>> totally in for Symbols, Arrows, Math Symbols, etc... We just need to
>> analyse the ones that makes sense as binary selectors, and the ones
>> allowed for unary and keyword ones. This will allow us to write
>> pretty cool DSLs.
>>
>> Just my opinion.
>>
>> This could also be the case for punctuation like ! and ?
>>
>> The idea of Torsten is more generic, any combination of binary char could
>> be used.
>> From what I understand from https://en.wikipedia.org/wiki/LR_parser we
>> would just have to scan one more token ahead for deciding if unary or
>> binary, and could preserve our simple shift reduce steps...
>>
>
> The Smalltalk parsers being handwritten, there wouldn't be shift/reduces
> to contend with, and, anyway, the lexer doesn't shift/reduce; it would
> simply creates a token up to the next separator (that is goble up the next
> space/cr/end of line dot/closing parenthesis/etc...)
>
I don't have academical cursus, so I may be approximate, but the manually
written parsers just have to read a single token ahead so far, and linearly
build the parseNode, to me it was equivalent.
> So it seems doable for resolving the send.
>>
>
> Sort of. The parser difficulty would be this one:
>
> anObject % print
>
Yes, that's a severe limitation. Context free => it's a binary... Or we
have to use ( ).
But then it's unfriendly to have different rules for unary symbols versus
unary words...
It devaluates the idea...
> Is this a binary selector with a print argument or two unary selectors?
>
> Using the symbol table when you parse would solve it, but that is
> certainly not context free...
>
> More problematic would be the declaration of method, if we have both a
>> unary + and a binary +, we will need new syntax for marking the difference.
>>
>
> In most cases, distinguishing between unary + declaration and binary +
> declaration would be doable:
>
> + whatever
>
> is the start of a binary selector
>
> + ^ self
>
> is the start (or the declaration of) an unary selector.
>
> But writing
>
> + self
>
> Can be interpreted as either unary plus doing self, or binary + method
> definition...
>
Yes I was thinking of similar issues...
+ b | c |
a binary plus with unused temp and implicit ^self, or unary + with binary |
sent to b with unary (c |) parameter etc...
So we need a new syntax meaning that there is no parameter, like + ][ or
anything yet unused...
> Whether it's worth or not is another matter...
>>
>
> Well, one should probably try to implement the various parsers for that
> (extend RB, extend the SmaCC Smalltalk parser, extend the Petit Parser) to
> see how much complexity it would bring.
>
> Coming up with strange interpretations one could do with that syntax can
> be helpfull as well.
>
> Regards,
>
> Thierry
>
> On Fri, Nov 17, 2017 at 6:32 AM, Torsten Bergmann <astares(a)gmx.de
>> <mailto:astares@gmx.de>> wrote:
>>
>> Hi,
>>
>> just something to think about: one thing I always liked about
>> Smalltalk is that it allows for nice DSL's. We have nice things
>> like a unit framework in Pharo, ...
>>
>> In the most simple case one can easily implement own units just
>> by providing a unary messages:
>>
>> 1 m
>> 1 second
>> 1 px
>> 1 EUR
>>
>> One can easily implement an own Money class with a currency and
>> then do polymorphic tricks like
>>
>> 10 EUR + 20 EUR
>>
>> But we can currently can not implement special unary selectors
>> (including special unary selectors with unicode) like:
>>
>> 100 %
>> 20 $
>> 40 â¬
>> 12 â° (for promille)
>>
>> Especially things like 20 % would be nice for layout issues or
>> other (Bloc comes to mind).
>>
>> Maybe we should put that on the roadmap of Pharo because IMHO it
>> would be cool to support such things in the
>> future. Dont know how much effort it currently means on the
>> technical level but maybe others can comment.
>>
>> Thx
>> T.
>>
>>
>>
>>
>
>
Nov. 17, 2017
Re: [Pharo-dev] Little Chapter on Hash methods
by Stephane Ducasse
tx ALOT
On Fri, Nov 17, 2017 at 7:04 PM, Sean P. DeNigris <sean(a)clipperadams.com> wrote:
> Stephane Ducasse-3 wrote
>> In the tips and tricks booklet, I added a simple chapter on hash.
>
> Cool! I committed a native english grammar review pass :)
>
>
>
> -----
> Cheers,
> Sean
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
>
Nov. 17, 2017
Re: [Pharo-dev] Pharo and special unary selectors
by Sven Van Caekenberghe
Parsing difficulty also means that it is harder for humans to understand, to explain to (new) users.
It would be pretty strange to have binary selectors that are unary, is my first reaction.
> On 17 Nov 2017, at 18:32, Thierry Goubier <thierry.goubier(a)gmail.com> wrote:
>
> Le 17/11/2017 à 10:14, Nicolas Cellier a écrit :
>> 2017-11-17 17:40 GMT+01:00 Gabriel Cotelli <g.cotelli(a)gmail.com <mailto:g.cotelli@gmail.com>>:
>> I would really like to see % removed as a binary selector and
>> available to use in unary or keyword ones. The only implementor in a
>> Pharo 6 image is:
>> % aNumber
>> ^ self \\ aNumber
>> +1, such alias has nothing to do in Kernel
>> So it's juts aliasing \\ , and % most widespread usage in the real
>> world is por percentages (the use in modular arithmetic is more a
>> programming thing that math notation I think).
>> And for allowing more Unicode code points for selector names I'm
>> totally in for Symbols, Arrows, Math Symbols, etc... We just need to
>> analyse the ones that makes sense as binary selectors, and the ones
>> allowed for unary and keyword ones. This will allow us to write
>> pretty cool DSLs.
>> Just my opinion.
>> This could also be the case for punctuation like ! and ?
>> The idea of Torsten is more generic, any combination of binary char could be used.
>> From what I understand from https://en.wikipedia.org/wiki/LR_parser we would just have to scan one more token ahead for deciding if unary or binary, and could preserve our simple shift reduce steps...
>
> The Smalltalk parsers being handwritten, there wouldn't be shift/reduces to contend with, and, anyway, the lexer doesn't shift/reduce; it would simply creates a token up to the next separator (that is goble up the next space/cr/end of line dot/closing parenthesis/etc...)
>
>> So it seems doable for resolving the send.
>
> Sort of. The parser difficulty would be this one:
>
> anObject % print
>
> Is this a binary selector with a print argument or two unary selectors?
>
> Using the symbol table when you parse would solve it, but that is certainly not context free...
>
>> More problematic would be the declaration of method, if we have both a unary + and a binary +, we will need new syntax for marking the difference.
>
> In most cases, distinguishing between unary + declaration and binary + declaration would be doable:
>
> + whatever
>
> is the start of a binary selector
>
> + ^ self
>
> is the start (or the declaration of) an unary selector.
>
> But writing
>
> + self
>
> Can be interpreted as either unary plus doing self, or binary + method definition...
>
>> Whether it's worth or not is another matter...
>
> Well, one should probably try to implement the various parsers for that (extend RB, extend the SmaCC Smalltalk parser, extend the Petit Parser) to see how much complexity it would bring.
>
> Coming up with strange interpretations one could do with that syntax can be helpfull as well.
>
> Regards,
>
> Thierry
>
>> On Fri, Nov 17, 2017 at 6:32 AM, Torsten Bergmann <astares(a)gmx.de
>> <mailto:astares@gmx.de>> wrote:
>> Hi,
>> just something to think about: one thing I always liked about
>> Smalltalk is that it allows for nice DSL's. We have nice things
>> like a unit framework in Pharo, ...
>> In the most simple case one can easily implement own units just
>> by providing a unary messages:
>> 1 m
>> 1 second
>> 1 px
>> 1 EUR
>> One can easily implement an own Money class with a currency and
>> then do polymorphic tricks like
>> 10 EUR + 20 EUR
>> But we can currently can not implement special unary selectors
>> (including special unary selectors with unicode) like:
>> 100 %
>> 20 $
>> 40 â¬
>> 12 â° (for promille)
>> Especially things like 20 % would be nice for layout issues or
>> other (Bloc comes to mind).
>> Maybe we should put that on the roadmap of Pharo because IMHO it
>> would be cool to support such things in the
>> future. Dont know how much effort it currently means on the
>> technical level but maybe others can comment.
>> Thx
>> T.
>
>
Nov. 17, 2017
Re: [Pharo-dev] Little Chapter on Hash methods
by Sean P. DeNigris
Stephane Ducasse-3 wrote
> In the tips and tricks booklet, I added a simple chapter on hash.
Cool! I committed a native english grammar review pass :)
-----
Cheers,
Sean
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
Nov. 17, 2017
[Pharo 7.0-dev] Build #305: 20709-do-not-create-pharo-core-symlink-during-the-image-building
by ci-pharo-ci-jenkins2@inria.fr
There is a new Pharo build available!
The status of the build #305 was: SUCCESS.
The Pull Request #492 was integrated: "20709-do-not-create-pharo-core-symlink-during-the-image-building"
Pull request url: https://github.com/pharo-project/pharo/pull/492
Issue Url: https://pharo.fogbugz.com/f/cases/20709
Build Url: https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%2…
Nov. 17, 2017