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

commits at source.squeak.org commits at source.squeak.org
Sat Nov 2 21:40:13 UTC 2013

Eliot Miranda uploaded a new version of VMMaker to project VM Maker:

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

Name: VMMaker.oscog-eem.497
Author: eem
Time: 2 November 2013, 1:59:18.327 pm
UUID: e1a38963-1741-4d75-99ae-af7006087d85
Ancestors: VMMaker.oscog-eem.496

Rescue the translated primitives by adding the missing
removeFinalReturnIn: to statementsFor:varName:

Work-around Slang limitations with the new shouldBeTenured:; mark
it as <inline: false>.

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

Item was changed:
  ----- Method: SpurGenerationScavenger>>shouldBeTenured: (in category 'scavenger') -----
  shouldBeTenured: survivor
  	"Answer if an object should be tenured.  The default policy tenuring policy
  	 is to use the tenuringThreshold to decide. If the survivors (measured in
  	 bytes) are above some fraction of the survivor space then objects below
  	 the threshold (older objects, since allocation grows upwards and hence
  	 new objects are later than old) are scavenged.  Otherwise, the threshold
  	 is set to 0 and no objects are tenured.  e.g. see
  		An adaptive tenuring policy for generation scavengers,
  		David Ungar & Frank Jackson.
  		ACM TOPLAS, Volume 14 Issue 1, Jan. 1992, pp 1 - 27.
  	 The other policies are for special purposes."
+ 	<inline: false> "Slang limitations given this used in (... or: []) ifTrue:"
  		caseOf: {
  			[TenureByAge]	->
  				[survivor < tenureThreshold]. 
  			[TenureByClass] ->
  				[(manager classIndexOf: survivor) = tenuringClassIndex].
  			[DontTenureButDoUnmark]	->
  				[manager setIsMarkedOf: survivor to: false.
  				 false]  }
  		otherwise: [false]!

Item was changed:
  ----- Method: TMethod>>statementsFor:varName: (in category 'primitive compilation') -----
  statementsFor: sourceText varName: varName
  	"Return the parse tree for the given expression. The result is the statements list of the method parsed from the given source text."
  	"Details: Various variables are declared as locals to avoid Undeclared warnings from the parser."
  	| s |
  	s := WriteStream on: ''.
  	s nextPutAll: 'temp'; cr; cr; tab.
  	self printTempsAndVar: varName on: s.
  	s nextPutAll: sourceText.
  	^ ((Compiler new parse: s contents in: Object notifying: nil)
+ 			asTranslationMethodOfClass: self class)
+ 				removeFinalSelfReturnIn: nil;
+ 				statements
- 			asTranslationMethodOfClass: self class) statements

More information about the Vm-dev mailing list