[squeak-dev] Anyone know the following about Slang?

David T. Lewis lewis at mail.msen.com
Mon Jul 7 03:19:06 UTC 2008


On Thu, Jul 03, 2008 at 05:25:51PM -0700, Eliot Miranda wrote:
> Hi All,
> 
>     does anyone know (or even better has anyone fixed it) how hard it is to
> make Slang inline methods that contain simple type declarations?

Eliot, the attached change sets are a snapshot of some tinkering I've been doing
that relates to Slang generation of inlined C code and declarations. I'm sorry it's
not tidied up better, but the short change sets with bug fixes may be of some use
to you in their current form. I do plan to post the relevant bug fixes on Mantis
some time soon.

HTH,

- Dave

------
"Change Set:		PermitInliningCCode-dtl
Date:			6 July 2008
Author:			David T. Lewis

Honor a 'self inline: true' request regardless of whether the method contains C code or declarations. Includes a change to case statement generation to support this inlining."!
------

"Change Set:		CaseGenerationFixes-dtl
Date:			6 July 2008
Author:			David T. Lewis

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."!
------
"Change Set:		TMethod-renameVarsFix-dtl
Date:			4 July 2008
Author:			David T. Lewis

Fix bug in TMethod>>renameVariablesUsing: that caused incorrect C variable declarations for temporary variables that are renamed during slang inlining."!

------
'From Squeak3.9 of 7 November 2006 [latest update: #7067] on 6 July 2008 at 10:15:15 pm'!
"Change Set:		TMethod-TParseNode-comments-dtl
Date:			6 July 2008
Author:			David T. Lewis

Class comments, and categorization of some TParseNode methods"!
------
'From Squeak3.9 of 7 November 2006 [latest update: #7067] on 6 July 2008 at 10:09:15 pm'!
"Change Set:		MemoryAccess-unresolvedBugs-dtl
Date:			3 July 2008
Author:			David T. Lewis

Interpreter>>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'm saving it here in this change set in case I feel motivated later to try to fix the bug."!
------
'From Squeak3.9 of 7 November 2006 [latest update: #7067] on 6 July 2008 at 10:26:02 pm'!
"Change Set:		MemoryAccess-dtl
Date:			29 June 2008
Author:			David T. Lewis

MemoryAccess defines the low level mapping of object memory addresses to the underlying machine address space.

Prerequisite change sets:
  PermitInliningCCode-dtl
  CaseGenerationFixes-dtl       
  TMethod-renameVarsFix-dtl
  TMethod-TParseNode-comments-dtl
  MemoryAccess-unresolvedBugs-dtl

This is intended to replace the traditional external definitions in sqMemoryAccess.h
"!

-------------- next part --------------
A non-text attachment was scrubbed...
Name: PermitInliningCCode-dtl.2.cs.gz
Type: application/octet-stream
Size: 2027 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20080706/77d1918a/PermitInliningCCode-dtl.2.cs.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CaseGenerationFixes-dtl.4.cs.gz
Type: application/octet-stream
Size: 1733 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20080706/77d1918a/CaseGenerationFixes-dtl.4.cs.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: TMethod-renameVarsFix-dtl.4.cs.gz
Type: application/octet-stream
Size: 762 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20080706/77d1918a/TMethod-renameVarsFix-dtl.4.cs.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: TMethod-TParseNode-comments-dtl.1.cs.gz
Type: application/octet-stream
Size: 737 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20080706/77d1918a/TMethod-TParseNode-comments-dtl.1.cs.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: MemoryAccess-unresolvedBugs-dtl.4.cs.gz
Type: application/octet-stream
Size: 699 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20080706/77d1918a/MemoryAccess-unresolvedBugs-dtl.4.cs.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: MemoryAccess-dtl.10.cs.gz
Type: application/octet-stream
Size: 8508 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20080706/77d1918a/MemoryAccess-dtl.10.cs.obj


More information about the Squeak-dev mailing list