<div dir="ltr">Hi,<div><br></div><div> ignore this one; it's a dud. I got confused and committed a bogus version of TParseNode>>comment:. VMMaker.oscog-eem.2309 is good though. Apologies for the noise.<br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jan 5, 2018 at 12:20 AM, <span dir="ltr"><<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><br>
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:<br>
<a href="http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2308.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/<wbr>VMMaker/VMMaker.oscog-eem.<wbr>2308.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: VMMaker.oscog-eem.2308<br>
Author: eem<br>
Time: 5 January 2018, 12:19:53.562181 am<br>
UUID: 6c41bece-0d81-4a69-a677-<wbr>bf6e8f275674<br>
Ancestors: VMMaker.oscog-eem.2307<br>
<br>
Slang: Make TParseNode>>comment; do what it implies and accept a string argument, instead of insistign clients know the internal contract is a sequence of comment strings.<br>
<br>
Tweak the recent inlining comment change; no need to comment if what's being inlined is a named constant.<br>
<br>
=============== Diff against VMMaker.oscog-eem.2307 ===============<br>
<br>
Item was changed:<br>
----- Method: TMethod>><wbr>tryToInlineMethodExpressionsIn<wbr>: (in category 'inlining') -----<br>
tryToInlineMethodExpressionsIn<wbr>: aCodeGen<br>
"Expand any (complete) inline methods sent by this method as receivers or parameters.<br>
Answer if anything was inlined."<br>
<br>
| sendsToInline |<br>
sendsToInline := Dictionary new: 100.<br>
aCodeGen<br>
pushScope: declarations<br>
while: [parseTree<br>
nodesDo:<br>
[:node|<br>
(self inlineableFunctionCall: node in: aCodeGen) ifTrue:<br>
[(self inlineFunctionCall: node in: aCodeGen) ifNotNil:<br>
[:replacement|<br>
+ (replacement isConstant<br>
+ and: [replacement isDefine not<br>
+ and: [replacement value isNumber<br>
+ and: [replacement comment isNil]]]) ifTrue:<br>
- (replacement isConstant and: [replacement value isNumber and: [replacement comment isNil]]) ifTrue:<br>
[replacement comment: node selector].<br>
sendsToInline at: node put: replacement]]]<br>
unless: "Don't inline the arguments to asserts to keep the asserts readable"<br>
[:node|<br>
node isSend<br>
and: [node selector == #cCode:inSmalltalk:<br>
or: [aCodeGen isAssertSelector: node selector]]]].<br>
<br>
sendsToInline isEmpty ifTrue:<br>
[^false].<br>
self replaceNodesIn: sendsToInline.<br>
^true!<br>
<br>
Item was changed:<br>
----- Method: TParseNode>>comment: (in category 'accessing') -----<br>
comment: aComment<br>
+ "Ugh,. comment is a sequence of strings."<br>
+ comment := aComment isString ifTrue: [{aComment}] ifFalse: [aComment]!<br>
-<br>
- comment := aComment !<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div>
</div></div></div>