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! |
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! > > > |
Free forum by Nabble | Edit this page |