On Wed, 26 Jun 2013, Guillermo Polito wrote:
On Wed, Jun 26, 2013 at 11:20 PM, Levente Uzonyi <[email protected]> wrote:
On Wed, 26 Jun 2013, Clément Bera wrote:
Actually this code:
True basicNew ifTrue: [ "some code" ]
works fine on the latest Pharo 3 because of Opal :)
So the Opal compiler lacks important optimizations. :)
Not at all. In fact, the the code is optimized and falls back to the normal
lookup in case of exceptional #mustBeBoolean, so the existing code keeps
running the same speed ;)
So it generates a bunch of extra bytecodes for every #ifTrue:, #ifFalse:,
#ifTrue:ifFalse: and #ifFalse:ifTrue: messages, in order to make this
thing work? Or is there a trick to avoid the duplicaiton of the code in
the blocks?
Levente
Levente
But nice trick for the old compiler :)
2013/6/26 Nicolas Cellier <[email protected]>
Because you don't know the tricks... This one should be just
fine
True basicNew ifTrue: [ "some code" ] yourself
2013/6/26 Clément Bera <[email protected]>
True basicNew ifTrue: [ "some code" ]
hehe raises NonBooleanReceiver :)
2013/6/26 Camillo Bruni <[email protected]>
why not, let's "forbid" them with an error message!
=> maybe you can and error to #become: on nil / true / false
as well?
On 2013-06-26, at 14:20, Torsten Bergmann <[email protected]>
wrote:
> Boolean new -> error
> Boolean basicNew -> is possible
>
> should we care?
>
--
Clément BéraMate Virtual Machine Engineer
Bâtiment B 40, avenue Halley 59650 Villeneuve d'Ascq