Commit Graph

234 Commits

Author SHA1 Message Date
Fergus Henderson
ae7beb4329 Update a comment.
Estimated hours taken: 0.1

scripts/mc.in:
	Update a comment.
1996-12-14 20:45:38 +00:00
Fergus Henderson
d76c09c48f Switch over to the new arg-convention and type-info representation.
scripts/mgnuc.in:
	Pass -DCOMPACT_ARGS to the C compiler.
1996-12-13 05:52:23 +00:00
Fergus Henderson
0835d8cc4e If double' is the same size as void *', then don't box floats.
Estimated hours taken: 2

If `double' is the same size as `void *', then don't box floats.

scripts/mc.in:
	Pass the configured value of @HAVE_BOXED_FLOATS@ to mercury_compile.
1996-12-13 00:02:23 +00:00
Fergus Henderson
b96891a686 Put @CC@ in quotes, so that it works in the case when someone
Estimated hours taken: 0.25

scripts/mc.in:
scripts/mgnuc.in:
scripts/ml.in:
	Put @CC@ in quotes, so that it works in the case when someone
	does `CC="gcc -some -options" configure'.  Similarly for @MKFIFO@.
1996-12-11 18:02:45 +00:00
Fergus Henderson
6b9a292e7d For gnu-win32, don't strip the executable by default, since
Estimated hours taken: 8 (to find the problem) + 0.25 (to fix it)

scripts/ml.in:
	For gnu-win32, don't strip the executable by default, since
	`gcc -s' seems to be broken on gnu-win32 for Windows NT.
1996-12-09 08:24:49 +00:00
Fergus Henderson
0d695dcd4c Add a new --emacs' (or -e') option, for creating
Estimated hours taken: 1

scripts/mtags:
	Add a new `--emacs' (or `-e') option, for creating
	emacs-style TAGS files.
1996-11-30 11:38:30 +00:00
Fergus Henderson
a3f9969bec Rename scripts/Mmake' as scripts/Mmakefile', to avoid
Estimated hours taken: 0.25

Rename `scripts/Mmake' as `scripts/Mmakefile', to avoid
a conflict with `scripts/mmake' on case-insensitive file
systems, i.e. Windows.  (The `mmake' script checks
for both Mmakefile and Mmake, so it will still find it.)
1996-11-27 06:26:08 +00:00
Fergus Henderson
dbd5a086a5 Add support for "\c" string continuation escapes.
Estimated hours taken: 1.5

scripts/sicstus_conv.in:
	Add support for "\c" string continuation escapes.
1996-11-25 08:54:06 +00:00
Simon Taylor
0460a5f78d Improvements to intermodule optimization and bug fixes.
Estimated hours taken: 2

Improvements to intermodule optimization and bug fixes.

scripts/Mmake.rules
	Stop the output of --make-optimization-interface going to the
	.err file.
1996-11-06 01:38:47 +00:00
Zoltan Somogyi
c2e602535e Use .err instead of .err2 as the file name for error messages.
Estimated hours taken: 0.1

Mmake.rules:
	Use .err instead of .err2 as the file name for error messages.
	Remove the rule for handling .pp files.
1996-11-04 06:30:10 +00:00
Zoltan Somogyi
709ff8e20c Replace --num-real-temps "$NUM_REAL_TEMPS" with --num-real-r-temps
Estimated hours taken: 0.1

mc.in:
	Replace --num-real-temps "$NUM_REAL_TEMPS" with --num-real-r-temps
	"$NUM_REAL_R_TEMPS". Since NUM_REAL_TEMPS is not defined, the old
	code was buggy (why can't sh require declarations of variables? :-)
	We now also use the more correct form of the option name.

	Before this fix, value numbering incorrectly thought that no
	temporary variables were kept in registers, and as a result it
	frequently rejected improved code fragments improperly because,
	due to this bug, its cost model said they they were too expensive.
1996-10-30 06:56:35 +00:00
Fergus Henderson
2a4d7597c7 Uncomment the definition BITS_PER_WORD=@BITS_PER_WORD@;
Estimated hours taken: 0.25

scripts/mc.in:
	Uncomment the definition BITS_PER_WORD=@BITS_PER_WORD@;
	previously this was commented out and replaced with
	BITS_PER_WORD=32 because of bugs elsewhere, but I think
	we've fixed those bugs long ago.
-
1996-10-24 22:45:21 +00:00
Simon Taylor
d3aa462819 Add suffixes, rules and options for .opt and .optdate.
Estimated hours taken: 0.5

scripts/Mmake.rules
scripts/Mmake.vars.in
        Add suffixes, rules and options for .opt and .optdate.

scripts/mercury_update_interface.in
        Work-around for a problem with parallel gmake. mc --make-interface
        was being run twice in a row on the same module. The first call
        mercury_update_interface moves module.int.tmp to module.int,
        then the second can't find module.int.tmp. The work-around is to
        ignore the exit status of the mv.
1996-09-11 08:58:17 +00:00
Fergus Henderson
e1c8643455 Ensure that the rule for `mmake realclean' removes the
Estimated hours taken: 0.5

scripts/Mmake.rules:
	Ensure that the rule for `mmake realclean' removes the
	profiling files.

	Also use `--grade' rather than `-s' (the latter is a bit cryptic).
1996-07-26 15:38:12 +00:00
Fergus Henderson
6f5b59451c Pass -Wno-uninitialized on i?86 targets, to avoid
Estimated hours taken: 0.25

scripts/mgnuc.in:
	Pass -Wno-uninitialized on i?86 targets, to avoid
	lots of spurious warnings about `stack_pointer' possibly
	used before being initialized.
1996-07-24 14:48:14 +00:00
Tyson Dowd
c3cf377058 Add handling of accurate GC grades to the scripts.
Estimated hours taken: 0.25

Add handling of accurate GC grades to the scripts.

scripts/Mmake.rules:
	Add '-s $(GRADE)' to the rule for .m.garb
	Remove obsolete .mod.mod_h rule (we don't use that mechanism anymore).
	Remove .mod_h from .SUFFIXES

scripts/mgnuc.in:
	Add .agc grade for accurate garbage collection.
1996-06-16 05:32:53 +00:00
Simon Taylor
3dad0e05f1 Module qualification of types, insts and modes.
Estimated hours taken: 0.2

Module qualification of types, insts and modes.

Added a new interface file - <module>.int3. This contains the
short interface qualified as much as possible given the information
in the current module.

When producing the .int and .int2 files for a module, the compiler uses
the information in the .int3 files of modules imported in the interface
to fully module qualify all items. The .int2 file is just a fully
qualified version of the .int3 file. The .int3 file cannot be overwritten
by the fully qualified version in the .int2 file because then mmake would
not be able to tell when the interface files that depend on that .int3
file really need updating.


scripts/Mmake.rules
scripts/Mmake.vars
Removed the rule for .int, since this is now in the .d files.
Rules and suffix entry for the .int3 and .date3 files.
1996-06-11 06:31:37 +00:00
Fergus Henderson
3561a9043d Back out Zoltan's change to pass --num-real-r-regs instead
Estimated hours taken: 0.25

scripts/mc.in:
	Back out Zoltan's change to pass --num-real-r-regs instead
	of --num-real-regs, since it prevents bootstrapping.
	We need to wait until the rest of his changes have been
	installed everywhere before recommitting this change.
1996-05-30 09:54:56 +00:00
Zoltan Somogyi
f912c586d2 Rename NUM_REAL_TEMPS to NUM_REAL_R_TEMPS, since we may want to have
Estimated hours taken: 0.1

mc.in:
	Rename NUM_REAL_TEMPS to NUM_REAL_R_TEMPS, since we may want to have
	float temps some day.
1996-05-29 10:59:08 +00:00
Fergus Henderson
d2457986f8 Check for Mmakefile' as an alternative to Mmake'.
Estimated hours taken: 0.25

scripts/mmake.in:
	Check for `Mmakefile' as an alternative to `Mmake'.
	(This change is so I can rename scripts/Mmake as Mmakefile
	to avoid a conflict with scripts/mmake on systems with
	case-insensitive file systems, e.g. Windows 95.)
1996-05-25 03:42:17 +00:00
Simon Taylor
ad1fc50105 Add `Mmake.vars' to the list of targets; without this,
Estimated hours taken: 0.5

scripts/Mmake:
	Add `Mmake.vars' to the list of targets; without this,
	it was not updating Mmake.vars when Mmake.vars.in was changed.
1996-05-21 06:04:17 +00:00
Fergus Henderson
ef170e7949 Avoid code duplication by using the value of CFLAGS_FOR_REGS
Estimated hours taken: 0.25

scripts/mgnuc.in:
	Avoid code duplication by using the value of CFLAGS_FOR_REGS
	and CFLAGS_FOR_GOTOS from configure.in rather than duplicating
	the logic to compute them here.  (There's still a small amount
	of duplication, but that is more difficult to avoid.)
1996-05-19 08:04:09 +00:00
Fergus Henderson
62377e8bf2 Fix a portability problem: ULTRIX's /bin/sh does not understand
Estimated hours taken: 0.5

scripts/{c2init,mnc,mnl,msc,msl}.in:
	Fix a portability problem: ULTRIX's /bin/sh does not understand
	`shift 2', so I've replaced all occurrences of this with
	`shift; shift'.  (Thanks to Jeff Schultz for the bug report.)
1996-05-13 06:12:48 +00:00
Fergus Henderson
d664d48d8d Always pass --bits-per-word 32, since for some reason
Estimated hours taken: 0.1
	Plus lots of debugging time

scripts/mc.in
	Always pass --bits-per-word 32, since for some reason
	--bits-per-word 64 causes the compiler to generate incorrect
	code for lookup switches.
1996-05-05 18:55:10 +00:00
Fergus Henderson
8cb3e1292c Pass the configured value of --bytes-per-word.
Estimated hours taken: 0.25
	(plus 0.75 debugging)

scripts/mc.in:
	Pass the configured value of --bytes-per-word.
	Also fix a missing line for --bits-per-word.
1996-05-03 00:12:12 +00:00
Thomas Conway
97c09ffc3c Pass the number of bits in a word as a configured parameter
Estimated hours taken: 0.1

scripts/mc.in:
	Pass the number of bits in a word as a configured parameter
	to mercury_compile instead of using the default (32). Ports
	to 16 bit achitectures should now work ;-)
1996-05-02 22:16:20 +00:00
Fergus Henderson
cb209bcc4b Remove llds.c from the list of files to fix, since it doesn't
Estimated hours taken: 0.1

scripts/rs6000_hack:
	Remove llds.c from the list of files to fix, since it doesn't
	need to be fixed, and the script barfs if it tries to split 0
	pieces off a file.  (The set of files that need to be fixed
	seems to be sensitive to the compilation options used.)
1996-05-02 18:42:05 +00:00
Fergus Henderson
783c02614e Fix a bug in, and improve the documentation of, my previous
Estimated hours taken: 0.25

scripts/mgnuc.in:
	Fix a bug in, and improve the documentation of, my previous
	change to use `-fPIC' rather than `-fpic' on solaris2 in grade none.
1996-04-27 20:21:50 +00:00
Fergus Henderson
9ccd89be98 On sparc-sun-solaris*, we need to use -fPIC' rather than -fpic'
Estimated hours taken: 0.25

scripts/mgnuc.in:
	On sparc-sun-solaris*, we need to use `-fPIC' rather than `-fpic'
	for grade `none', to avoid overflowing a fixed limit on the number
	of "small pic" references.
1996-04-26 20:08:33 +00:00
Zoltan Somogyi
27068f8d16 Rename BRANCH_DELAY_SLOT to HAVE_DELAY_SLOT.
Estimated hours taken: 0.2

mc.in:
	Rename BRANCH_DELAY_SLOT to HAVE_DELAY_SLOT.
	Set the default optimization level here, not in options.m.
1996-04-24 01:03:30 +00:00
Fergus Henderson
d8b28c7614 Generate tags for functors (constructors).
Estimated hours taken: 1

scripts/mtags:
	Generate tags for functors (constructors).
	Also, generally reorganize the code and document parts of it a
	bit better.  I also added code to warn about duplicate
	definitions, but such warnings are probably just a pain,
	so I turned them off.
1996-04-21 11:50:20 +00:00
Zoltan Somogyi
a5ed3f49c4 Transmit the --num-real-r-regs, --num-real-temps and
Estimated hours taken: 0.2

mc.in:
	Transmit the --num-real-r-regs, --num-real-temps and
	--branch-delay-slot options from autoconfiguration to mercury_compile.
1996-04-20 08:40:13 +00:00
Fergus Henderson
5bb6657116 Change the rules for building `.pic_o' to avoid some problems
Estimated hours taken: 2

scripts/Mmake.rules:
	Change the rules for building `.pic_o' to avoid some problems
	with parallel makes.  In particular, the stuff for removing
	the intermediate `.c' files was causing some trouble.
1996-04-18 01:18:59 +00:00
Fergus Henderson
668b3d6b93 Make sure the work-arounds for gcc 2.6.x bugs are only applied
Estimated hours taken: 0.25

scripts/mgnuc.in:
	Make sure the work-arounds for gcc 2.6.x bugs are only applied
	if we're using gcc 2.6.x.
1996-04-15 10:38:42 +00:00
Fergus Henderson
2cc215064f Handle `:- func' declarations.
Estimated hours taken: 0.25

scripts/mtags:
	Handle `:- func' declarations.
1996-04-15 08:41:35 +00:00
Fergus Henderson
9aa364262c Remove `hlds.c' from the list of big files to split, since
Estimated hours taken: 0.1

scripts/rs6000_hack:
	Remove `hlds.c' from the list of big files to split, since
	we've split hlds.m now anyway.
1996-04-11 17:00:02 +00:00
Fergus Henderson
94a3c99f4d Add a script to work around fixed limits in the RS/6000 object
Estimated hours taken: 1

scripts/rs6000_hack:
	Add a script to work around fixed limits in the RS/6000 object
	file format by chopping up large C files into smaller pieces.
1996-04-11 14:04:28 +00:00
Fergus Henderson
1198573324 Fix a security problem with the use of `chmod +w'.
Estimated hours taken: 0.5

Fix a security problem with the use of `chmod +w'.

{scripts,runtime}/Mmake:
	Use `chmod u+w' rather than `chmod +w' on the installed files,
	since `chmod +w' has the wrong effect with some versions of chmod.
	When configure creates automatically-generated files, we do a
	`chmod -w' on them to make sure that you don't accidentally edit
	the automatically-generated file rather than the source `.in' file.
	However, if the installed copies are write-only, then it causes
	problems when installing a new copy on top of an old one.
	Hence we turn write permission back on again on the installed copies.
	The `chmod +w' command has the right effect on Solaris, OSF/1, and
	SunOS, where it takes into account the umask.  However, on IRIX and
	ULTRIX, `chmod +w' does not take the umask into account, and so
	makes the files world-writable, which is a security problem.
	Hence, we now use `chmod u+w' instead.
1996-04-10 09:26:11 +00:00
Fergus Henderson
b6960ffa39 Add another work-around for a gcc-2.6.3 bug, this time to avoid
Estimated hours taken: 0.25

scripts/mgnuc.in:
	Add another work-around for a gcc-2.6.3 bug, this time to avoid
	a gcc abort when compiling compiler/modules.c with -O2 on the
	alpha.  Note that this bug only seems to be triggered if
	modules.m is compiled with mc -O3 (i.e. with value numbering
	enabled), which is why it wasn't encountered before.
	The problem does not occur with gcc-2.7.2, but we should leave
	the work-around in so that people who only have gcc-2.6.3 can
	install the system.
1996-04-09 16:03:16 +00:00
Fergus Henderson
2e7833b1ea Fix a problem detected by the auto-test script on munta.
Estimated hours taken: 0.25

Fix a problem detected by the auto-test script on munta.

scripts/mgnuc.in:
	The work-around for the gcc-2.6.3 bug on mips in which
	it reports an internal error when compiling `int.c' with -O2,
	where the mgnuc script checks for the name `int.c' and if so
	uses -O1 rather than -O2, did not succeed the library was
	compiled with --split-c-files, because the file on which gcc
	died was now named `int.dir/int_002.c'.  I've fixed the
	mgnuc script to check for `int.dir/int_*.c' as well as `int.c'.
1996-04-09 13:59:42 +00:00
Fergus Henderson
a158626828 Fix some software rot in the rule for creating `.pic_o' files.
Estimated hours taken: 0.1

scripts/Mmake.rules:
	Fix some software rot in the rule for creating `.pic_o' files.
1996-04-06 17:51:14 +00:00
Fergus Henderson
bb7563554d Fix typo that resulted in a spurious warning when using compilers
Estimated hours taken: 0.1

scripts/mgnuc.in:
	Fix typo that resulted in a spurious warning when using compilers
	other than gcc.
1996-03-31 13:37:33 +00:00
David Jeffery
4e08aed48b Mercurial Constraints III (the happy ending)
Estimated hours taken: 1 summer studentship

scripts/ml.in:
	Handle the new set of grades (*.cnstr).
scripts/mgnuc.in:
	Pass -DCONSTRAINTS if the grade is *.cnstr
1996-03-26 16:56:29 +00:00
Fergus Henderson
5310271831 Add a comment saying that changes here may also require
Estimated hours taken: 0.1

scripts/mgnuc.in:
	Add a comment saying that changes here may also require
	changes to compiler/mercury_compile.pp.
1996-03-25 07:17:50 +00:00
Zoltan Somogyi
26aaadbf64 Changes to make mtags create entries for parenthesized names,
Estimated hours taken: 0.1

scripts/mtags:
	Changes to make mtags create entries for parenthesized names,
	as in

	:- type (mode) --> ...
1996-03-23 06:20:12 +00:00
Fergus Henderson
9a03fa9315 In the rule for compiling with --split-c-files, make sure that
Estimated hours taken: 0.1

scripts/Mmake.rules:
	In the rule for compiling with --split-c-files, make sure that
	we remove the old object files before we recompile.  This is
	necessary in case you removed some predicates from the source
	file, in which case there will be fewer object files produced --
	we need to make sure that we don't leave old ones lying around.
1996-03-17 04:52:10 +00:00
Fergus Henderson
16bf987b6c Add new variables MCS and MCSFLAGS, for compiling with --split-c-files.
scripts/{Mmake.vars.in,Mmake.rules} {compiler,library,profiler}/Mmake:
	Add new variables MCS and MCSFLAGS, for compiling with --split-c-files.
1996-03-12 03:09:03 +00:00
Fergus Henderson
57987a0f6b Fix typo in rule for using --split-c-files' (it had --split-files').
Estimated hours taken: 0.1

scripts/Mmake.rules:
	Fix typo in rule for using `--split-c-files' (it had `--split-files').
1996-03-10 01:10:55 +00:00
Fergus Henderson
9716b33379 Add rule for creating %.dir/*.o using `--split-c-files'.
Estimated hours taken: 0.1

scripts/Mmake.rules:
	Add rule for creating %.dir/*.o using `--split-c-files'.
1996-03-05 15:17:44 +00:00
Fergus Henderson
21c2571659 Add `--split-c-files' option to mgnuc, which just passes
Estimated hours taken: 0.25

scripts/mgnuc.in:
	Add `--split-c-files' option to mgnuc, which just passes
	`-DSPLIT_C_FILES' to the C compiler.
1996-03-05 03:39:18 +00:00