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

commits at source.squeak.org commits at source.squeak.org
Tue Feb 4 18:10:48 UTC 2014


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

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

Name: VMMaker.oscog-eem.603
Author: eem
Time: 4 February 2014, 10:07:52.921 am
UUID: c1e131ed-4f5d-41fc-828a-f200c54a83b8
Ancestors: VMMaker.oscog-eem.602

and fix a snafu in the buildCodeGeneratorForCogit: refactoring.

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

Item was added:
+ ----- Method: VMMaker class>>generateAllSpurConfigurations (in category 'configurations') -----
+ generateAllSpurConfigurations
+ 	self generateNewspeakSpurCogVM;
+ 		generateNewspeakSpurStackVM;
+ 		generateSqueakSpurCogVM;
+ 		generateSqueakSpurStackVM!

Item was changed:
  ----- Method: VMMaker>>buildCodeGeneratorForCogit:includeAPIMethods:initializeClasses: (in category 'generate sources') -----
  buildCodeGeneratorForCogit: cogitClass includeAPIMethods: getAPIMethods initializeClasses: initializeClasses
  	"Answer the code generator for translating the cogit."
  
  	| cg aClass cogitClasses apicg |
  	cg := self createCogitCodeGenerator.
  
  	cg vmClass: cogitClass.
  	initializeClasses ifTrue:
  		[{ cogitClass. self interpreterClass. self interpreterClass objectMemoryClass } do:
  			[:cgc|
  			(cgc respondsTo: #initializeWithOptions:)
  				ifTrue: [cgc initializeWithOptions: optionsDictionary]
  				ifFalse: [cgc initialize]]].
  
  	cogitClasses := OrderedCollection new.
  	aClass := cogitClass.
  	[cogitClasses addFirst: aClass.
  	 aClass ~~ Cogit
  	 and: [aClass inheritsFrom: Cogit]] whileTrue:
+ 		[aClass := aClass superclass].
- 		[aClass := cogitClass superclass].
  	cogitClasses addFirst: VMClass.
  	cogitClasses addAllLast: ((cogitClass ancilliaryClasses: optionsDictionary) reject: [:class| class isStructClass]).
  	cogitClasses do: [:cgc| cg addClass: cgc].
  	cg addStructClasses: (cg structClassesForTranslationClasses: cogitClasses).
  
  	getAPIMethods ifTrue:
  		[apicg := self
  					buildCodeGeneratorForInterpreter: self interpreterClass
  					includeAPIMethods: false
  					initializeClasses: false.
  		 cg apiMethods: apicg selectAPIMethods].
  
  	^cg!



More information about the Vm-dev mailing list