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

commits at source.squeak.org commits at source.squeak.org
Wed Mar 6 18:42:14 UTC 2019


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

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

Name: VMMaker.oscog-eem.2526
Author: eem
Time: 6 March 2019, 10:42:00.510725 am
UUID: 3816c000-cb74-427f-9c89-ee2509a89266
Ancestors: VMMaker.oscog-eem.2525

Force default initialization of VM options before generating VM plugins.

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

Item was changed:
  ----- Method: VMMaker class>>makerFor:and:with:to:platformDir: (in category 'instance creation') -----
  makerFor: interpreterClass and: cogitClassOrNil with: optionsPairsArrayArg to: srcDirName platformDir: platDirName
  	"Initialize a VMMaker to generate the VM to the given target directory."
  	| optionsPairsArray |
  	optionsPairsArray := (cogitClassOrNil isNil or: [optionsPairsArrayArg includes: #Cogit])
  							ifTrue: [optionsPairsArrayArg]
  							ifFalse: [optionsPairsArrayArg, { #Cogit. cogitClassOrNil name }].
+ 	VMClass initializeWithOptions: optionsPairsArray.
  	^(self forPlatform: 'Cross')
  		sourceDirectoryName: (self fullNameForPath: srcDirName);
  		platformRootDirectoryName: (self fullNameForPath: platDirName);
  		options: optionsPairsArray;
  		interpreterClass: interpreterClass;
  		yourself!

Item was changed:
  ----- Method: VMMaker>>generateExternalPlugin: (in category 'generate sources') -----
  generateExternalPlugin: pluginName 
  	"generate the named external plugin"
  	| exports plugin |
  
  	"Refuse to translate this plugin if it requires platform specific files and they are not present."
  	[plugin := self validateExternalPlugin: pluginName]
  		on: VMMakerException
  		do: [:ex|
  			logger show: 'external plugin ' , plugin name , ' failed to validate: ' , ex messageText; cr.
  			^self].
  
+ 	VMClass initializeWithOptions: #().
  	[exports := plugin
  					translateInDirectory: (self externalPluginsDirectoryFor: plugin)
  					doInlining: inline]
  		on:  ProvideAnswerNotification
  		do: [:ex|
  			ex tag == #logger
  				ifTrue: [ex resume: logger]
  				ifFalse: [ex pass]].
  	exports ifNotNil: "if exp is nil we skip this since the plugin was already up to date"
  		[logger show: 'external plugin ' , plugin name , ' generated as ' , plugin moduleName; cr.
  		 self export: exports forExternalPlugin: plugin.
  		 self processFilesForExternalPlugin: plugin]!



More information about the Vm-dev mailing list