The Trunk: Compiler-eem.228.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Compiler-eem.228.mcz

commits-2
Eliot Miranda uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-eem.228.mcz

==================== Summary ====================

Name: Compiler-eem.228
Author: eem
Time: 29 March 2012, 3:53:13.947 pm
UUID: d35c5eea-e31b-440a-bc18-18a921444c4d
Ancestors: Compiler-eem.227

Fix snafu in Compiler-eem.227 at: => at:ifAbsent:. in decompiler

=============== Diff against Compiler-eem.227 ===============

Item was changed:
  ----- Method: DecompilerConstructorForClosures>>codeMethod:block:tempVars:primitive:class: (in category 'constructor') -----
  codeMethod: selector block: block tempVars: vars primitive: primitive class: class
 
  | blockNode selectorNode visibleTemps invisibleTemps arguments temporaries properties |
  selectorNode := self codeSelector: selector code: nil.
  tempVars := vars.
  visibleTemps := OrderedCollection new.
  invisibleTemps := OrderedCollection new.
  tempVars do: [:t|
    ((t isIndirectTempVector or: [t scope >= 0])
  ifTrue: [visibleTemps]
  ifFalse: [invisibleTemps]) addLast: t].
  arguments := visibleTemps copyFrom: 1 to: nArgs.
  temporaries := visibleTemps copyFrom: nArgs + 1 to: visibleTemps size.
  block
  arguments: arguments;
  temporaries: temporaries.
  properties := method properties copy.
+ (properties at: #onceCache ifAbsent: []) ifNotNil:
- (properties at: #onceCache) ifNotNil:
  [:onceCache|
  properties := properties copyWithout: (Association
  key: #onceCache
  value: onceCache)].
  blockNode := MethodNode new
  selector: selectorNode
  arguments: arguments
  precedence: selector precedence
  temporaries: temporaries
  block: block
  encoder: (EncoderForV3PlusClosures new initScopeAndLiteralTables
  temps: visibleTemps, invisibleTemps
  literals: literalValues
  class: class)
  primitive: primitive
  properties: properties.
  blockNode properties method: blockNode.
  ^blockNode!


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Compiler-eem.228.mcz

Levente Uzonyi-2
On Thu, 29 Mar 2012, [hidden email] wrote:

> Eliot Miranda uploaded a new version of Compiler to project The Trunk:
> http://source.squeak.org/trunk/Compiler-eem.228.mcz
>
> ==================== Summary ====================
>
> Name: Compiler-eem.228
> Author: eem
> Time: 29 March 2012, 3:53:13.947 pm
> UUID: d35c5eea-e31b-440a-bc18-18a921444c4d
> Ancestors: Compiler-eem.227
>
> Fix snafu in Compiler-eem.227 at: => at:ifAbsent:. in decompiler
>
> =============== Diff against Compiler-eem.227 ===============
>
> Item was changed:
>  ----- Method: DecompilerConstructorForClosures>>codeMethod:block:tempVars:primitive:class: (in category 'constructor') -----
>  codeMethod: selector block: block tempVars: vars primitive: primitive class: class
>
>   | blockNode selectorNode visibleTemps invisibleTemps arguments temporaries properties |
>   selectorNode := self codeSelector: selector code: nil.
>   tempVars := vars.
>   visibleTemps := OrderedCollection new.
>   invisibleTemps := OrderedCollection new.
>   tempVars do: [:t|
>     ((t isIndirectTempVector or: [t scope >= 0])
>   ifTrue: [visibleTemps]
>   ifFalse: [invisibleTemps]) addLast: t].
>   arguments := visibleTemps copyFrom: 1 to: nArgs.
>   temporaries := visibleTemps copyFrom: nArgs + 1 to: visibleTemps size.
>   block
>   arguments: arguments;
>   temporaries: temporaries.
>   properties := method properties copy.
> + (properties at: #onceCache ifAbsent: []) ifNotNil:

Isn't #at:ifPresent: better here? Can the value be nil?


Levente

> - (properties at: #onceCache) ifNotNil:
>   [:onceCache|
>   properties := properties copyWithout: (Association
>   key: #onceCache
>   value: onceCache)].
>   blockNode := MethodNode new
>   selector: selectorNode
>   arguments: arguments
>   precedence: selector precedence
>   temporaries: temporaries
>   block: block
>   encoder: (EncoderForV3PlusClosures new initScopeAndLiteralTables
>   temps: visibleTemps, invisibleTemps
>   literals: literalValues
>   class: class)
>   primitive: primitive
>   properties: properties.
>   blockNode properties method: blockNode.
>   ^blockNode!
>
>
>