Estimated hours taken: 0.25
profiler/{generate_output.m,prof_debug.m,propagate.m}:
Comment out `:- import_module writeln'.
Move lots of `:- import_module' declarations from the interface
to the implementation sections.
Estimated hours taken: 20
Rewrite of the profiler so that it handles cycles in the call graph more
gracefully.
profiler/propagate.m:
Now we build a map of all the cycles as we do a dfs search on the call
graph. Then we use this data to fill out the prof_info structure in
a meaningful manner.
profiler/prof_info.m:
Divide the prof_info structure into two. We now have seperate
structures for cycles and single predicates.
profiler/*.m:
Minor changes to make sure that we print out the data in the correct
manner.
mercury_profile.m:
If static call graph not available in the .prof files. The profiler
now build's the call graph from the dynamic call graph.
Completed the parent of a predicate output.
debug.m and prof_debug.m
Effective renaming of debug.m, so that you can use a NU-prolog debug
version.