Branches: main, 10.04
configure.in:
Add configure option `--enable-ssdebug-grades' that appends
hlc.gc.ssdebug and java.ssdebug to LIBGRADES if hlc.gc or java grades
are also present.
.INSTALL.in:
README.ssdebug:
Mention the option.
Branches: main, 10.04
More documentation updates.
.INSTALL.in:
The minimum version of GCC that we support is 3.4.
GCC, make and readline are included with Mac OS X as well.
Fix a double up word.
.README.in:
README.Linux covers the x86_64 port as well.
Support for Mac OS X includes Intel systems.
Delete the old list of mirrors.
s/cs.mu.oz.au/csse.unimelb.edu.au/
.INSTALL.in:
Convert tabs to spaces.
Delete references to --split-c-files.
Update the ``Finetuning'' section to include more recently
added configure options, in particular those for enabling
the Java and Erlang grades.
Estimated hours taken: 2
Branches: main
Change how the configure script treats the `--enable-deep-profiler' option.
By default, deep profiling is enabled if the system can support it, whether
`/usr/lib/cgi-bin' or `/Library/WebServer/CGI-Executables' exists or not.
The installation of `mdprof' to the CGI directory is already silently ignored,
and `mdprof' is also installed into the usual Mercury bin directory anyway.
If the user explicitly passes `--enable-deep-profiler' but without a directory
argument, then behave as in the default case but abort if the system can't
support deep profiling.
If the user passes an explicit directory `--enable-deep-profiler=<dir>' then
configure will check if <dir> exists.
configure.in:
As above.
.INSTALL.in:
Don't refer to `/usr/lib/cgi-bin'.
Mention that mdprof is also available in the Mercury bin directory.
Don't say that by default the deep profiler will be disabled if the
CGI directory doesn't exist.
doc/user_guide.texi:
Don't refer to `/usr/lib/cgi-bin'.
Estimated hours taken: 0.1
Branches: main
Fix some out-of-date documentation reported by Ulf Martin.
.INSTALL.in:
The build and install processes no longer automatically output
log files, so don't mention them here.
We also no longer output configure.log (since doing so caused
problems with newer versions of autoconf).
Update the list of architectures that support global registers
to include x86_64.
doc/reference_manual.texi:
Fix the order of the arguments of list.filter/3.
.INSTALL.in:
Mmakefile:
bindist/bindist.Makefile.in:
Use add-to-list and remove unnecessary calls to expand-file-name.
doc/mercury.info.in:
Make the menu work with Emac's info viewer.
Estimated hours taken: 0.5
Branches: main, release
configure.in:
Abort if the install prefix contains a space.
mgnuc, ml, etc. don't handle filenames containing
spaces correctly.
.INSTALL.in:
Document the above.
Improve the documentation about which version of GCC
is required.
Estimated hours taken: 0.25
Branches: main
configure.in:
Add an option `--disable-dotnet-grades' which
disables installation of the .ilc grade even if
ilasm is found.
.INSTALL.in:
Document the new option.
tools/test_mercury:
Pass `--disable-dotnet-grades' to configure on mars.
Portable .NET is installed on mars, and the test
in configure.in for ilasm doesn't check whether
the ilasm found will work with Mercury.
Estimated hours taken: 8
Add options to configure that allow the user to specify the set of library
grades to be installed more precisely.
configure.in:
Add an option --enable-libgrade=<gradelist> that specifies
the list of library grades precisely.
Add an option, --disable-most-grades, that reduces the installed
grades to a "minimum" level for developers (asm_fast.gc,
asm_fast.gc.debug.tr and hlc.gc), since this is useful to minimize
installation time e.g. when installing a release of the day on a
laptop.
Add an option, --disable-nogc-grades, that prevents the installation
of grades without garbage collection.
Add an option, --disable-prof-grades, that prevents the installation
of profiling grades.
Add an option, --disable-trail-grades, that prevents the installation
of trailing grades.
Add an option, --disable-pair-grades, that prevents the installation
of thread-safe grades.
.INSTALL.in:
Mention the new configure options, as well as some previously
undocumented old ones.
scripts/canonical_grade.in:
A new script to be used by configure.in. Its jobs is to print the
canonical version of a grade string.
scripts/canonical_grade.sh-subr:
A new sh subroutine, containing code previously from ml.in that is
now also needed by canonical_grade.in.
scripts/ml.in:
Move code from here to canonical_grade.sh-subr.
Mmakefile:
Include scripts/canonical_grade in tar files, since configure.in
needs it.
bindist/Mmakefile:
Include scripts/canonical_grade in binary distributions, since
configure.in needs it.
Estimated hours taken: 0.1
.INSTALL.in:
Added explanatory comment concerning the behaviour
of --prefix in configure and a note about setting
the PATH env-var correctly when installing a new
version of the compiler while you already have
another installed.
Index: .INSTALL.in
===================================================================
RCS file: /home/mercury1/repository/mercury/.INSTALL.in,v
retrieving revision 1.5
diff -u -r1.5 .INSTALL.in
--- .INSTALL.in 1999/03/30 05:45:16 1.5
+++ .INSTALL.in 2000/09/08 09:12:54
@@ -23,6 +23,12 @@
# If you want the files to be installed someplace else,
# use the `--prefix <directory>' option to `configure'.
#
+# NOTE: If you use the `--prefix' option to configure,
+# be aware that `mercury' is not automatically
+# appended. That is, `--prefix=/usr/local' will put
+# files in /usr/local/bin, /usr/local/lib et cetera,
+# *not* /usr/local/mercury/bin, /usr/local/mercury/lib.
+#
# The output from this stage will be automatically saved in the
# file `configure.log'. Some debugging output is also saved to
# the file `config.log'.
@@ -32,6 +38,14 @@
#
# The output from this stage will be automatically saved in the
# file `make.log'.
+#
+# NOTE: If you have problems installing a new version
+# of the compiler, you may find it helpful to either
+# completely remove any existing versions of the
+# compiler reachable on your PATH or, less drastically,
+# alter your PATH variable so that any existing version
+# of the mercury compiler is not accessible for the
+# purposes of installing the new version.
#
# Step 3. Run `make install'.
# This step will also take a long time.
Estimated hours taken: 16
Add GNU readline support to the debugger.
Because GNU readline is licensed under the GPL, not the LGPL,
I was careful to ensure that (1) the readline library is
only linked into your application if it is compiled with
debugging enabled and (2) even in the latter case, the readline
support is disable-able (if you use the source distribution).
Mmakefile:
bindist/Mmakefile:
Add dependency of configure on new file aclocal.m4.
aclocal.m4:
Define a macro MERCURY_CHECK_READLINE to check for the readline
headers, the readline library, and for libraries needed by readline,
in particular -l{termcap,curses,ncurses}.
If they're not found, define MR_NO_USE_READLINE.
Otherwise, define various variables for using & installing readline.
bindist/bindist.configure.in:
configure.in:
Add call to MERCURY_CHECK_READLINE to check for readline.
scripts/ml.in:
If tracing is enabled, then (by default) link in readline,
and hence also termcap/curses/ncurses.
Add a new option `--no-readline' to disable this.
trace/mercury_trace_internal.c:
Delete the FILE * parameter from the MR_getline() function,
because there are actually two files involved (MR_mdb_in and
MR_mdb_out), and they are always the same for all calls to this
function.
Also change this function so that it calls MR_trace_readline() rather
than printing the prompt and then calling MR_trace_getline_raw().
Delete the MR_trace_getline_raw() function -- this has been renamed
as MR_trace_readline_raw() and moved to mercury_trace_readline.c.
trace/mercury_trace_readline.h:
trace/mercury_trace_readline.c:
New module containing a new function MR_trace_readline() that prints
a prompt and reads a line in by calling the readline library.
I put all this new code inside `#ifndef MR_NO_USE_READLINE' so that
the use of readline can be disabled. If that symbol is defined,
it reverts to the old implementation using MR_trace_readline_raw()
(formerly called MR_trace_getline_raw()).
runtime/mercury_conf.h.in:
Define the new configuration parameter `MR_NO_USE_READLINE'.
trace/Mmakefile:
Add the new files mercury_trace_readline.[ch].
Ensure that this new module is compiled with warnings disabled,
to avoid spurious warnings resulting from the readline header files.
Also simplify the code by deleting unnecessary uses of $(EXTRA_*) --
that's handled by scripts/Mmake.vars now.
NEWS:
Mention the readline support.
.INSTALL.in:
Mention that it is helpful to have GNU Readline installed.
bindist/bindist.INSTALL:
Mention that you may need to have GNU Readline installed.
Estimated hours taken: 16
Add support for debugging Mercury code using mdb to "Gud",
the Emacs "Grand Unified Debugger". This lets you run mdb
under emacs, using the tags file provided by `mtags --emacs'
for source code linking.
scripts/gud.el:
Add support for Mercury.
Mmake.common.in:
scripts/Mmakefile:
bindist/Mmakefile:
bindist/bindist.Makefile.in:
Modify the installation scripts to install gud.el in
.../lib/mercury/elisp.
.INSTALL.in:
bindist/bindist.INSTALL:
Document what you need to add to your ~/.emacs file to
use the Emacs mdb interface.