The goal of this project is to provide call graph builders for Famix models.
For now we only support the CHA call graph algorithm for Java language, but this is planed to evolve.
To install the project in your Pharo image execute:
Metacello new
githubUser: 'moosetechnology' project: 'Famix-CallGraphs' commitish: 'main' path: 'src';
baseline: 'FamixCallGraphs';
loadTo add it to your baseline:
spec
baseline: 'FamixCallGraphs'
with: [ spec repository: 'github://moosetechnology/Famix-CallGraphs:main/src' ]You can launch a CHA call graph building this way:
(FamixJavaCHABuilder entryPoints: (model allMethods select: [ :method | method name = 'main' ])) buildOr, using the moose name of the entity:
(FamixJavaCHABuilder entryPoint: (tagcollections31 entityNamed: #'org.apache.commons.collections.map.HashedMap.readObject(ObjectInputStream)')) build.Some caches are created during the building. If you wish to save space, you can flush them executing:
model resetCallGraphCachesYou can find more documentation here: documentation