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

commits at source.squeak.org commits at source.squeak.org
Fri Nov 13 23:12:20 UTC 2015


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

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

Name: VMMaker.oscog-eem.1519
Author: eem
Time: 13 November 2015, 3:10:38.531 pm
UUID: a683baa2-76fe-4d7e-9727-4966635a51cd
Ancestors: VMMaker.oscog-eem.1518

Ugh, global variables :-(.  Deal with the fact that BytesPerWord need to be set when generating surrogate accessors.

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

Item was changed:
  ----- Method: VMStructType class>>checkGenerateSurrogate:bytesPerWord: (in category 'code generation') -----
  checkGenerateSurrogate: surrogateClass bytesPerWord: bytesPerWord
  	"Check the accessor methods for the fields of the receiver and if necessary install new
  	 or updated versions in the surrogate class alpng with the alignedByteSize class method."
  
  	"CogBlockMethod checkGenerateSurrogate: CogBlockMethodSurrogate32 bytesPerWord: 4.
  	 CogMethod checkGenerateSurrogate: CogMethodSurrogate32 bytesPerWord: 4.
  	 CogBlockMethod checkGenerateSurrogate: CogBlockMethodSurrogate64 bytesPerWord: 8.
  	 CogMethod checkGenerateSurrogate: CogMethodSurrogate64 bytesPerWord: 8"
+ 	| accessors oldBytesPerWord |
+ 	oldBytesPerWord := BytesPerWord.
+ 	accessors := [self fieldAccessorSourceFor: surrogateClass bytesPerWord: (BytesPerWord := bytesPerWord)]
+ 					ensure: [BytesPerWord := oldBytesPerWord].
- 	| accessors |
- 	accessors := self fieldAccessorSourceFor: surrogateClass bytesPerWord: bytesPerWord.
  	accessors keysAndValuesDo:
  		[:mr :source|
  		source ~= mr sourceString ifTrue:
  			[mr actualClass compile: source classified: #accessing]]
  
  	"Dictionary withAll: ((self fieldAccessorSourceFor: surrogateClass bytesPerWord: bytesPerWord) associationsSelect:
  		[:a| a value ~= a key sourceString])"!



More information about the Vm-dev mailing list