On Tue, Oct 19, 2010 at 10:55 PM, < squeak-dev-noreply@lists.squeakfoundation.org> wrote:
Dave Lewis uploaded a new version of VMMaker to project VM Maker: http://www.squeaksource.com/VMMaker/VMMaker-dtl.194.mcz
==================== Summary ====================
Name: VMMaker-dtl.194 Author: dtl Time: 19 October 2010, 11:52:12 am UUID: 9dd94fba-0da6-49f7-820c-9af777558bb7 Ancestors: VMMaker-dtl.193
VMMaker 4.3.8
Adopt CCodeGenerator improvements from oscog, notably including proper C code generation for ifTrue:ifFalse: constructs as expressions, as well as methods used in Cog code generation. Produces equivalent C code for the traditional interpreter, modulo some cosmetic differences in the output (line breaks, spaces, etc).
Notes:
Added #asExpression to TSendNode>>emitCCodeAsArgumentOn:level:generator: needed for cpp code generation for expressions.
Methods #generateInlineCPreprocessorDirective:on:indent: and #generateCppDirective:on:indent: are redundant, get rid of one (or both) of them. Consider using #isDefined:inSmalltalk:comment:ifTrue:ifFalse: instead in Cog.
Ooh! I like it. Why didn't I think of this? Make it so. The cPreprocessorDirective: was my most egregious hack. But I would just use #ifDefined: aPreprocessorMacroName ifTrue: [] ifFalse: [] and then use cCode:inSmalltalk: within each arm as appropriate rather than conflating the two.
best Eliot