David,<br><br>&nbsp;&nbsp; &nbsp;thanks a lot! &nbsp;I have some integration to do :) &nbsp; Not least I want to integrate the pragma support in 3.9 back into 3.8 because using pragmas instead of the null statements (self var: #foo type: #barf) etc is so much nicer. &nbsp;I also have to produce bootstraps for the closure compiler in a few images, e.g. Croquet 1.0, 3.9, 3.10 &amp; Spoon. &nbsp;Once I get the Croquet bootstrap done I would welcome volunteers for the others.<br>
<br>cheers!<br><br>P.S. &nbsp;Brilliant British GP today!! (just finished watching it). &nbsp;Lewis 1st and Rubens 3rd in the Honda. &nbsp;Fantastic!<br><br><div class="gmail_quote">On Sun, Jul 6, 2008 at 8:19 PM, David T. Lewis &lt;<a href="mailto:lewis@mail.msen.com">lewis@mail.msen.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="Ih2E3d">On Thu, Jul 03, 2008 at 05:25:51PM -0700, Eliot Miranda wrote:<br>
</div><div class="Ih2E3d">&gt; Hi All,<br>
&gt;<br>
&gt; &nbsp; &nbsp; does anyone know (or even better has anyone fixed it) how hard it is to<br>
&gt; make Slang inline methods that contain simple type declarations?<br>
<br>
</div>Eliot, the attached change sets are a snapshot of some tinkering I&#39;ve been doing<br>
that relates to Slang generation of inlined C code and declarations. I&#39;m sorry it&#39;s<br>
not tidied up better, but the short change sets with bug fixes may be of some use<br>
to you in their current form. I do plan to post the relevant bug fixes on Mantis<br>
some time soon.<br>
<br>
HTH,<br>
<br>
- Dave<br>
<br>
------<br>
&quot;Change Set: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PermitInliningCCode-dtl<br>
Date: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 6 July 2008<br>
Author: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; David T. Lewis<br>
<br>
Honor a &#39;self inline: true&#39; request regardless of whether the method contains C code or declarations. Includes a change to case statement generation to support this inlining.&quot;!<br>
------<br>
<br>
&quot;Change Set: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CaseGenerationFixes-dtl<br>
Date: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 6 July 2008<br>
Author: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; David T. Lewis<br>
<br>
The main loop of the interpreter dispatches on bytecodes, with the case targets generated by TCaseStmtNode. There are a number of bytecode methods in the interpreter that make assumptions about slang generation of the case targets in order to support early fetching of the next bytecode. This change set adds #flag: markers to identify the interpreter methods that make this assumption, and adds a check to TCaseStmtNode to force the expected slang code generation regardless of the size of the parse tree for the case target.&quot;!<br>

------<br>
&quot;Change Set: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TMethod-renameVarsFix-dtl<br>
Date: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 4 July 2008<br>
Author: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; David T. Lewis<br>
<br>
Fix bug in TMethod&gt;&gt;renameVariablesUsing: that caused incorrect C variable declarations for temporary variables that are renamed during slang inlining.&quot;!<br>
<br>
------<br>
&#39;From Squeak3.9 of 7 November 2006 [latest update: #7067] on 6 July 2008 at 10:15:15 pm&#39;!<br>
&quot;Change Set: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TMethod-TParseNode-comments-dtl<br>
Date: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 6 July 2008<br>
Author: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; David T. Lewis<br>
<br>
Class comments, and categorization of some TParseNode methods&quot;!<br>
------<br>
&#39;From Squeak3.9 of 7 November 2006 [latest update: #7067] on 6 July 2008 at 10:09:15 pm&#39;!<br>
&quot;Change Set: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MemoryAccess-unresolvedBugs-dtl<br>
Date: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 3 July 2008<br>
Author: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; David T. Lewis<br>
<br>
Interpreter&gt;&gt;loadFloatOrIntFrom: should be inlined, but there is now a bug in temp variable handling that prevents this. It is probably a pre-existing bug that was masked by the fact that methods with C declarations previously could not be inlined. I&#39;m saving it here in this change set in case I feel motivated later to try to fix the bug.&quot;!<br>

------<br>
&#39;From Squeak3.9 of 7 November 2006 [latest update: #7067] on 6 July 2008 at 10:26:02 pm&#39;!<br>
&quot;Change Set: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MemoryAccess-dtl<br>
Date: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 29 June 2008<br>
Author: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; David T. Lewis<br>
<br>
MemoryAccess defines the low level mapping of object memory addresses to the underlying machine address space.<br>
<br>
Prerequisite change sets:<br>
 &nbsp;PermitInliningCCode-dtl<br>
 &nbsp;CaseGenerationFixes-dtl<br>
 &nbsp;TMethod-renameVarsFix-dtl<br>
 &nbsp;TMethod-TParseNode-comments-dtl<br>
 &nbsp;MemoryAccess-unresolvedBugs-dtl<br>
<br>
This is intended to replace the traditional external definitions in sqMemoryAccess.h<br>
&quot;!<br>
<br>
</blockquote></div><br>