On 15 February 2011 19:59, Eliot Miranda <eliot.miranda@gmail.com> wrote:
On Mon, Feb 14, 2011 at 11:00 PM, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote:
Eliot
you use caseOf: for the generation of C in Slang and VM maker. Now this means that     - it does not need to be inlined
No. Â If it is not inlined the simulator will go *much* slower. Â e.g. CogVMSimulatorLSB>>byteAt: byteAddress | lowBits long | lowBits := byteAddress bitAnd: 3. long := self longAt: byteAddress - lowBits. ^(lowBits caseOf: { [0] -> [ long ]. [1] -> [ long bitShift: -8 Â ]. [2] -> [ long bitShift: -16 ]. [3] -> [ long bitShift: -24 ] }) bitAnd: 16rFF
so why not put it: ^ (long bitShift: (-8*lowBits) ) bitAnd: 16rFF ? Or this will be slower than caseOf: ?
    - it could be packaged with VMMaker
No. Â It needs to be in the compiler to be inlined. Â Why have you got on this hobby-horse? Â It is a non-issue. Â caseOf: ios not widelty used but extremely useful in certain circumstances. Â This has the feeling of a religious pogrom, not a rational approach to the system. Â IIABDFI = If It Ain't Broke, Don't Fix It.
This concept kinda appeal to me.
From other side, i am also strongly feel that house should be kept clean :)
Are these two points correct?
No, IMO, definitely not.
Stef
-- Best regards, Igor Stasenko AKA sig.