On Wed, 26 Jun 2013, Guillermo Polito wrote:


On Wed, Jun 26, 2013 at 11:20 PM, Levente Uzonyi <le...@elte.hu> 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 <nicolas.cellier.aka.n...@gmail.com>
                  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 <bera.clem...@gmail.com>
                  True basicNew ifTrue: [ "some code" ]

            hehe raises NonBooleanReceiver :)


            2013/6/26 Camillo Bruni <camillobr...@gmail.com>
                  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 <asta...@gmx.de> 
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




Reply via email to