[Vm-dev] VM Maker: VMMaker.oscog-topa.1910.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Jul 25 15:46:14 UTC 2016


Tobias Pape uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-topa.1910.mcz

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

Name: VMMaker.oscog-topa.1910
Author: topa
Time: 25 July 2016, 5:44:48.328562 pm
UUID: d582738f-7126-49ca-9679-36e6995e6f2d
Ancestors: VMMaker.oscog-topa.1909

MSVC has a problem with the macro-expansion trickery involving asseert (vis ||), GIV and macro indirections. Using the getter (And the translated code from that) works fine, tho.

=============== Diff against VMMaker.oscog-topa.1909 ===============

Item was changed:
  ----- Method: SpurGenerationScavenger>>newSpaceStart:newSpaceBytes:edenBytes: (in category 'initialization') -----
  newSpaceStart: startAddress newSpaceBytes: totalBytes edenBytes: requestedEdenBytes 
  	| actualEdenBytes survivorBytes |
  
  	actualEdenBytes := requestedEdenBytes.
  	survivorBytes := totalBytes - actualEdenBytes // 2 truncateTo: manager allocationUnit.
  	actualEdenBytes := totalBytes - survivorBytes - survivorBytes truncateTo: manager allocationUnit.
  	self assert: totalBytes - actualEdenBytes - survivorBytes - survivorBytes < manager allocationUnit.
  
  	"for tenuring we require older objects below younger objects.  since allocation
  	 grows up this means that the survivor spaces must precede eden."
  
  	pastSpace start: startAddress; limit: startAddress + survivorBytes.
  	futureSpace start: pastSpace limit; limit: pastSpace limit + survivorBytes.
  	eden start: futureSpace limit; limit: futureSpace limit + actualEdenBytes.
  
+ 	self assert: self futureSpace limit <= (startAddress + totalBytes).
+ 	self assert: self eden start \\ manager allocationUnit
+ 				+ (self eden limit \\ manager allocationUnit) = 0.
+ 	self assert: self pastSpace start \\ manager allocationUnit
+ 				+ (self pastSpace limit \\ manager allocationUnit) = 0.
+ 	self assert: self futureSpace start \\ manager allocationUnit
+ 				+ (self futureSpace limit \\ manager allocationUnit) = 0.
- 	self assert: futureSpace limit <= (startAddress + totalBytes).
- 	self assert: eden start \\ manager allocationUnit
- 				+ (eden limit \\ manager allocationUnit) = 0.
- 	self assert: pastSpace start \\ manager allocationUnit
- 				+ (pastSpace limit \\ manager allocationUnit) = 0.
- 	self assert: futureSpace start \\ manager allocationUnit
- 				+ (futureSpace limit \\ manager allocationUnit) = 0.
  
  	self initFutureSpaceStart.
  	manager initSpaceForAllocationCheck: (self addressOf: eden) limit: eden limit.
  
  	tenuringProportion := 0.9!



More information about the Vm-dev mailing list