Commit Graph

17 Commits

Author SHA1 Message Date
Zoltan Somogyi
5ba5148f17 Test for the presence of a builtin.o file instead of mercury_builtin.o.
Estimated hours taken: 0.1

tools/binary:
	Test for the presence of a builtin.o file instead of mercury_builtin.o.

	Clarify the documentation a bit.
1998-06-01 06:14:58 +00:00
Zoltan Somogyi
06300a2e22 Disable command echo in some more parts of the script where the
Estimated hours taken: 0.05

tools/binary:
	Disable command echo in some more parts of the script where the
	output is not informative but quite voluminous.
1998-05-01 08:49:56 +00:00
Zoltan Somogyi
32ce8ad740 Update to handle the changes in the development environment
Estimated hours taken: 0.2

tools/binary:
	Update to handle the changes in the development environment
	over the last few months, e.g. the default removal of object
	files from stage 2 directories, and the requirement for
	the presence of the VERSION and library/debugger_interface.h
	files.

	Do not set up the stage 3 directory if it is not required.

	Disable command echo in some parts of the script where the
	output is not informative but quite voluminous.

	Simplify the conditions of some if-then-elses.
1998-05-01 05:36:20 +00:00
Fergus Henderson
3ab044af46 Fix a warning about the rule for making `library/library.init'
clashing with the default rule for creating a `.init' file
in the automatically-generated `library/library.dep' file.
The initialization for the library is different to the
standard automatically-generated initialization, because
the library contains C code that needs explicit initialization.
(because it has BEGIN_MODULE ... END_MODULE macros in it); this
C code hence has `INIT blah' comments in it naming functions that
need to be inserted in the `.init' file so that they will be called
at initialization time.

Mmakefile:
library/Mmakefile:
compiler/Mmakefile:
profiler/Mmakefile:
tools/bootcheck:
tools/linear:
tools/binary:
	s/library.init/libmercury.init/g
1997-07-21 06:26:43 +00:00
Fergus Henderson
45227db22e Fix typo in comment: s/dubdirectory/subdirectory/
Estimated hours taken: 0.01

tools/binary:
	Fix typo in comment: s/dubdirectory/subdirectory/
1997-07-19 14:57:40 +00:00
Zoltan Somogyi
f8874facc1 Add a capability to compare stage3 to stage2.bad, not just to stage.ok,
Estimated hours taken: 1

binary_step:
	Add a capability to compare stage3 to stage2.bad, not just to stage.ok,
	for use when the stage3 compilation uses the Mmake parameters from
	stage2.bad.

	Fix a bug: when cleaning out the stage3 directories, remove not
	just the source and interface files but also the date stamp and
	optimization files.

binary:
	Add a capability to generate stage3 using the Mmake parameters from
	stage2.bad, with success being judged by comparing stage3 to
	stage2.bad.

	Use $RMSTAGECMD to remove the old stage2 if it is defined.
1997-04-08 06:10:47 +00:00
Zoltan Somogyi
1d5b6d0ecd Remove some redundant code.
Estimated hours taken: 0.5

binary:
	Remove some redundant code.

half:
	Use /usr/ucb/echo if it exists, since on such machines (e.g. kryten)
	the standard echo may not recognize -n.
1997-01-26 23:43:59 +00:00
Zoltan Somogyi
52ed13f557 If the environment variable RMSTAGECMD is defined, use it as a prefix
Estimated hours taken: 1.5

binary, bootcheck:
	If the environment variable RMSTAGECMD is defined, use it as a prefix
	on commands to remove stages. This enables those with munkora accounts,
	i.e. me :-) and noone else :-( to execute the rm command on munkora,
	which is faster than removing large numbers of files across NFS.

bootcheck:
	Exit with a non-zero status if the tests directory can't be found.
	This should encourage people to run the tests.

optstages:
	A script to break up the output of mc --debug-opt into several files,
	each containing the output of one optimization stage. This makes it
	easier to run diff and see what has changed.
1997-01-11 07:22:58 +00:00
Zoltan Somogyi
b7f2bb587f Construct a stage3 before starting the search for the bug.
Estimated hours taken: 1

binary:
	Construct a stage3 before starting the search for the bug.
	We used to be able to rely on a stage3 being already present,
	but this reliance has been misplaced since Fergus's modification
	to bootcheck that deletes stage3 on success.

binary_step:
	Impose a limit of 10 CPU-minutes on every process, to catch
	malfunctioning compilers that don't crash but go into infinite loops.
1997-01-10 05:11:43 +00:00
Zoltan Somogyi
c762e51648 Add a option, -d. When used, the successful making of the stage3
Estimated hours taken: 0.5

binary, binary_step:
	Add a option, -d. When used, the successful making of the stage3
	dependencies is taken to indicate the absence of the bug being searched
	for.
1996-12-21 08:24:10 +00:00
Zoltan Somogyi
a9a3814123 Users of the "binary" script so far could choose between testing the
Estimated hours taken: 1

Users of the "binary" script so far could choose between testing the
correctness of the cobbled-together stage2 compiler by attempting to
create a stage3 compiler, or by running all the tests in some directories.

This change adds a third alternative: checking whether a command executes
successfully. This is useful if the symptom of failure of the stage2
compiler is that it aborts when compiling some file.
1996-11-06 06:00:47 +00:00
Zoltan Somogyi
7a3f8d3a1c Link to absolute, not relative path names, since relative path names
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.
1996-05-29 11:00:24 +00:00
Zoltan Somogyi
b221d25b52 <overview or general description of changes>
Estimated hours taken: 1

<overview or general description of changes>

<directory>/<file>:
	<detailed description of changes>
1996-05-13 05:10:23 +00:00
Zoltan Somogyi
4f3bf86a00 I moved the scripts bootcheck, binary, binary_step, divide and assemble
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).
1996-05-12 04:39:01 +00:00
Zoltan Somogyi
4375a108e2 Fix problems with spaces in the values of variables,
Estimated hours taken: 0.1

binary:
	Fix problems with spaces in the values of variables,
	by removing the spaces.
1996-04-26 06:25:27 +00:00
Zoltan Somogyi
0d6497f527 Fix missing quote bug.
Estimated hours taken: 0.1

binary:
	Fix missing quote bug.
1996-04-26 02:15:40 +00:00
Zoltan Somogyi
ea788e0453 Rename BRANCH_DELAY_SLOT to HAVE_DELAY_SLOT.
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.
1996-04-24 00:58:09 +00:00