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

commits at source.squeak.org commits at source.squeak.org
Tue Mar 31 16:48:49 UTC 2015


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

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

Name: VMMaker.oscog-eem.1136
Author: eem
Time: 31 March 2015, 9:46:16.323 am
UUID: 3f1acab7-bf76-422e-9334-aeff3a1aa45e
Ancestors: VMMaker.oscog-eem.1135

Better fix for the initialization bug when using Sista
and multiple bytecode sets.  
Make sure that allconcrete Cogit classes in the
hierarchy initisalize the bytecode set and hence
agree on the bytecode set.

=============== Diff against VMMaker.oscog-eem.1135 ===============

Item was changed:
  ----- Method: Cogit class>>initializeBytecodeTable (in category 'class initialization') -----
  initializeBytecodeTable
  	"SimpleStackBasedCogit initializeBytecodeTableWith: Dictionary new"
  	"StackToRegisterMappingCogit initializeBytecodeTableWith: Dictionary new"
  
+ 	| initializer |
+ 	initializer := initializationOptions
+ 					at: #bytecodeTableInitializer
+ 					ifAbsent:
+ 						[NewspeakVM
+ 							ifTrue:
+ 								[(initializationOptions at: #SpurObjectMemory ifAbsent: false)
+ 									ifTrue:
+ 										[MULTIPLEBYTECODESETS
+ 											ifTrue: [#initializeBytecodeTableForSqueakV3PlusClosuresNewspeakV4Hybrid]
+ 											ifFalse: [#initializeBytecodeTableForNewspeakV4]]
+ 									ifFalse:
+ 										[MULTIPLEBYTECODESETS
+ 											ifTrue: [#initializeBytecodeTableForNewspeakV3PlusClosuresNewspeakV4Hybrid]
+ 											ifFalse: [#initializeBytecodeTableForNewspeakV3PlusClosures]]]
+ 							ifFalse:
+ 								[#initializeBytecodeTableForSqueakV3PlusClosures]].
+ 	"Now make sure all classes in the hierarchy have initialized to the same bytecode table."
+ 	(self withAllSuperclasses copyUpTo: Cogit) reverseDo: "i.e. exclude Cogit"
+ 		[:cogitClass|
+ 		 cogitClass perform: initializer]!
- 	(initializationOptions at: #bytecodeTableInitializer ifAbsent: nil) ifNotNil:
- 		[:initalizer| ^self perform: initalizer].
- 
- 	NewspeakVM ifTrue:
- 		[^(initializationOptions at: #SpurObjectMemory ifAbsent: false)
- 			ifTrue:
- 				[MULTIPLEBYTECODESETS
- 					ifTrue: [self initializeBytecodeTableForSqueakV3PlusClosuresNewspeakV4Hybrid]
- 					ifFalse: [self initializeBytecodeTableForNewspeakV4]]
- 			ifFalse:
- 				[MULTIPLEBYTECODESETS
- 					ifTrue: [self initializeBytecodeTableForNewspeakV3PlusClosuresNewspeakV4Hybrid]
- 					ifFalse: [self initializeBytecodeTableForNewspeakV3PlusClosures]]].
- 	^self initializeBytecodeTableForSqueakV3PlusClosures!

Item was changed:
  ----- Method: SistaStackToRegisterMappingCogit class>>declareCVarsIn: (in category 'translation') -----
  declareCVarsIn: aCodeGen
- 	"We need the super send here to ensure that self pushNilSizeFunction answers the right function in Sista."
- 	super declareCVarsIn: aCodeGen.
  	aCodeGen var: 'counters' type: #usqInt!



More information about the Vm-dev mailing list