Estimated hours taken: 0.1
bootcheck:
Link a smaller number of modules at a time to the stage2 directories.
This ought to fix the problem with muse's argument vector overflowing.
test_mercury:
Fix a comment.
Estimated hours taken: 0.25
tools/test_mercury:
(Temporarily) add --lookup-switch-req-density 101 to disable
lookup switches, so that Tom's change will bootstrap check.
Estimated hours taken: 2
bootcheck, binary, linear:
Link to absolute, not relative path names, since relative path names
do not work back across symbolic links.
binary, linear:
Allow the user to give an initial list of suspects.
assemble, binary, linear:
Allow negative searches, i.e. searches in which the base version is
the bad version and we want to see which module "fixes" the problem
caused by the other modules, as opposed to normal searches in which
we are looking for the module that introduces the problem.
Estimated hours taken: 0.5
I moved the scripts bootcheck, binary, binary_step, divide and assemble
into the tools subdirectory from the main mercury directory.
I also added the auxiliary scripts appears, cleanint and half.
I modified binary and binary_step to compare stage3 with stage2.ok,
and only pass a stage2 compiler if the comparison finds no differences.
This requires that the Mmake.params files be copied, not linked, from
the top level's Mmake.stage2.params. The old behavior (no comparison)
is still available; just specify -c (compile-only).
Estimated hours taken: 0.1
NEWS:
Mention --inlining.
bootcheck:
If there is a file named Mmake.stage.params in the top-level directory,
copy this to become Mmake.params in the stage[23] directories. This
makes it much easier to have the stage1 compiler compiled with
different optimization levels (or other options) than you want to
use for a bootcheck.
Estimated hours taken: 6
configure.in:
Rename BRANCH_DELAY_SLOT to HAVE_DELAY_SLOT.
bootcheck:
Add a new option, -r. If given, this makes a copy of the runtime
directory instead of linking to it in stage[23]. This allows the
stage[23] versions to use a different grade than stage1.
Another change is that we now remake only the library and compiler
dependencies, but not the profiler dependencies.
binary:
A shell script to find code generation and optimization bugs by
performing binary search. It depends on the existence of two
directories, stage2.ok and stage2.bad, containing correct and buggy
versions of stage2, and tries different mixes of .c code from each
until it locates the offending part of the offending .c file.
Note that this script has so far been tested only in pieces.
binary_step:
Check whether a particular mix of .c files from the ok and bad
directories is able to build a stage3 compiler. It doesn't check
for differences from stage2, since stage2 is a patchwork.
divide:
Divide a .c file into its parts.
assemble:
Assemble a .c file, with the specified parts coming from the .c file
in stage2.bad and the others from stage2.ok.
NOTE: these scripts require some other auxiliary scripts. I will put these
into /usr/local/contrib when it is created on cyclone. In the meantime,
they are in ~zs/bin/script.
Estimated hours taken: 0.1
mercury/bootcheck:
Change it so that it doesn't output some of the less useful but
more verbose trace messages when linking the stage[23] directories.
Estimated hours taken: 0.15
mercury/bootcheck:
Use relative symbolic links, rather than absolute ones.
This avoids overflowing limits on command line lengths on IRIX 5.3.
automatically generated `.c' files lying around. (The aim of this
change is to cut down on disk space usage!)
mercury/bootcheck:
Pass `RM_C=:' to mmake when making the stage2 compiler, so
that the intermediate `.c' files don't get removed.
reason mercury_profiler.dep was getting the wrong contents every time.
Avoid linking *.m.in to the new library directories, since there are
no files matching this pattern there, and sh mishandles filename expansion
in such circumstances.
bootcheck:
Don't use `getopts' since it isn't portable.
Add long versions of all the options.
Add a -h/--help option and improve the help message.
Add new --keep-stage-2 and --keep-stage-3 options.
bootcheck:
Use "$0" rather than "bcheck" in usage message.
Also link library.init into the stage2 & stage3 directories,
since it is used to create mercury_compile_init.c now.
bootcheck:
Only compare the .c files between stage2 and stage3, not the
binaries, so that we can collect a meaningful exit status for
use by the regression test script. Also avoid a little bit of
code duplication.
the Runtime Checking (RTC) feature of dbx(1)".
Mmake:
modifications to visit the new subdirectory util.
Mmake.common:
modification to reflect the new name of the system module io_rt.