<br><br><div class="gmail_quote">On Tue, Feb 15, 2011 at 11:18 AM, Igor Stasenko <span dir="ltr">&lt;<a href="mailto:siguctua@gmail.com">siguctua@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On 15 February 2011 19:59, Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt; On Mon, Feb 14, 2011 at 11:00 PM, Stéphane Ducasse<br>
&gt; &lt;<a href="mailto:stephane.ducasse@inria.fr">stephane.ducasse@inria.fr</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Eliot<br>
&gt;&gt;<br>
&gt;&gt; you use caseOf: for the generation of C in Slang and VM maker.<br>
&gt;&gt; Now this means that<br>
&gt;&gt;        - it does not need to be inlined<br>
&gt;<br>
&gt; No.  If it is not inlined the simulator will go *much* slower.  e.g.<br>
&gt; CogVMSimulatorLSB&gt;&gt;byteAt: byteAddress<br>
&gt; | lowBits long |<br>
&gt; lowBits := byteAddress bitAnd: 3.<br>
&gt; long := self longAt: byteAddress - lowBits.<br>
&gt; ^(lowBits caseOf: {<br>
&gt; [0] -&gt; [ long ].<br>
&gt; [1] -&gt; [ long bitShift: -8  ].<br>
&gt; [2] -&gt; [ long bitShift: -16 ].<br>
&gt; [3] -&gt; [ long bitShift: -24 ]<br>
&gt; }) bitAnd: 16rFF<br>
&gt;<br>
<br>
</div>so why not put it:<br>
<br>
^ (long bitShift: (-8*lowBits) ) bitAnd: 16rFF<br>
<br>
?<br>
Or this will be slower than caseOf: ?<br></blockquote><div><br></div><div>Because that was the way the code was written.  I just copied the method.  Further, it is only one example.  I&#39;m not going to rewrite the VMMaker&#39;s uses of caseOf: jyst to suit some whim of purity.  It is making unnecessary work.  Taking it out is *much* more work (/and/ emotional energy) than just leaving it alone.  Can&#39;t we try and be constructive?</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im"><br>
<br>
&gt;&gt;<br>
&gt;&gt;        - it could be packaged with VMMaker<br>
&gt;<br>
&gt; No.  It needs to be in the compiler to be inlined.  Why have you got on this<br>
&gt; hobby-horse?  It is a non-issue.  caseOf: ios not widelty used but extremely<br>
&gt; useful in certain circumstances.  This has the feeling of a religious<br>
&gt; pogrom, not a rational approach to the system.  IIABDFI = If It Ain&#39;t Broke,<br>
&gt; Don&#39;t Fix It.<br>
<br>
</div>This concept kinda appeal to me.<br>
>From other side, i am also strongly feel that house should be kept clean :)<br>
<div class="im"><br>
&gt;&gt;<br>
&gt;&gt; Are these two points correct?<br>
&gt;<br>
&gt; No, IMO, definitely not.<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; Stef<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
</div>--<br>
<div><div></div><div class="h5">Best regards,<br>
Igor Stasenko AKA sig.<br>
<br>
</div></div></blockquote></div><br>