[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