Even if you make the compiler change, I hope you will still consider
leaving the two #empty methods in place for expressiveness.  They,
too, would answer the single canonicalized global stored in the
compiler.  However, the use of #empty makes the canonicalization
explicit rather than implicit, and affords appreciation of a Pharo
system that describes itself, e.g., associating the word "empty" with
the notation that a new Pharo user might find cryptic.


On Sat, Feb 13, 2010 at 1:06 PM, Marcus Denker <marcus.den...@inria.fr> wrote:
>
> On Feb 13, 2010, at 8:03 PM, Stéphane Ducasse wrote:
>
>> the only think is that the #() and '' will not be created all the time but 
>> in the compile method literal frame.
>>
> Yes, right now it's created once per method... the compiler could easily make 
> sure that it's shared globally.
>
>        Marcus
>
>
>> Stef
>>
>>
>>> would the idea to be to rewrite every #() with Array empty?
>>>
>>> If that was the case could you get the compiler to do that as an
>>> optimization? I quite like the fact that #() is the empty array. it's
>>> nice and compact; quite aesthetic.
>>>
>>> cheers,
>>> Mike
>>>
>>> On Sat, Feb 13, 2010 at 11:06 AM, Stéphane Ducasse
>>> <stephane.duca...@inria.fr> wrote:
>>>> Hi guys
>>>>
>>>> chris mueller proposed in squeak to have
>>>>
>>>>
>>>> Exception>>messageText
>>>>      "Return an exception's message text."
>>>> +       ^ messageText ifNil: [ String empty ]!
>>>> -
>>>> -       ^messageText!
>>>>
>>>> - Added Array class>>#empty and String class>>#empty to provide 
>>>> applications with
>>>> canonicalized instances of these oft-used objects; since they are embedded 
>>>> as literals in the
>>>> CompiledMethod.
>>>>
>>>> =============== Diff against Collections-ar.304 ===============
>>>>
>>>> Item was added:
>>>> + ----- Method: Array class>>empty (in category 'instance creation') -----
>>>> + empty
>>>> +       "A canonicalized empty Array instance."
>>>> +       ^ #()!
>>>>
>>>> Item was added:
>>>> + ----- Method: String class>>empty (in category 'instance creation') -----
>>>> + empty
>>>> +       "A canonicalized empty String instance."
>>>> +       ^ ''!
>>>>
>>>> Item was removed:
>>>> - ----- Method: String>>asDefaultDecodedString (in category 'converting') 
>>>> -----
>>>> - asDefaultDecodedString
>>>> -
>>>> -       ^ self
>>>>
>>>>
>>>> http://code.google.com/p/pharo/issues/detail?id=1961
>>>> _______________________________________________
>>>> Pharo-project mailing list
>>>> Pharo-project@lists.gforge.inria.fr
>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> Pharo-project@lists.gforge.inria.fr
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project@lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> --
> Marcus Denker  -- http://www.marcusdenker.de
> INRIA Lille -- Nord Europe. Team RMoD.
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project@lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to