[Vm-dev] VM Maker: Cog-eem.223.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Nov 24 23:29:36 UTC 2014


Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.223.mcz

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

Name: Cog-eem.223
Author: eem
Time: 24 November 2014, 3:29:20.446 pm
UUID: 1c99ed1d-47d5-4fd5-bfae-0f2264678598
Ancestors: Cog-eem.222

Update Spur bootstrap to account for
floatObjectOf: moving to ObjectMemory hierarchy.

=============== Diff against Cog-eem.222 ===============

Item was changed:
  ----- Method: SpurBootstrap>>findLiteral:inClass: (in category 'bootstrap methods') -----
  findLiteral: aLiteral inClass: classOop
  	| bindingOrNil |
  	aLiteral isString ifTrue:
  		[^self stringFor: aLiteral].
  	aLiteral isFloat ifTrue:
+ 		[^oldHeap floatObjectOf: aLiteral].
- 		[^oldInterpreter floatObjectOf: aLiteral].
  	aLiteral isArray ifTrue:
  		[^self cloneArrayLiteral: aLiteral].
  	aLiteral isCharacter ifTrue:
  		[^oldHeap characterObjectOf: aLiteral asciiValue].
  	self assert: aLiteral isVariableBinding.
  	bindingOrNil := self interpreter: oldInterpreter
  						object: classOop
  						perform: (self findSymbol: #bindingOf:)
  						withArguments: {self findSymbol: aLiteral key}.
  	bindingOrNil ~= oldHeap nilObject ifTrue:
  		[^bindingOrNil].
  	self error: 'couldn''t find literal ', aLiteral printString!

Item was changed:
  ----- Method: SpurOldToNewMethodFormatMunger>>literalFor:inClass: (in category 'munging') -----
  literalFor: aLiteral inClass: classOop
  	| bindingOrNil |
  	aLiteral isSymbol ifTrue:
  		[^symbolOops at: aLiteral].
  	aLiteral isString ifTrue:
  		[^heap stringForCString: aLiteral].
  	(aLiteral isInteger and: [aLiteral class == SmallInteger]) ifTrue:
  		[^heap integerObjectOf: aLiteral].
  	aLiteral isFloat ifTrue:
+ 		[^heap floatObjectOf: aLiteral].
- 		[^interpreter floatObjectOf: aLiteral].
  	aLiteral isArray ifTrue:
  		[^self cloneArrayLiteral: aLiteral].
  	self assert: aLiteral isVariableBinding.
  	"interpreter
  		ensureDebugAtEachStepBlock;
  		instVarNamed: 'printBytecodeAtEachStep' put: true;
  		instVarNamed: 'printFrameAtEachStep' put: true."
  	bindingOrNil := self interpreter: interpreter
  						object: classOop
  						perform: (symbolOops at: #bindingOf:)
  						withArguments: {symbolOops at: aLiteral key}.
  	bindingOrNil ~= heap nilObject ifTrue:
  		[^bindingOrNil].
  	self error: 'couldn''t find literal ', aLiteral printString!



More information about the Vm-dev mailing list