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