[Vm-dev] VM Maker: VMMaker.oscog-eem.2308.mcz

Eliot Miranda eliot.miranda at gmail.com
Fri Jan 5 08:47:19 UTC 2018


Hi,

    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.

On Fri, Jan 5, 2018 at 12:20 AM, <commits at source.squeak.org> wrote:

>
> Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
> http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2308.mcz
>
> ==================== Summary ====================
>
> Name: VMMaker.oscog-eem.2308
> Author: eem
> Time: 5 January 2018, 12:19:53.562181 am
> UUID: 6c41bece-0d81-4a69-a677-bf6e8f275674
> Ancestors: VMMaker.oscog-eem.2307
>
> 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.
>
> Tweak the recent inlining comment change; no need to comment if what's
> being inlined is a named constant.
>
> =============== Diff against VMMaker.oscog-eem.2307 ===============
>
> Item was changed:
>   ----- Method: TMethod>>tryToInlineMethodExpressionsIn: (in category
> 'inlining') -----
>   tryToInlineMethodExpressionsIn: aCodeGen
>         "Expand any (complete) inline methods sent by this method as
> receivers or parameters.
>          Answer if anything was inlined."
>
>         | sendsToInline |
>         sendsToInline := Dictionary new: 100.
>         aCodeGen
>                 pushScope: declarations
>                 while: [parseTree
>                                         nodesDo:
>                                                 [:node|
>                                                 (self
> inlineableFunctionCall: node in: aCodeGen) ifTrue:
>                                                         [(self
> inlineFunctionCall: node in: aCodeGen) ifNotNil:
>
> [:replacement|
> +
> (replacement isConstant
> +                                                                 and:
> [replacement isDefine not
> +                                                                 and:
> [replacement value isNumber
> +                                                                 and:
> [replacement comment isNil]]]) ifTrue:
> -
> (replacement isConstant and: [replacement value isNumber and: [replacement
> comment isNil]]) ifTrue:
>
> [replacement comment: node selector].
>
>  sendsToInline at: node put: replacement]]]
>                                         unless: "Don't inline the
> arguments to asserts to keep the asserts readable"
>                                                 [:node|
>                                                 node isSend
>                                                 and: [node selector ==
> #cCode:inSmalltalk:
>                                                         or: [aCodeGen
> isAssertSelector: node selector]]]].
>
>         sendsToInline isEmpty ifTrue:
>                 [^false].
>         self replaceNodesIn: sendsToInline.
>         ^true!
>
> Item was changed:
>   ----- Method: TParseNode>>comment: (in category 'accessing') -----
>   comment: aComment
> +       "Ugh,. comment is a sequence of strings."
> +       comment := aComment isString ifTrue: [{aComment}] ifFalse:
> [aComment]!
> -
> -       comment := aComment !
>
>


-- 
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20180105/3c1e26e1/attachment.html>


More information about the Vm-dev mailing list