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

commits at source.squeak.org commits at source.squeak.org
Thu Mar 16 17:10:54 UTC 2017


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

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

Name: VMMaker.oscog-eem.2158
Author: eem
Time: 16 March 2017, 10:09:01.868556 am
UUID: 6b2d46a5-e210-42d1-bbba-b3211c7d8a55
Ancestors: VMMaker.oscog-eem.2157

Slang:
Fix non-generation of vmCallback.h when interpreter code is unchanged.  Nuke two unused generation methods.

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

Item was removed:
- ----- Method: ObjectMemory class>>additionalHeadersDo: (in category 'translation') -----
- additionalHeadersDo: aBinaryBlock
- 	"Evaluate aBinaryBlock with the names and contents of
- 	 any additional header files that need to be generated."!

Item was removed:
- ----- Method: SpurMemoryManager class>>additionalHeadersDo: (in category 'translation') -----
- additionalHeadersDo: aBinaryBlock
- 	"Evaluate aBinaryBlock with the names and contents of
- 	 any additional header files that need to be generated."!

Item was changed:
  ----- Method: StackInterpreter class>>additionalHeadersDo: (in category 'translation') -----
  additionalHeadersDo: aBinaryBlock
  	"Evaluate aBinaryBlock with the names and contents of
  	 any additional header files that need to be generated."
- 	self objectMemoryClass additionalHeadersDo: aBinaryBlock.
  	aBinaryBlock
  		value: 'vmCallback.h'
  		value: self vmCallbackHeader!

Item was changed:
  ----- Method: VMMaker>>generateInterpreterFile (in category 'generate sources') -----
  generateInterpreterFile
  	"Translate the Smalltalk description of the virtual machine into C.  If 'self doInlining' is true, small method bodies are inlined to reduce procedure call overhead.  On the PPC, this results in a factor of three speedup with only 30% increase in code size.  Subclasses can use specialised versions of CCodeGenerator and interpreterClass."
  
  	| cg vmHeaderContents |
  	cg := [self buildCodeGeneratorForInterpreter]
  			on: Notification
  			do: [:ex|
  				ex tag == #getVMMaker
  					ifTrue: [ex resume: self]
  					ifFalse: [(ex respondsTo: #rearmHandlerDuring:)
  								ifTrue: [ex rearmHandlerDuring: [ex pass]]
  								ifFalse: [ex pass]]].
  	self reinitializeWordSizeFrom: cg.
+ 
+ 	self interpreterClass additionalHeadersDo:
+ 		[:headerName :headerContents| | filePath |
+ 		 filePath := self coreVMDirectory fullNameFor: headerName.
+ 		 (cg needToGenerateHeader: headerName file: filePath contents: headerContents) ifTrue:
+ 			 [cg storeHeaderOnFile: filePath contents: headerContents]].
+ 
  	self needsToRegenerateInterpreterFile ifFalse: [^nil].
  
  	cg inferTypesForImplicitlyTypedVariablesAndMethods.
  
  	self interpreterClass preGenerationHook: cg.
  	vmHeaderContents := cg vmHeaderContentsWithBytesPerWord: self wordSize.
  	(cg needToGenerateHeader: self interpreterHeaderName file: self interpreterHeaderPath contents: vmHeaderContents) ifTrue:
  		[cg storeHeaderOnFile: self interpreterHeaderPath contents: vmHeaderContents].
  	cg storeCodeOnFile: (self sourceFilePathFor: self interpreterClass sourceFileName) doInlining: self doInlining.
- 	self interpreterClass additionalHeadersDo:
- 		[:headerName :headerContents| | filePath |
- 		 filePath := self coreVMDirectory fullNameFor: headerName.
- 		 (cg needToGenerateHeader: headerName file: filePath contents: headerContents) ifTrue:
- 			 [cg storeHeaderOnFile: filePath contents: headerContents]].
  	self interpreterClass apiExportHeaderName ifNotNil:
  		[cg storeAPIExportHeader: self interpreterClass apiExportHeaderName
  			OnFile: (self sourceFilePathFor: self interpreterClass apiExportHeaderName)].
  	self gnuifyInterpreterFile!

Item was changed:
  ----- Method: VMMaker>>generateMainVM (in category 'generate sources') -----
  generateMainVM
  	"Generate the interp (and optionally the cogit), internal plugins and exports.
  	 N.B. generateInterpreterFile *must* precede generateCogitFile so that
  	 the objectMemory and interpreter classes are initialized before the Cogit
  	 code is generated."
  
  	self logDateAndTime;
  		generateInterpreterFile;
  		generateCogitFiles;
- 		processFilesForCoreVM;
  		generateInternalPlugins;
  		generateExportsFile;
  		logDateAndTime!

Item was removed:
- ----- Method: VMMaker>>processFilesForCoreVM (in category 'processing external files') -----
- processFilesForCoreVM
- !



More information about the Vm-dev mailing list