Estimated hours taken: 0.5
profiler/call_graph.m:
profiler/read.m:
extras/trailed_update/var.m:
Fix some "missing interface import" bugs detected by the
latest version of the compiler.
Estimated hours taken: 5
Design change to relation.m to fix a MAJOR shortcoming. Relations
now require the domain to be entered explicitly
fixes a known bug where performing a topological sort in certain
situations resulted in not all elements appearing in the sort.
compiler/call_graph.m:
compiler/process_file.m:
compiler/propagate.m:
Minor changes to use the new relation.m.
Estimated hours taken: 1.5
Undo dylan's changes in the names of some library entities,
by applying the following sed script
s/term_atom/term__atom/g
s/term_string/term__string/g
s/term_integer/term__integer/g
s/term_float/term__float/g
s/term_context/term__context/g
s/term_functor/term__functor/g
s/term_variable/term__variable/g
s/_term__/_term_/g
s/std_util__bool_/bool__/g
to all the `.m' and `.pp' files in the compiler and library directories.
The reason for undoing these changes was to minimize incompatibilities
with 0.4 (and besides, the changes were not a really good idea in the first
place).
I also moved `bool' from std_util.m to a separate module.
The main reason for that change is to ensure that the `__' prefix is
only used when it genuinely represents a module qualifier.
(That's what dylan's changes were trying to acheive, but `term__'
does genuinely represent a module qualifier.)
profiler/*.m:
Where appropriate, add `bool' to the list of imported modules.
mercury_profile.m:
Work-around problem with the "0 1" line in Prof.Counts.
Use library__version/1 to get the version number.
call_graph.m:
Fix bug where `io__seen' was called when it should not have been.
Improve error message if `io__see' fails.
process_file.m:
Handle errors gracefully: write a message to stderr, don't
call error/1.
Mmake:
Pass EXTRA_MLFLAGS to ml.
This is because ml now strips the executable by default,
so you need to pass --no-strip if you want to debug it.
README:
Very basic description of how to enable profiling and view the
results. Please send comment's on the bits you don't understand
and the I should explain better and expand on.
*.m:
Now also generate's the flat profile. Which tells you how much time
you spend in each predicate as a percentage of total time.
Also print's out an alphabetic list of all the predicate's and there
ID numbers.