[Vm-dev] VM Maker: VMMaker.oscog-EstebanLorenzano.1376.mcz

Henrik Johansen henrik.s.johansen at veloxit.no
Tue Jun 23 11:44:08 UTC 2015


Ugh, instead of restricting the type of VM one can build to specific images, can't the check for where to find the methods to do primitive translation of be decided by what image VMMaker has been loaded into?

Cheers,
Henry

> On 23 Jun 2015, at 9:44 , commits at source.squeak.org wrote:
> 
> 
> Esteban Lorenzano uploaded a new version of VMMaker to project VM Maker:
> http://source.squeak.org/VMMaker/VMMaker.oscog-EstebanLorenzano.1376.mcz
> 
> ==================== Summary ====================
> 
> Name: VMMaker.oscog-EstebanLorenzano.1376
> Author: EstebanLorenzano
> Time: 23 June 2015, 11:43:50.383921 am
> UUID: 96f873b1-3c5f-4b42-aaed-a1a370b8d2af
> Ancestors: VMMaker.oscog-rmacnak.1375
> 
> MiscPrimitivePlugin class>>#translatedPrimitives is slightly different for Pharo. Answering a different version if PharoVM = true.
> 
> =============== Diff against VMMaker.oscog-rmacnak.1375 ===============
> 
> Item was changed:
> + SystemOrganization addCategory: #VMMaker!
> + SystemOrganization addCategory: 'VMMaker-Building'!
> + SystemOrganization addCategory: 'VMMaker-Interpreter'!
> + SystemOrganization addCategory: 'VMMaker-InterpreterSimulation'!
> + SystemOrganization addCategory: 'VMMaker-InterpreterSimulation-Morphic'!
> + SystemOrganization addCategory: 'VMMaker-JIT'!
> + SystemOrganization addCategory: 'VMMaker-JITSimulation'!
> + SystemOrganization addCategory: 'VMMaker-Multithreading'!
> + SystemOrganization addCategory: 'VMMaker-Plugins'!
> + SystemOrganization addCategory: 'VMMaker-Plugins-Alien'!
> + SystemOrganization addCategory: 'VMMaker-Plugins-IOS'!
> + SystemOrganization addCategory: 'VMMaker-PostProcessing'!
> + SystemOrganization addCategory: 'VMMaker-SmartSyntaxPlugins'!
> + SystemOrganization addCategory: 'VMMaker-SpurMemoryManager'!
> + SystemOrganization addCategory: 'VMMaker-SpurMemoryManagerSimulation'!
> + SystemOrganization addCategory: 'VMMaker-Support'!
> + SystemOrganization addCategory: 'VMMaker-Tests'!
> + SystemOrganization addCategory: 'VMMaker-Translation to C'!
> - SystemOrganization addCategory: #'VMMaker-Building'!
> - SystemOrganization addCategory: #'VMMaker-Interpreter'!
> - SystemOrganization addCategory: #'VMMaker-InterpreterSimulation'!
> - SystemOrganization addCategory: #'VMMaker-InterpreterSimulation-Morphic'!
> - SystemOrganization addCategory: #'VMMaker-JIT'!
> - SystemOrganization addCategory: #'VMMaker-JITSimulation'!
> - SystemOrganization addCategory: #'VMMaker-Multithreading'!
> - SystemOrganization addCategory: #'VMMaker-Plugins'!
> - SystemOrganization addCategory: #'VMMaker-Plugins-Alien'!
> - SystemOrganization addCategory: #'VMMaker-Plugins-IOS'!
> - SystemOrganization addCategory: #'VMMaker-PostProcessing'!
> - SystemOrganization addCategory: #'VMMaker-SmartSyntaxPlugins'!
> - SystemOrganization addCategory: #'VMMaker-SpurMemoryManager'!
> - SystemOrganization addCategory: #'VMMaker-SpurMemoryManagerSimulation'!
> - SystemOrganization addCategory: #'VMMaker-Support'!
> - SystemOrganization addCategory: #'VMMaker-Tests'!
> - SystemOrganization addCategory: #'VMMaker-Translation to C'!
> 
> Item was changed:
>  ----- Method: MiscPrimitivePlugin class>>translatedPrimitives (in category 'translation') -----
>  translatedPrimitives
>  	"an assorted list of various primitives"
> + 	PharoVM ifTrue: [ ^ self translatedPrimitivesForPharo ].
>  	^#(
>  		(Bitmap compress:toByteArray:)
>  		(Bitmap decompress:fromByteArray:at:)
>  		(Bitmap encodeBytesOf:in:at:)
>  		(Bitmap encodeInt:in:at:)
>  		(ByteString compare:with:collated:)
>  		(ByteString translate:from:to:table:)	
>  		(ByteString findFirstInString:inSet:startingAt:)
>  		(ByteString indexOfAscii:inString:startingAt:)
>  		(ByteString findSubstring:in:startingAt:matchTable:)
>  		(ByteArray hashBytes:startingWith:)
>  		(SampledSound convert8bitSignedFrom:to16Bit:)
>  	)
> 
>  	"| tps |
>  	'This opens a list browser on all translated primitives in the image'.
>  	 tps := (SystemNavigation default allImplementorsOf: #translatedPrimitives)
>  				inject: Set new
>  				into: [:tp :mr|
>  					tp addAll: (mr actualClass theNonMetaClass translatedPrimitives collect:
>  								[:pair|
>  								MethodReference
>  									class: (((Smalltalk at: pair first) canUnderstand: pair last)
>  												ifTrue: [Smalltalk at: pair first]
>  												ifFalse: [(Smalltalk at: pair first) class])
>  									selector: pair last]);
>  						yourself].
>  	SystemNavigation default browseMessageList: tps asArray sort name: 'Translated Primitives' "!
> 
> Item was added:
> + ----- Method: MiscPrimitivePlugin class>>translatedPrimitivesForPharo (in category 'translation') -----
> + translatedPrimitivesForPharo
> + 	^#(
> + 		(Bitmap compress:toByteArray:)
> + 		(Bitmap decompress:fromByteArray:at:)
> + 		(Bitmap encodeBytesOf:in:at:)
> + 		(Bitmap encodeInt:in:at:)
> + 		(ByteString compare:with:collated:)
> + 		(ByteString translate:from:to:table:)	
> + 		(ByteString findFirstInString:inSet:startingAt:)
> + 		(ByteString indexOfAscii:inString:startingAt:)
> + 		(String findSubstringViaPrimitive:in:startingAt:matchTable:)
> + 		(ByteArray hashBytes:startingWith:)
> + 		(SampledSound convert8bitSignedFrom:to16Bit:)
> + 	)!
> 
> Item was changed:
>  ----- Method: OutOfLineLiteralsManager>>storeObjRef:inClosedPICAt: (in category 'garbage collection') -----
>  storeObjRef: literal inClosedPICAt: address
>  	<var: #address type: #usqInt>
>  	<inline: true>
>  	objectMemory longAt: address put: literal!
> 
> Item was changed:
>  ----- Method: StackInterpreter>>accessModifierOfMethod: (in category 'compiled methods') -----
>  accessModifierOfMethod: methodObj
>  	<option: #NewspeakVM>
>  	^self accessModifierOfMethodHeader: (objectMemory methodHeaderOf: methodObj)!
> 
> Item was changed:
>  ----- Method: TAssignmentNode>>emitCCodeAsExpressionOn:level:generator: (in category 'C code generation') -----
>  emitCCodeAsExpressionOn: aStream level: level generator: aCodeGen
>  	aStream nextPut: $(.
>  	self emitCCodeOn: aStream level: level generator: aCodeGen.
>  	aStream nextPut: $)!
> 
> Item was changed:
>  ----- Method: TParseNode>>emitCCodeAsArgumentOn:level:generator: (in category 'C code generation') -----
>  emitCCodeAsArgumentOn: aStream level: level generator: aCodeGen
>  	^self emitCCodeOn: aStream level: level generator: aCodeGen!
> 
> Item was changed:
>  ----- Method: TParseNode>>emitCCodeAsExpressionOn:level:generator: (in category 'C code generation') -----
>  emitCCodeAsExpressionOn: aStream level: level generator: aCodeGen
>  	^self emitCCodeOn: aStream level: level generator: aCodeGen!
> 
> Item was changed:
>  ----- Method: TSendNode>>emitCCodeAsExpressionOn:level:generator: (in category 'C code generation') -----
>  emitCCodeAsExpressionOn: aStream level: level generator: aCodeGen
>  	^self emitCCodeAsArgumentOn: aStream level: level generator: aCodeGen!
> 



More information about the Vm-dev mailing list