[abc] pass dependencies graph

From: Oege de Moor <Oege.de.Moor@comlab.ox.ac.uk>
Date: Mon Sep 06 2004 - 20:26:57 BST

It would be nice to have the overview graph without the
transitively implied edges (so it is a little less cluttered),
but with boxes that indicate the three main components of abc:

   - Semantic Analysis: which does semantic checking only (obviously
     minus the exception checker and type-checking of advice
     applications):
     current polyglot box without
        castinsertion save_ast,
        aspect_reflection*, mangle*, aspectmethods, clean members

   - AspectInfo: everything that connects the Semantic Analysis to
     the advice weaver, so cast_insertion, aspect_refl* mangle*,
     aspect_methods, harvestaspectinfo, cleanmembers collectjimplify, ...
     GenerateAspectMethods. This should have a j2j subbox for those
     passes that are just j2j, and unaltered for abc.

   - Advice weaver: ComputeAdviceLists...WeaveAroundAdviceExec;
     It's debatable, but probably CheckExceptions goes here as well,
     as the exception softening really is advice weaving, so it
     falls into the same category as typechecking advice applications.

Then for each of these boxes, we should show the detailed
immediate dependencies in separate graphs, with the connected
passes just outside each box. It might be nice to annotate each
edge with an attribute that explains it.

The existing polyglot box indicates the implementation technology,
but not the conceptual structure: a substantial part is really dedicated
to setting up the AspectInfo and j2j stuff.
-----------------

some missing edges:

DeclareParentsWeaver -> BuildAspectHierarchy

EvaluatePatternsAThirdTime -> ComputeAdviceLists

a wrong edge:

Init_classes -> Parse

I think this should be replaced by

Init_classes -> build_hierarchy

but probably also some others.
Received on Mon Sep 6 20:27:01 2004

This archive was generated by hypermail 2.1.8 : Mon Sep 06 2004 - 23:20:02 BST