<br><br><div class="gmail_quote">On Wed, Mar 2, 2011 at 1:52 PM, Juan Vuletich <span dir="ltr"><<a href="mailto:juan@jvuletich.org">juan@jvuletich.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi Eliot,<br>
<br>
Thanks for caring!<br>
<br>
The attached code fixed the case I reported first, but not this:<br>
<br>
true ifTrue: [ 'was true' print ]; ifFalse: [ 'not true' print ]<br></blockquote><div><br></div><div>Does the second one have to be unoptimized? I guess that in this both are deoptimized right?</div><div>
</div><div>true ifTrue: [ 'was true' print ]; ifFalse: [ 'not true' print ]; yourself</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
Thanks,<br>
Juan Vuletich<br>
<br>
Eliot Miranda wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
Hi Juan,<br>
<br>
I think the deoptimize-after-the-fact approach has no hope of working given the transformations for ifFalse:ifTrue: (swap arguments and transform to ifTrue:ifFalse:), ifNil:ifNotNil: et al. Better is to avoid transforming at all if in a cascade. So the attached is a start. It needs cleaning up, the older hack (ensureCanCascade:) removing and either all uses of receiver:selector:arguments:precedence:from:sourceRange: should use receiver:selector:arguments:precedence:from:sourceRange:canTransform:, or implement receiver:selector:arguments:precedence:from:sourceRange in terms of receiver:selector:arguments:precedence:from:sourceRange:canTransform. Anyway, test this and see how you get on.<br>
<br>
cheers,<br>
Eliot<br>
<br></div><div class="im">
On Wed, Mar 2, 2011 at 11:46 AM, Juan Vuletich <<a href="mailto:juan@jvuletich.org" target="_blank">juan@jvuletich.org</a> <mailto:<a href="mailto:juan@jvuletich.org" target="_blank">juan@jvuletich.org</a>>> wrote:<br>
<br>
Hi Folks,<br>
<br></div><div class="im">
<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a> <mailto:<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>> wrote:<br>
<br>
Nicolas Cellier uploaded a new version of Compiler to project<br>
The Trunk:<br>
<a href="http://source.squeak.org/trunk/Compiler-nice.189.mcz" target="_blank">http://source.squeak.org/trunk/Compiler-nice.189.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Compiler-nice.189<br>
Author: nice<br>
Time: 13 February 2011, 7:44:38.363 pm<br>
UUID: 3f6f02cd-1acf-48de-a388-b5ac55e27055<br>
Ancestors: Compiler-nice.188<br>
<br>
Enable cascading of special messages by deoptimizing, thanks<br>
Eliot.<br>
This is mostly useless, but it removes an arbitrary limitation<br>
of the language.<br>
<br>
=============== Diff against Compiler-nice.188 ===============<br>
<br>
I integrated this nice code in Cuis, and tried:<br>
<br>
true ifTrue: [ Transcript cr; show: 'was true' ]; yourself<br>
<br>
I found that this works ok with the interpreter but does nothing<br>
in Cog. A bug, right?<br>
<br>
Cheers,<br>
Juan Vuletich<br>
<br>
<br></div>
------------------------------------------------------------------------<br>
<br>
<br>
<br>
------------------------------------------------------------------------<br>
<br>
No virus found in this message.<br>
Checked by AVG - <a href="http://www.avg.com" target="_blank">www.avg.com</a> <<a href="http://www.avg.com" target="_blank">http://www.avg.com</a>><br>
Version: 10.0.1204 / Virus Database: 1435/3477 - Release Date: 03/02/11<br>
<br>
</blockquote>
<br>
<br>
</blockquote></div><br>