[m-dev.] for review: higher-order write_graph
Peter Ross
peter.ross at miscrit.be
Wed Feb 28 03:50:46 AEDT 2001
On Wed, Feb 28, 2001 at 03:40:14AM +1100, Fergus Henderson wrote:
> On 27-Feb-2001, Peter Ross <peter.ross at miscrit.be> wrote:
> >
> > Move changes from reuse branch onto the main branch.
> > These changes were introduced on the reuse branch so that we could
> > produce dot files which showed which predicates were calling reuse
> > versions, and hence easily determine where reuse was being lost.
> >
> > compiler/dependency_graph.m:
> > Add two new predicates write_graph and write_graph_nodes, which take
> > higher order arguments which determine what to write for a node and
> > edge in the graph.
> > Change write_dependency_graph and write_prof_dependency_graph to use
> > the new higher order predicates.
>
> Those bits are fine.
>
> > Change build_dependency_graph so that it optionally also includes
> > arcs to imported procedures.
>
> That bit is problematic because it breaks the meaning of
> ensure_dependency_info. Previously there was only one kind of
> dependency graph, and it was either valid or not, so
> ensure_dependency_info just needs to (re)make it if it is not valid.
> With your change, there are two kinds; probably the interface to
> ensure_dependency_info should change to indicate which kind of
> dependency info the caller wants, and if the currently stored one is
> not the right kind, ensure_dependency_info should recalculate it.
>
The one calculated in the ensure_dependency_graph will always be the one
which doesn't include imported procedures (the original behaviour), for
the moment I will just change the documentation to reflect this.
> > Index: compiler/dependency_graph.m
> > +++ compiler/dependency_graph.m 2001/02/27 16:11:14
> >
> > + % Build the dependency graph, if the bool is yes then
> > + % imported_procedures aren't included in the dependency graph,
> > + % otherwise they are.
> > +:- pred dependency_graph__build_dependency_graph(module_info, bool,
> > + dependency_info).
> > +:- mode dependency_graph__build_dependency_graph(in, in, out) is det.
>
> It's confusing for the boolean to be yes if the imported procedures
> *aren't* included. I think it would be clearer to invert the sense
> of that argument.
>
Ok will change.
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to: mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions: mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------
More information about the developers
mailing list