Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/..VMMaker.oscog-eem.617.mcz
==================== Summary ====================
Name: ..VMMaker.oscog-eem.617 Author: eem Time: 13 February 2014, 9:38:02.186 am UUID: 522aeee6-194d-4777-a4a5-19e312108e86 Ancestors: ..VMMaker.oscog-eem.616
Use Smalltalk vm getSystemAttribute: instead of plain old Smalltalk getSystemAttribute:
=============== Diff against ..VMMaker.oscog-eem.616 ===============
Item was changed: ----- Method: CogVMSimulator>>primitiveGetAttribute (in category 'other primitives') ----- primitiveGetAttribute "Fetch the system attribute with the given integer ID. The result is a string, which will be empty if the attribute is not defined."
| index s attribute | index := self stackIntegerValue: 0. self successful ifTrue: [ + attribute := systemAttributes at: index ifAbsent: [Smalltalk vm getSystemAttribute: index]. - attribute := systemAttributes at: index ifAbsent: [Smalltalk getSystemAttribute: index]. attribute ifNil: [ ^self primitiveFail ]. s := objectMemory instantiateClass: (objectMemory splObj: ClassByteString) indexableSize: attribute size. 1 to: attribute size do: [ :i | objectMemory storeByte: i-1 ofObject: s withValue: (attribute at: i) asciiValue]. + self pop: 2 "rcvr, attr" thenPush: s]! - self pop: 2. "rcvr, attr" - self push: s]!
Item was changed: ----- Method: InterpreterSimulator>>primitiveGetAttribute (in category 'other primitives') ----- primitiveGetAttribute "Fetch the system attribute with the given integer ID. The result is a string, which will be empty if the attribute is not defined."
| attr s attribute | attr := self stackIntegerValue: 0. successFlag ifTrue: [ + attribute := Smalltalk vm getSystemAttribute: attr. - attribute := Smalltalk getSystemAttribute: attr. attribute ifNil: [ ^self primitiveFail ]. s := self instantiateClass: (self splObj: ClassByteString) indexableSize: attribute size. 1 to: attribute size do: [ :i | self storeByte: i-1 ofObject: s withValue: (attribute at: i) asciiValue]. + self pop: 2 "rcvr, attr" thenPush: s]. - self pop: 2. "rcvr, attr" - self push: s]. !
Item was changed: ----- Method: NewspeakInterpreterSimulator>>primitiveGetAttribute (in category 'other primitives') ----- primitiveGetAttribute "Fetch the system attribute with the given integer ID. The result is a string, which will be empty if the attribute is not defined."
| attr s attribute | attr := self stackIntegerValue: 0. self successful ifTrue: [ + attribute := Smalltalk vm getSystemAttribute: attr. - attribute := Smalltalk getSystemAttribute: attr. attribute ifNil: [ ^self primitiveFail ]. s := self instantiateClass: (self splObj: ClassByteString) indexableSize: attribute size. 1 to: attribute size do: [ :i | self storeByte: i-1 ofObject: s withValue: (attribute at: i) asciiValue]. + self pop: 2 "rcvr, attr" thenPush: s]. - self pop: 2. "rcvr, attr" - self push: s]. !
Item was changed: ----- Method: StackInterpreterSimulator>>primitiveGetAttribute (in category 'other primitives') ----- primitiveGetAttribute "Fetch the system attribute with the given integer ID. The result is a string, which will be empty if the attribute is not defined."
| index s attribute | index := self stackIntegerValue: 0. self successful ifTrue: [ + attribute := systemAttributes at: index ifAbsent: [Smalltalk vm getSystemAttribute: index]. - attribute := systemAttributes at: index ifAbsent: [Smalltalk getSystemAttribute: index]. attribute ifNil: [ ^self primitiveFail ]. s := objectMemory instantiateClass: (objectMemory splObj: ClassByteString) indexableSize: attribute size. 1 to: attribute size do: [ :i | objectMemory storeByte: i-1 ofObject: s withValue: (attribute at: i) asciiValue]. + self pop: 2 "rcvr, attr" thenPush: s]! - self pop: 2. "rcvr, attr" - self push: s]!
vm-dev@lists.squeakfoundation.org