[Vm-dev] VM Maker: CogTools-eem.92.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Dec 24 21:00:48 UTC 2021


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

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

Name: CogTools-eem.92
Author: eem
Time: 24 December 2021, 1:00:46.796409 pm
UUID: 34c4fb6f-7b3a-42fe-bfb8-7a0a1cb8f77e
Ancestors: CogTools-eem.91

Make VMProfiler cope with full blocks.

=============== Diff against CogTools-eem.91 ===============

Item was changed:
  ----- Method: VMProfilerSymbolsManager>>computeCogCodeModule: (in category 'Cog compiled code') -----
  computeCogCodeModule: cogCodeConstituents
  	| symbols |
  	(cogModule := VMPExecutableModuleSymbol new)
  		name: vmModule shortName, '.', cogCodeConstituents first;
  		shortName: cogCodeConstituents first;
  		vmshift: 0;
  		address: cogCodeConstituents second;
  		size: cogCodeConstituents last - cogCodeConstituents second.
  	symbols := (3 to: cogCodeConstituents size - 2 by: 2) collect:
+ 					[:i| "Declare methods as public; full blocks, PICs and entries as private"
- 					[:i| "Declare methods as public; PICs and entries as private"
  					| thing |
  					((thing := cogCodeConstituents at: i) isCompiledMethod
  						ifTrue: [VMPPublicFunctionSymbol]
  						ifFalse: [VMPPrivateFunctionSymbol]) new
  							name: (self nameOf: thing cogCodeModule: cogCodeConstituents);
  							address: (self extractAddress: (cogCodeConstituents at: i + 1));
  							cm: thing ;
  							mcpcbcpcmap: (cogCodeConstituents at: i + 1);
  							limit: (self extractAddress: (cogCodeConstituents at: i + 3 ifAbsent: [cogCodeConstituents last]))].
  	self addCogModuleSymbols: symbols!

Item was changed:
  ----- Method: VMProfilerSymbolsManager>>nameOf:cogCodeModule: (in category 'Constituents naming') -----
  nameOf: thing cogCodeModule: cogCodeConstituents
  
+ 	thing isCompiledCode ifTrue:
+ 		[thing isCompiledMethod ifTrue: [ ^ thing methodClass name , '>>' , thing selector ].
+ 		 thing isCompiledBlock ifTrue: [ ^ '[] in ', (self nameOf: thing outerCode cogCodeModule: cogCodeConstituents) ]].
+ 	thing class == cogCodeConstituents first class ifTrue: [ ^thing ]. "i.e. a string"		
+  	^thing isArray
- 	thing isCompiledMethod ifTrue: [ ^ thing methodClass name , '>>' , thing selector ].
- 	thing class == cogCodeConstituents first class ifTrue: [ ^thing ].				
-  	^ thing isArray  
  		ifTrue: [self getClosedPICLabel: (self analyzeClosedPIC: thing)]
+ 		ifFalse: ['OpenPIC ', (thing isString
- 		ifFalse: ['OpenPIC ',(thing isString
  										ifTrue: [ thing ]
+ 										ifFalse: [ thing printString ])]!
- 										ifFalse: [ thing printString ])] !



More information about the Vm-dev mailing list