summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeri Harris <keri@gentoo.org>2006-12-04 08:43:45 +0000
committerKeri Harris <keri@gentoo.org>2006-12-04 08:43:45 +0000
commit4718dd03889d9885ea754c3cca5f1b3a6978dee9 (patch)
tree53fd425c7679e1fc63e99ec46d8a7fa30c28180c /dev-lang/mercury/files
parentstable x86, bug #156872 (diff)
downloadhistorical-4718dd03889d9885ea754c3cca5f1b3a6978dee9.tar.gz
historical-4718dd03889d9885ea754c3cca5f1b3a6978dee9.tar.bz2
historical-4718dd03889d9885ea754c3cca5f1b3a6978dee9.zip
Version bump.
Package-Manager: portage-2.1.2_rc2-r3
Diffstat (limited to 'dev-lang/mercury/files')
-rw-r--r--dev-lang/mercury/files/digest-mercury-0.13.16
-rw-r--r--dev-lang/mercury/files/mercury-0.13.1-CFLAGS.patch31
-rw-r--r--dev-lang/mercury/files/mercury-0.13.1-LIBDIR.patch55
-rw-r--r--dev-lang/mercury/files/mercury-0.13.1-MAKEOPTS.patch19
-rw-r--r--dev-lang/mercury/files/mercury-0.13.1-bootstrap.patch60
-rw-r--r--dev-lang/mercury/files/mercury-0.13.1-deep_profiler.patch75
-rw-r--r--dev-lang/mercury/files/mercury-0.13.1-docs.patch20
-rw-r--r--dev-lang/mercury/files/mercury-0.13.1-libgrades.patch375
-rw-r--r--dev-lang/mercury/files/mercury-0.13.1-parallel-install_grades.patch14
-rw-r--r--dev-lang/mercury/files/mercury-0.13.1-portage.patch91
-rw-r--r--dev-lang/mercury/files/mercury-0.13.1-tests.patch526
11 files changed, 1272 insertions, 0 deletions
diff --git a/dev-lang/mercury/files/digest-mercury-0.13.1 b/dev-lang/mercury/files/digest-mercury-0.13.1
new file mode 100644
index 000000000000..598991491831
--- /dev/null
+++ b/dev-lang/mercury/files/digest-mercury-0.13.1
@@ -0,0 +1,6 @@
+MD5 f75f2241a974792d30c18c4325c763d0 mercury-compiler-0.13.1.tar.gz 15938824
+RMD160 a0a80cd2ac7393cf084b79d40230bd1efe795c5f mercury-compiler-0.13.1.tar.gz 15938824
+SHA256 b1f4984e00ad917824d3340dcf2a41bede39fe02ef2e516351467f4761985196 mercury-compiler-0.13.1.tar.gz 15938824
+MD5 1a238a79a6c8734775bb216c252806d9 mercury-tests-0.13.1.tar.gz 986644
+RMD160 779609ba5c985e562b0962434c9281c07ddaa5cb mercury-tests-0.13.1.tar.gz 986644
+SHA256 f6c8250b9996584d3c7cd6cc0609716027b127e54b2aedf5ebfcab98a44159dc mercury-tests-0.13.1.tar.gz 986644
diff --git a/dev-lang/mercury/files/mercury-0.13.1-CFLAGS.patch b/dev-lang/mercury/files/mercury-0.13.1-CFLAGS.patch
new file mode 100644
index 000000000000..333e5d84a951
--- /dev/null
+++ b/dev-lang/mercury/files/mercury-0.13.1-CFLAGS.patch
@@ -0,0 +1,31 @@
+--- mercury-compiler-0.13.1.orig/scripts/mgnuc.in 2006-08-03 00:56:05.000000000 +1200
++++ mercury-compiler-0.13.1/scripts/mgnuc.in 2006-12-04 20:55:47.000000000 +1300
+@@ -53,7 +53,7 @@
+ # -Wenum-clash is for C++ only
+ # -Wunused causes various spurious warnings
+
+- OPT_OPTS="-O2 $CFLAGS_FOR_NO_STRICT_ALIASING -fomit-frame-pointer"
++ OPT_OPTS="@CFLAGS_FOR_OPT@"
+ DEBUG_OPT="-g"
+ COMPILER=gcc
+ ;;
+--- mercury-compiler-0.13.1.orig/configure 2006-12-01 22:37:01.000000000 +1300
++++ mercury-compiler-0.13.1/configure 2006-12-04 20:55:47.000000000 +1300
+@@ -3741,7 +3741,7 @@
+ # the `-lc' and `-lg' libraries have different contents; specifically,
+ # only the latter contains memalign(). We need to make sure that the
+ # test for memalign() doesn't use `-g', since `ml' doesn't use `-g'.
+-CFLAGS="-O"
++# CFLAGS="-O"
+
+ # we also need to add the appropriate `-I' options so that the test programs
+ # can #include various Mercury runtime headers.
+@@ -10050,7 +10050,7 @@
+ # enable, and why, see scripts/mgnuc.in.
+ CFLAGS_FOR_WARNINGS="-Wall -Wwrite-strings -Wshadow -Wmissing-prototypes -Wno-unused -Wno-uninitialized -Wstrict-prototypes"
+
+- CFLAGS_FOR_OPT="-O2 -fomit-frame-pointer"
++ CFLAGS_FOR_OPT="$CFLAGS"
+ CFLAGS_FOR_DEBUG="-g"
+ MCFLAGS_FOR_CC=
+ ;;
diff --git a/dev-lang/mercury/files/mercury-0.13.1-LIBDIR.patch b/dev-lang/mercury/files/mercury-0.13.1-LIBDIR.patch
new file mode 100644
index 000000000000..29beddb76813
--- /dev/null
+++ b/dev-lang/mercury/files/mercury-0.13.1-LIBDIR.patch
@@ -0,0 +1,55 @@
+--- mercury-compiler-0.13.1.orig/configure 2006-12-01 22:37:01.000000000 +1300
++++ mercury-compiler-0.13.1/configure 2006-12-04 21:11:49.000000000 +1300
+@@ -1609,7 +1609,7 @@
+
+
+ PREFIX="`$CYGPATH $PREFIX`"
+-LIBDIR="`$CYGPATH $PREFIX/lib/mercury`"
++LIBDIR="`$CYGPATH $PREFIX/lib/mercury-$PACKAGE_VERSION`"
+ NONSHARED_LIB_DIR=${MERCURY_NONSHARED_LIB_DIR=$PREFIX/lib/nonshared}
+
+
+--- mercury-compiler-0.13.1.orig/scripts/Mmake.vars.in 2006-11-03 18:42:28.000000000 +1300
++++ mercury-compiler-0.13.1/scripts/Mmake.vars.in 2006-12-04 21:11:49.000000000 +1300
+@@ -717,18 +717,18 @@
+ INSTALL_PREFIX = @prefix@
+ FINAL_INSTALL_PREFIX = @prefix@
+ INSTALL_BINDIR = $(INSTALL_PREFIX)/bin
+-INSTALL_LIBDIR = $(INSTALL_PREFIX)/lib/mercury
+-FINAL_INSTALL_LIBDIR = $(FINAL_INSTALL_PREFIX)/lib/mercury
+-INSTALL_JAVA_LIBRARY_DIR= $(INSTALL_PREFIX)/lib/mercury/lib/java
++INSTALL_LIBDIR = $(INSTALL_PREFIX)/lib/mercury-@PACKAGE_VERSION@
++FINAL_INSTALL_LIBDIR = $(FINAL_INSTALL_PREFIX)/lib/mercury-@PACKAGE_VERSION@
++INSTALL_JAVA_LIBRARY_DIR= $(INSTALL_LIBDIR)/lib/java
+ INSTALL_INFO_DIR = $(INSTALL_PREFIX)/info
+-INSTALL_DVI_DIR = $(INSTALL_PREFIX)/lib/mercury/doc
+-INSTALL_TEXT_DIR = $(INSTALL_PREFIX)/lib/mercury/doc
+-INSTALL_PS_DIR = $(INSTALL_PREFIX)/lib/mercury/doc
+-INSTALL_PDF_DIR = $(INSTALL_PREFIX)/lib/mercury/doc
++INSTALL_DVI_DIR = $(INSTALL_LIBDIR)/doc
++INSTALL_TEXT_DIR = $(INSTALL_LIBDIR)/doc
++INSTALL_PS_DIR = $(INSTALL_LIBDIR)/doc
++INSTALL_PDF_DIR = $(INSTALL_LIBDIR)/doc
+ INSTALL_MAN_DIR = $(INSTALL_PREFIX)/man
+-INSTALL_HTML_DIR = $(INSTALL_PREFIX)/lib/mercury/html
+-INSTALL_MDB_DOC_DIR = $(INSTALL_PREFIX)/lib/mercury/mdb
+-INSTALL_ELISP_DIR = $(INSTALL_PREFIX)/lib/mercury/elisp
++INSTALL_HTML_DIR = $(INSTALL_LIBDIR)/html
++INSTALL_MDB_DOC_DIR = $(INSTALL_LIBDIR)/mdb
++INSTALL_ELISP_DIR = $(INSTALL_LIBDIR)/elisp
+ INSTALL_CGI_DIR = @CGIDIR@
+
+ # You should not need to override anything below here
+--- mercury-compiler-0.13.1.orig/scripts/mercury_config.in 2005-10-27 14:48:24.000000000 +1300
++++ mercury-compiler-0.13.1/scripts/mercury_config.in 2006-12-04 21:11:49.000000000 +1300
+@@ -90,8 +90,8 @@
+ shift
+ done
+
+-input_libdir="$input_prefix/lib/mercury"
+-output_libdir="$output_prefix/lib/mercury"
++input_libdir="$input_prefix/lib/mercury-@PACKAGE_VERSION@"
++output_libdir="$output_prefix/lib/mercury-@PACKAGE_VERSION@"
+
+ # mercury_config regenerates itself, so we can't just execute it in place.
+ case $recursive in
diff --git a/dev-lang/mercury/files/mercury-0.13.1-MAKEOPTS.patch b/dev-lang/mercury/files/mercury-0.13.1-MAKEOPTS.patch
new file mode 100644
index 000000000000..8b0b53ff453a
--- /dev/null
+++ b/dev-lang/mercury/files/mercury-0.13.1-MAKEOPTS.patch
@@ -0,0 +1,19 @@
+--- mercury-compiler-0.13.1.orig/Makefile 2005-08-22 15:38:34.000000000 +1200
++++ mercury-compiler-0.13.1/Makefile 2006-12-04 21:26:37.000000000 +1300
+@@ -15,7 +15,7 @@
+ #
+ #-----------------------------------------------------------------------------#
+
+-
++PARALLEL= $(MAKEOPTS)
+ SHELL= /bin/sh
+ MMAKE= MMAKE_DIR=`pwd`/scripts scripts/mmake
+ MMAKE_SUBDIR= MMAKE_DIR=`pwd`/../scripts ../scripts/mmake $(PARALLEL)
+@@ -69,6 +69,6 @@
+ $(MMAKE) uninstall
+
+ .DEFAULT:
+- $(MMAKE) $@
++ $(MMAKE) MMAKEFLAGS=$(PARALLEL) $@
+
+ #-----------------------------------------------------------------------------#
diff --git a/dev-lang/mercury/files/mercury-0.13.1-bootstrap.patch b/dev-lang/mercury/files/mercury-0.13.1-bootstrap.patch
new file mode 100644
index 000000000000..2245a826f6d7
--- /dev/null
+++ b/dev-lang/mercury/files/mercury-0.13.1-bootstrap.patch
@@ -0,0 +1,60 @@
+--- mercury-compiler-0.13.1.orig/configure 2006-12-01 22:37:01.000000000 +1300
++++ mercury-compiler-0.13.1/configure 2006-12-04 20:50:57.000000000 +1300
+@@ -8980,34 +8980,34 @@
+
+ if test "$BEST_GRADE_FOR_COMPILER" != "$BOOTSTRAP_GRADE"; then
+ if test "$BOOTSTRAP_MC" = ""; then
+- GRADE="$BOOTSTRAP_GRADE"
+- { echo "$as_me:$LINENO: WARNING: Mercury compiler not yet installed
+-**** cannot use grade \`$BEST_GRADE_FOR_COMPILER'
+-**** using grade \`$GRADE' to compile the compiler
+-**** after installation is complete you should reinstall
+-**** from scratch so you can use the more efficient
+-**** grade \`$BEST_GRADE_FOR_COMPILER'." >&5
+-echo "$as_me: WARNING: Mercury compiler not yet installed
+-**** cannot use grade \`$BEST_GRADE_FOR_COMPILER'
+-**** using grade \`$GRADE' to compile the compiler
+-**** after installation is complete you should reinstall
+-**** from scratch so you can use the more efficient
+-**** grade \`$BEST_GRADE_FOR_COMPILER'." >&2;}
+-
++ if test "$BOOTSTRAP_STAGE" = "1"; then
++ GRADE="$BOOTSTRAP_GRADE"
++ else
++ GRADE=$BEST_GRADE_FOR_COMPILER
++ find library compiler browser mdbcomp analysis \
++ profiler deep_profiler \
++ -name \*.c -o -name \*.c_date | \
++ xargs rm > /dev/null 2>&1
++ find -name \*.o -o -name \*.pic_o -o \
++ -name \*.a -o -name \*.so | \
++ xargs rm > /dev/null 2>&1
+++ rm -f compiler/mercury_compile profiler/mercury_profile
++ fi
+ else
+- GRADE=$BEST_GRADE_FOR_COMPILER
+- echo "using grade \`$GRADE' to compile the compiler
+- compiler and library will be rebuilt with new grade
+- installation may take a long time" 1>&6
+- find library compiler browser mdbcomp analysis \
+- profiler deep_profiler \
+- -name \*.c -o -name \*.c_date | \
+- xargs rm > /dev/null 2>&1
++ if test "$BOOTSTRAP_STAGE" = "1"; then
++ GRADE=$BEST_GRADE_FOR_COMPILER
++ find library compiler browser mdbcomp analysis \
++ profiler deep_profiler \
++ -name \*.c -o -name \*.c_date | \
++ xargs rm > /dev/null 2>&1
++ else
++ GRADE=$BEST_GRADE_FOR_COMPILER
++ fi
+ fi
+ else
+ GRADE=$BEST_GRADE_FOR_COMPILER
+- echo "using grade \`$GRADE' to compile the compiler" 1>&6
+ fi
++echo "using grade \`$GRADE' to compile the compiler" 1>&6
+
+
+ #-----------------------------------------------------------------------------#
diff --git a/dev-lang/mercury/files/mercury-0.13.1-deep_profiler.patch b/dev-lang/mercury/files/mercury-0.13.1-deep_profiler.patch
new file mode 100644
index 000000000000..09113aadd824
--- /dev/null
+++ b/dev-lang/mercury/files/mercury-0.13.1-deep_profiler.patch
@@ -0,0 +1,75 @@
+--- mercury-compiler-0.13.1.orig/configure 2006-12-01 22:37:01.000000000 +1300
++++ mercury-compiler-0.13.1/configure 2006-12-04 21:00:23.000000000 +1300
+@@ -8666,14 +8666,14 @@
+ esac
+
+ case $enable_deep_profiler in
+- default)
+- if test -d $mercury_cv_default_cgi_dir; then
+- mercury_cv_enable_deep_profiler=$mercury_cv_can_enable_deep_profiler
+- mercury_cv_cgi_dir=$mercury_cv_default_cgi_dir
+- else
+- mercury_cv_enable_deep_profiler=no
+- fi
+- ;;
++# default)
++# if test -d $mercury_cv_default_cgi_dir; then
++# mercury_cv_enable_deep_profiler=$mercury_cv_can_enable_deep_profiler
++# mercury_cv_cgi_dir=$mercury_cv_default_cgi_dir
++# else
++# mercury_cv_enable_deep_profiler=no
++# fi
++# ;;
+ no)
+ mercury_cv_enable_deep_profiler=no
+ ;;
+@@ -8698,17 +8698,17 @@
+ ;;
+ esac
+
+-if test $mercury_cv_enable_deep_profiler = yes; then
+- if test -d $mercury_cv_cgi_dir; then
+- true
+- else
+- echo "$as_me:$LINENO: result: $enable_deep_profiler" >&5
+-echo "${ECHO_T}$enable_deep_profiler" >&6
+- { { echo "$as_me:$LINENO: error: CGI script directory $mercury_cv_cgi_dir does not exist" >&5
+-echo "$as_me: error: CGI script directory $mercury_cv_cgi_dir does not exist" >&2;}
+- { (exit 1); exit 1; }; }
+- fi
+-fi
++#if test $mercury_cv_enable_deep_profiler = yes; then
++# if test -d $mercury_cv_cgi_dir; then
++# true
++# else
++# echo "$as_me:$LINENO: result: $enable_deep_profiler" >&5
++#echo "${ECHO_T}$enable_deep_profiler" >&6
++# { { echo "$as_me:$LINENO: error: CGI script directory $mercury_cv_cgi_dir does not exist" >&5
++#echo "$as_me: error: CGI script directory $mercury_cv_cgi_dir does not exist" >&2;}
++# { (exit 1); exit 1; }; }
++# fi
++#fi
+
+ echo "$as_me:$LINENO: result: $mercury_cv_enable_deep_profiler" >&5
+ echo "${ECHO_T}$mercury_cv_enable_deep_profiler" >&6
+--- mercury-compiler-0.13.1.orig/deep_profiler/Mmakefile 2005-12-16 18:49:39.000000000 +1300
++++ mercury-compiler-0.13.1/deep_profiler/Mmakefile 2006-12-04 21:00:35.000000000 +1300
+@@ -155,12 +155,12 @@
+ # executed when we do the install. The mv is of course expected to
+ # fail during a first-time installation. The rm is before the move
+ # in case this is the third or later installation.
+- -if test $(ENABLE_DEEP_PROFILER) = yes ; then \
+- rm $(INSTALL_CGI_DIR)/mdprof_cgi.was ; \
+- mv $(INSTALL_CGI_DIR)/mdprof_cgi \
+- $(INSTALL_CGI_DIR)/mdprof_cgi.was ; \
+- cp mdprof_cgi $(INSTALL_CGI_DIR) ; \
+- fi
++ #-if test $(ENABLE_DEEP_PROFILER) = yes ; then \
++ # rm $(INSTALL_CGI_DIR)/mdprof_cgi.was ; \
++ # mv $(INSTALL_CGI_DIR)/mdprof_cgi \
++ # $(INSTALL_CGI_DIR)/mdprof_cgi.was ; \
++ # cp mdprof_cgi $(INSTALL_CGI_DIR) ; \
++ #fi
+ # We also install mdprof_cgi in $(INSTALL_MERC_BIN_DIR).
+ # This is done just so that it can easily get put in the
+ # binary distribution (even if the step above failed).
diff --git a/dev-lang/mercury/files/mercury-0.13.1-docs.patch b/dev-lang/mercury/files/mercury-0.13.1-docs.patch
new file mode 100644
index 000000000000..82c2ba918eb4
--- /dev/null
+++ b/dev-lang/mercury/files/mercury-0.13.1-docs.patch
@@ -0,0 +1,20 @@
+--- mercury-compiler-0.13.1.orig/doc/Mmakefile 2006-03-29 13:35:18.000000000 +1200
++++ mercury-compiler-0.13.1/doc/Mmakefile 2006-12-04 21:10:35.000000000 +1300
+@@ -120,7 +120,7 @@
+ # formatted versions of the man pages.
+ # But it might make sense to add them.
+ .PHONY: all
+-all: $(INFOPAGES) $(DVI) $(HTML) manpages $(MDB_DOC)
++all: $(INFOPAGES) $(HTML) manpages $(MDB_DOC)
+ #all: ps pdf text formatted_manpages
+
+ #-----------------------------------------------------------------------------#
+@@ -331,7 +331,7 @@
+ # versions of the documentation. If they are added they should
+ # be installed here.
+ .PHONY: install
+-install: install_info install_html install_dvi install_manpages \
++install: install_info install_html install_manpages \
+ install_mdb_doc
+ # install_text install_ps
+
diff --git a/dev-lang/mercury/files/mercury-0.13.1-libgrades.patch b/dev-lang/mercury/files/mercury-0.13.1-libgrades.patch
new file mode 100644
index 000000000000..96c4fc8442db
--- /dev/null
+++ b/dev-lang/mercury/files/mercury-0.13.1-libgrades.patch
@@ -0,0 +1,375 @@
+--- mercury-compiler-0.13.1.orig/Mmakefile 2005-08-12 03:56:57.000000000 +1200
++++ mercury-compiler-0.13.1/Mmakefile 2006-12-04 21:19:06.000000000 +1300
+@@ -281,6 +281,54 @@
+ mdbcomp browser trace
+ +cd deep_profiler && $(SUBDIR_MMAKE)
+
++libgrades:
++ +for grade in x $(LIBGRADES); do \
++ if [ "$$grade" != "x" -a "$$grade" != "$(GRADE)" ]; then \
++ gc_grade=`scripts/ml --grade $$grade --print-gc-grade`; \
++ TWS=`/bin/pwd`/libgrades/$$grade; \
++ /bin/rm -fr libgrades/$$grade; \
++ mkdir -p libgrades/$$grade; \
++ ( scripts/prepare_tmp_dir_fixed_part $$grade && \
++ scripts/prepare_tmp_dir_grade_part $$grade ) && \
++ ( cd libgrades/$$grade/boehm_gc && \
++ $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade \
++ WORKSPACE=$$TWS GC_GRADE=$$gc_grade \
++ MERCURY_COMPILER=$$TWS/compiler/mercury_compile \
++ libgrade ) && \
++ ( cd libgrades/$$grade/runtime && \
++ $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS \
++ MERCURY_COMPILER=$$TWS/compiler/mercury_compile \
++ libgrade ) && \
++ ( cd libgrades/$$grade/library && \
++ $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS \
++ MERCURY_COMPILER=$$TWS/compiler/mercury_compile \
++ depend && \
++ $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS \
++ MERCURY_COMPILER=$$TWS/compiler/mercury_compile \
++ libgrade ) && \
++ ( cd libgrades/$$grade/mdbcomp && \
++ $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS \
++ MERCURY_COMPILER=$$TWS/compiler/mercury_compile \
++ depend && \
++ $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS \
++ MERCURY_COMPILER=$$TWS/compiler/mercury_compile \
++ libgrade ) && \
++ ( cd libgrades/$$grade/browser && \
++ $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS \
++ MERCURY_COMPILER=$$TWS/compiler/mercury_compile \
++ depend && \
++ $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS \
++ MERCURY_COMPILER=$$TWS/compiler/mercury_compile \
++ libgrade ) && \
++ ( cd libgrades/$$grade/trace && \
++ $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS \
++ MERCURY_COMPILER=$$TWS/compiler/mercury_compile \
++ libgrade ) && \
++ true || \
++ exit 1; \
++ fi; \
++ done
++
+ #-----------------------------------------------------------------------------#
+
+ .PHONY: tags
+@@ -483,28 +531,13 @@
+ @echo
+ @echo "-- Installation complete."
+ @echo
+- @echo "-- Don't forget to add $(INSTALL_BINDIR) to your PATH,"
+- @echo "-- $(INSTALL_MAN_DIR) to your MANPATH,"
+- @echo "-- and $(INSTALL_INFO_DIR) to your INFOPATH,"
+- @if test $(ENABLE_DEEP_PROFILER) != yes || \
+- cmp -s deep_profiler/mdprof_cgi \
+- $(INSTALL_CGI_DIR)/mdprof_cgi; \
+- then true ; else \
+- echo "-- to copy deep_profiler/mdprof_cgi" \
+- "to $(INSTALL_CGI_DIR),"; \
+- fi
+- @echo "-- and to add the following lines to the \`.emacs' file"
+- @echo "-- in your home directory:"
+- @echo " (setq load-path (cons (expand-file-name "
+- @echo " \"$(INSTALL_ELISP_DIR)\") load-path))"
+- @echo " (autoload 'mdb \"gud\" \"Invoke the Mercury debugger\" t)"
+
+ .PHONY: install_main
+ install_main: all \
+ install_scripts install_util install_runtime install_boehm_gc \
+ install_library install_mdbcomp install_browser install_trace \
+ install_compiler install_slice install_profiler \
+- install_deep_profiler install_doc install_config
++ install_deep_profiler install_doc
+
+ .PHONY: install_scripts
+ install_scripts: scripts
+@@ -569,7 +602,7 @@
+ # .trans_opt .trans_opt_date .d .mh .mih .c_date .c .o .pic_o
+
+ .PHONY: install_grades
+-install_grades: all
++install_grades: all libgrades
+ #
+ # Use the newly installed compiler to build the libraries
+ # in various different grades. We need to override MC=mmc
+@@ -577,44 +610,33 @@
+ # runs the newly installed compiler, rather than using the
+ # bootstrap compiler.
+ #
+- /bin/rm -fr tmp_dir
+- scripts/prepare_tmp_dir_fixed_part
+ +for grade in x $(LIBGRADES); do \
+ if [ "$$grade" != "x" -a "$$grade" != "$(GRADE)" ]; then \
+ gc_grade=`scripts/ml --grade $$grade --print-gc-grade`; \
+- TWS=`/bin/pwd`/tmp_dir; \
+- scripts/prepare_tmp_dir_grade_part; \
+- ( cd tmp_dir/boehm_gc && \
++ TWS=`/bin/pwd`/libgrades/$$grade; \
++ ( cd libgrades/$$grade/boehm_gc && \
+ $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade \
+ WORKSPACE=$$TWS GC_GRADE=$$gc_grade \
+ install_lib ) && \
+- ( cd tmp_dir/runtime && \
++ ( cd libgrades/$$grade/runtime && \
+ $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS \
+ install_lib ) && \
+- ( cd tmp_dir/library && \
+- $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS \
+- depend && \
++ ( cd libgrades/$$grade/library && \
+ $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS \
+ install_library ) && \
+- ( cd tmp_dir/mdbcomp && \
+- $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS \
+- depend && \
++ ( cd libgrades/$$grade/mdbcomp && \
+ $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS \
+ install_library ) && \
+- ( cd tmp_dir/browser && \
+- $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS \
+- depend && \
++ ( cd libgrades/$$grade/browser && \
+ $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS \
+ install_library ) && \
+- ( cd tmp_dir/trace && \
++ ( cd libgrades/$$grade/trace && \
+ $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS \
+ install_lib ) && \
+ true || \
+- { echo "To clean up from failed install, remove tmp_dir"; \
+- exit 1; }; \
++ exit 1; \
+ fi; \
+ done
+- if test ! -f .leave_tmp_dir; then rm -fr tmp_dir; fi
+
+ .PHONY: install_split_library
+ install_split_library: scripts dep_library
+--- mercury-compiler-0.13.1.orig/boehm_gc/Mmakefile 2006-11-15 03:09:19.000000000 +1300
++++ mercury-compiler-0.13.1/boehm_gc/Mmakefile 2006-12-04 21:19:06.000000000 +1300
+@@ -90,6 +90,9 @@
+ .PHONY: force
+ force:
+
++.PHONY: libgrade
++libgrade: lib$(GC_GRADE).$A lib$(GC_GRADE).$(EXT_FOR_SHARED_LIB)
++
+ #-----------------------------------------------------------------------------#
+
+ # installation rules
+--- mercury-compiler-0.13.1.orig/browser/Mmakefile 2005-12-16 18:49:31.000000000 +1300
++++ mercury-compiler-0.13.1/browser/Mmakefile 2006-12-04 21:19:06.000000000 +1300
+@@ -186,6 +186,11 @@
+ .PHONY: int3s
+ int3s: $(INT3S_TARGETS)
+
++.PHONY: libgrade
++libgrade: \
++ lib$(BROWSER_LIB_NAME).$A \
++ lib$(BROWSER_LIB_NAME).$(EXT_FOR_SHARED_LIB)
++
+ #-----------------------------------------------------------------------------#
+
+ tags: $(MTAGS) $($(BROWSER_LIB_NAME).ms)
+--- mercury-compiler-0.13.1.orig/library/Mmakefile 2006-01-10 18:30:36.000000000 +1300
++++ mercury-compiler-0.13.1/library/Mmakefile 2006-12-04 21:19:06.000000000 +1300
+@@ -196,6 +196,9 @@
+ trans_opts: $(STD_LIB_NAME).trans_opts
+ $(STD_LIB_NAME).trans_opts: $($(STD_LIB_NAME).trans_opts)
+
++.PHONY: libgrade
++libgrade: lib$(STD_LIB_NAME)
++
+ #-----------------------------------------------------------------------------#
+
+ tags: $(MTAGS) $($(STD_LIB_NAME).ms)
+--- mercury-compiler-0.13.1.orig/mdbcomp/Mmakefile 2005-12-16 18:49:40.000000000 +1300
++++ mercury-compiler-0.13.1/mdbcomp/Mmakefile 2006-12-04 21:19:06.000000000 +1300
+@@ -150,6 +150,13 @@
+ .PHONY: int3s
+ int3s: $(INT3S_TARGETS)
+
++.PHONY: libgrade
++libgrade: \
++ $(mer_mdbcomp.int3s) $(mer_mdbcomp.ints) \
++ lib$(MDBCOMP_LIB_NAME).$A \
++ lib$(MDBCOMP_LIB_NAME).$(EXT_FOR_SHARED_LIB) \
++ all-ints
++
+ #-----------------------------------------------------------------------------#
+
+ tags: $(MTAGS) $($(MDBCOMP_LIB_NAME).ms)
+--- mercury-compiler-0.13.1.orig/runtime/Mmakefile 2006-11-15 03:09:20.000000000 +1300
++++ mercury-compiler-0.13.1/runtime/Mmakefile 2006-12-04 21:19:06.000000000 +1300
+@@ -420,6 +420,9 @@
+ @if test ! -f tags; then echo making tags; \
+ ctags $(CFILES) $(HDRS) $(BODY_HDRS) $(LIB_DLL_H); fi
+
++.PHONY: libgrade
++libgrade: lib$(RT_LIB_NAME).$A lib$(RT_LIB_NAME).$(EXT_FOR_SHARED_LIB)
++
+ #-----------------------------------------------------------------------------#
+
+ # installation rules
+--- mercury-compiler-0.13.1.orig/scripts/prepare_tmp_dir_fixed_part.in 2005-01-28 20:11:59.000000000 +1300
++++ mercury-compiler-0.13.1/scripts/prepare_tmp_dir_fixed_part.in 2006-12-04 21:19:06.000000000 +1300
+@@ -12,18 +12,20 @@
+ fi
+ wd=`/bin/pwd`
+
+-mkdir tmp_dir
+-cp Mmake* tmp_dir
+-cp Mercury.* tmp_dir
+-cp VERSION tmp_dir
+-cp config* tmp_dir
+-cp aclocal.m4 tmp_dir
+-mkdir tmp_dir/scripts
+-cp scripts/* tmp_dir/scripts
+-mkdir tmp_dir/tools
+-cp tools/* tmp_dir/tools
+-$ln_s $wd/compiler tmp_dir
+-$ln_s $wd/analysis tmp_dir
+-$ln_s $wd/robdd tmp_dir
+-$ln_s $wd/util tmp_dir
++libgrade_dir=libgrades/$1
++
++mkdir -p $libgrade_dir
++cp Mmake* $libgrade_dir
++cp Mercury.* $libgrade_dir
++cp VERSION $libgrade_dir
++cp config* $libgrade_dir
++cp aclocal.m4 $libgrade_dir
++mkdir $libgrade_dir/scripts
++cp scripts/* $libgrade_dir/scripts
++mkdir $libgrade_dir/tools
++cp tools/* $libgrade_dir/tools
++$ln_s $wd/compiler $libgrade_dir
++$ln_s $wd/analysis $libgrade_dir
++$ln_s $wd/robdd $libgrade_dir
++$ln_s $wd/util $libgrade_dir
+ exit 0
+--- mercury-compiler-0.13.1.orig/scripts/prepare_tmp_dir_grade_part 2005-05-20 18:15:20.000000000 +1200
++++ mercury-compiler-0.13.1/scripts/prepare_tmp_dir_grade_part 2006-12-04 21:19:06.000000000 +1300
+@@ -5,55 +5,57 @@
+ # Public License - see the file COPYING in the Mercury distribution.
+ #---------------------------------------------------------------------------#
+
+-rm -fr tmp_dir/boehm_gc
+-rm -fr tmp_dir/runtime
+-rm -fr tmp_dir/trace
+-rm -fr tmp_dir/library
+-rm -fr tmp_dir/mdbcomp
+-rm -fr tmp_dir/browser
+-mkdir tmp_dir/boehm_gc
+-mkdir tmp_dir/boehm_gc/Mac_files
+-mkdir tmp_dir/boehm_gc/cord
+-mkdir tmp_dir/boehm_gc/include
+-mkdir tmp_dir/boehm_gc/include/private
+-cp boehm_gc/Makefile* tmp_dir/boehm_gc
+-cp boehm_gc/Mmake* tmp_dir/boehm_gc
+-cp boehm_gc/ac* tmp_dir/boehm_gc
+-cp boehm_gc/*.[chsS] tmp_dir/boehm_gc
+-cp boehm_gc/Mac_files/*.[ch] tmp_dir/boehm_gc/Mac_files
+-cp boehm_gc/cord/*.[ch] tmp_dir/boehm_gc/cord
+-cp boehm_gc/include/*.[ch] tmp_dir/boehm_gc/include
+-cp boehm_gc/include/private/*.[ch] tmp_dir/boehm_gc/include/private
+-mkdir tmp_dir/runtime
+-mkdir tmp_dir/runtime/machdeps
+-cp runtime/Mmake* tmp_dir/runtime
+-cp runtime/.mgnuc* tmp_dir/runtime
+-cp runtime/*.in tmp_dir/runtime
+-cp runtime/*.[ch] tmp_dir/runtime
+-cp runtime/*.il tmp_dir/runtime
+-cp runtime/machdeps/*.h tmp_dir/runtime/machdeps
+-mkdir tmp_dir/trace
+-cp trace/Mmake* tmp_dir/trace
+-cp trace/.mgnuc* tmp_dir/trace
+-cp trace/*.[ch] tmp_dir/trace
+-mkdir tmp_dir/library
+-cp library/Mmake* tmp_dir/library
+-cp library/Mercury.* tmp_dir/library
+-cp library/.mgnuc* tmp_dir/library
+-cp library/*FLAGS* tmp_dir/library
+-cp library/print_extra_inits tmp_dir/library
+-cp library/library_strong_name.sn tmp_dir/library
+-cp library/*.m tmp_dir/library
+-mkdir tmp_dir/mdbcomp
+-cp mdbcomp/Mmake* tmp_dir/mdbcomp
+-cp mdbcomp/Mercury.* tmp_dir/mdbcomp
+-cp mdbcomp/.mgnuc* tmp_dir/mdbcomp
+-cp mdbcomp/*FLAGS* tmp_dir/mdbcomp
+-cp mdbcomp/*.m tmp_dir/mdbcomp
+-mkdir tmp_dir/browser
+-cp browser/Mmake* tmp_dir/browser
+-cp browser/Mercury.* tmp_dir/browser
+-cp browser/.mgnuc* tmp_dir/browser
+-cp browser/*FLAGS* tmp_dir/browser
+-cp browser/*.m tmp_dir/browser
++libgrade_dir=libgrades/$1
++
++rm -fr $libgrade_dir/boehm_gc
++rm -fr $libgrade_dir/runtime
++rm -fr $libgrade_dir/trace
++rm -fr $libgrade_dir/library
++rm -fr $libgrade_dir/mdbcomp
++rm -fr $libgrade_dir/browser
++mkdir $libgrade_dir/boehm_gc
++mkdir $libgrade_dir/boehm_gc/Mac_files
++mkdir $libgrade_dir/boehm_gc/cord
++mkdir $libgrade_dir/boehm_gc/include
++mkdir $libgrade_dir/boehm_gc/include/private
++cp boehm_gc/Makefile* $libgrade_dir/boehm_gc
++cp boehm_gc/Mmake* $libgrade_dir/boehm_gc
++cp boehm_gc/ac* $libgrade_dir/boehm_gc
++cp boehm_gc/*.[chsS] $libgrade_dir/boehm_gc
++cp boehm_gc/Mac_files/*.[ch] $libgrade_dir/boehm_gc/Mac_files
++cp boehm_gc/cord/*.[ch] $libgrade_dir/boehm_gc/cord
++cp boehm_gc/include/*.[ch] $libgrade_dir/boehm_gc/include
++cp boehm_gc/include/private/*.[ch] $libgrade_dir/boehm_gc/include/private
++mkdir $libgrade_dir/runtime
++mkdir $libgrade_dir/runtime/machdeps
++cp runtime/Mmake* $libgrade_dir/runtime
++cp runtime/.mgnuc* $libgrade_dir/runtime
++cp runtime/*.in $libgrade_dir/runtime
++cp runtime/*.[ch] $libgrade_dir/runtime
++cp runtime/*.il $libgrade_dir/runtime
++cp runtime/machdeps/*.h $libgrade_dir/runtime/machdeps
++mkdir $libgrade_dir/trace
++cp trace/Mmake* $libgrade_dir/trace
++cp trace/.mgnuc* $libgrade_dir/trace
++cp trace/*.[ch] $libgrade_dir/trace
++mkdir $libgrade_dir/library
++cp library/Mmake* $libgrade_dir/library
++cp library/Mercury.* $libgrade_dir/library
++cp library/.mgnuc* $libgrade_dir/library
++cp library/*FLAGS* $libgrade_dir/library
++cp library/print_extra_inits $libgrade_dir/library
++cp library/library_strong_name.sn $libgrade_dir/library
++cp library/*.m $libgrade_dir/library
++mkdir $libgrade_dir/mdbcomp
++cp mdbcomp/Mmake* $libgrade_dir/mdbcomp
++cp mdbcomp/Mercury.* $libgrade_dir/mdbcomp
++cp mdbcomp/.mgnuc* $libgrade_dir/mdbcomp
++cp mdbcomp/*FLAGS* $libgrade_dir/mdbcomp
++cp mdbcomp/*.m $libgrade_dir/mdbcomp
++mkdir $libgrade_dir/browser
++cp browser/Mmake* $libgrade_dir/browser
++cp browser/Mercury.* $libgrade_dir/browser
++cp browser/.mgnuc* $libgrade_dir/browser
++cp browser/*FLAGS* $libgrade_dir/browser
++cp browser/*.m $libgrade_dir/browser
+ exit 0
+--- mercury-compiler-0.13.1.orig/trace/Mmakefile 2006-11-15 03:09:20.000000000 +1300
++++ mercury-compiler-0.13.1/trace/Mmakefile 2006-12-04 21:19:06.000000000 +1300
+@@ -204,6 +204,9 @@
+ @if test ! -f tags; then echo making tags; \
+ ctags $(CFILES) $(HDRS) $(RUNTIME_DIR)/*.c $(RUNTIME_DIR)/*.h ; fi
+
++.PHONY: libgrade
++libgrade: lib$(TRACE_LIB_NAME).$A lib$(TRACE_LIB_NAME).$(EXT_FOR_SHARED_LIB)
++
+ #-----------------------------------------------------------------------------#
+
+ # installation rules
diff --git a/dev-lang/mercury/files/mercury-0.13.1-parallel-install_grades.patch b/dev-lang/mercury/files/mercury-0.13.1-parallel-install_grades.patch
new file mode 100644
index 000000000000..0c6570df9c98
--- /dev/null
+++ b/dev-lang/mercury/files/mercury-0.13.1-parallel-install_grades.patch
@@ -0,0 +1,14 @@
+--- mercury-compiler-0.13.1.orig/scripts/Mmake.rules 2006-11-03 18:42:28.000000000 +1300
++++ mercury-compiler-0.13.1/scripts/Mmake.rules 2006-12-04 21:35:40.000000000 +1300
+@@ -505,9 +505,9 @@
+ *.a *.so tmp_dir || true; } && \
+ for grade in $(ALL_LIBGRADES); do \
+ if [ "$$grade" != "$(GRADE)" ]; then \
+- $(MMAKE) GRADE=$$grade $*.depend || \
++ $(MMAKE) $(MMAKEFLAGS) GRADE=$$grade $*.depend || \
+ exit 1; \
+- $(MMAKE) GRADE=$$grade lib$*.install_library || \
++ $(MMAKE) $(MMAKEFLAGS) GRADE=$$grade lib$*.install_library || \
+ exit 1; \
+ for file in x $$grade_files; do \
+ if [ "$$file" != "x" ]; then \
diff --git a/dev-lang/mercury/files/mercury-0.13.1-portage.patch b/dev-lang/mercury/files/mercury-0.13.1-portage.patch
new file mode 100644
index 000000000000..412152252c74
--- /dev/null
+++ b/dev-lang/mercury/files/mercury-0.13.1-portage.patch
@@ -0,0 +1,91 @@
+--- mercury-compiler-0.13.1.orig/Makefile 2005-08-22 15:38:34.000000000 +1200
++++ mercury-compiler-0.13.1/Makefile 2006-12-04 21:37:11.000000000 +1300
+@@ -26,7 +26,7 @@
+
+ .PHONY: all
+ all:
+- $(MMAKE) MMAKEFLAGS=$(PARALLEL) all
++ $(MMAKE) MMAKEFLAGS=$(PARALLEL) all || exit 1
+
+ .PHONY: libmmc
+ libmmc:
+@@ -34,7 +34,7 @@
+
+ .PHONY: install
+ install:
+- $(MMAKE) MMAKEFLAGS=$(PARALLEL) install
++ $(MMAKE) MMAKEFLAGS=$(PARALLEL) install || exit 1
+
+ # `mmake clean' has a different meaning to the usual GNU standard `make clean':
+ # it removes the .c files, which makes bootstrapping impossible unless you
+--- mercury-compiler-0.13.1.orig/configure 2006-12-01 22:37:01.000000000 +1300
++++ mercury-compiler-0.13.1/configure 2006-12-04 21:37:11.000000000 +1300
+@@ -9151,11 +9151,11 @@
+ enable_mm_grades=no
+ enable_dmm_grades=no
+ enable_hlc_prof_grades=no
+- enable_par_grades=no
+ enable_dotnet_grades=no
+ enable_java_grade=no
+ fi
+
++
+ #-----------------------------------------------------------------------------#
+
+ #
+--- mercury-compiler-0.13.1.orig/runtime/Mmakefile 2006-11-15 03:09:20.000000000 +1300
++++ mercury-compiler-0.13.1/runtime/Mmakefile 2006-12-04 21:37:11.000000000 +1300
+@@ -434,8 +437,6 @@
+ -[ -d $(INSTALL_MODULE_DIR) ] || mkdir -p $(INSTALL_MODULE_DIR)
+ -[ -d $(INSTALL_MERC_LIB_DIR) ] || mkdir -p $(INSTALL_MERC_LIB_DIR)
+ -[ -d $(INSTALL_CONF_DIR) ] || mkdir -p $(INSTALL_CONF_DIR)
+- -[ -d $(INSTALL_RECONF_DIR)/runtime ] || \
+- mkdir -p $(INSTALL_RECONF_DIR)/runtime
+
+ ifeq ($(findstring java,$(GRADE)),java)
+
+@@ -481,7 +482,6 @@
+ rm -f $(INSTALL_INC_DIR)/mercury_conf.h
+ cp `vpath_find mercury_conf.h` $(INSTALL_CONF_DIR)
+ -chmod u+w $(INSTALL_CONF_DIR)/mercury_conf.h
+- cp `vpath_find mercury_conf.h.in` $(INSTALL_RECONF_DIR)/runtime
+ cp `vpath_find $(MACHHDRS)` $(INSTALL_INC_DIR)/machdeps
+
+ .PHONY: install_init
+--- mercury-compiler-0.13.1.orig/scripts/Mmakefile 2006-04-04 19:41:49.000000000 +1200
++++ mercury-compiler-0.13.1/scripts/Mmakefile 2006-12-04 21:37:11.000000000 +1300
+@@ -26,16 +26,12 @@
+ canonical_grade \
+ mdb \
+ mdprof \
+- mercury.bat \
+- mercury_config \
+ mercury_update_interface \
+ mgnuc \
+- mkfifo_using_mknod \
+ ml \
+ mmake \
+ mmc \
+- mprof \
+- prepare_tmp_dir_fixed_part
++ mprof
+
+ SCRIPTS = $(NONCONF_SCRIPTS) $(CONF_SCRIPTS)
+
+@@ -103,8 +99,6 @@
+ [ -d $(INSTALL_LIBDIR)/mdb ] || mkdir -p $(INSTALL_LIBDIR)/mdb
+ [ -d $(INSTALL_CONF_DIR) ] || mkdir -p $(INSTALL_CONF_DIR)
+ [ -d $(INSTALL_ELISP_DIR) ] || mkdir -p $(INSTALL_ELISP_DIR)
+- [ -d $(INSTALL_RECONF_DIR)/scripts ] || \
+- mkdir -p $(INSTALL_RECONF_DIR)/scripts
+
+ .PHONY: install_mmake
+ install_mmake: Mmake.vars Mmake.rules install_dirs
+@@ -122,7 +116,6 @@
+ -for file in $(SCRIPTS); do \
+ chmod u+w $(INSTALL_BINDIR)/$$file ;\
+ done
+- cp *.in *.sh-subr $(SCRIPTS) $(INSTALL_RECONF_DIR)/scripts
+ -rm -f $(INSTALL_BINDIR)/mmake.old
+
+ .PHONY: install_config
diff --git a/dev-lang/mercury/files/mercury-0.13.1-tests.patch b/dev-lang/mercury/files/mercury-0.13.1-tests.patch
new file mode 100644
index 000000000000..b20e58449f42
--- /dev/null
+++ b/dev-lang/mercury/files/mercury-0.13.1-tests.patch
@@ -0,0 +1,526 @@
+diff -urN mercury-tests-0.13.1.orig/hard_coded/dir_test.exp mercury-tests-0.13.1/hard_coded/dir_test.exp
+--- mercury-tests-0.13.1.orig/hard_coded/dir_test.exp 2003-07-29 03:50:45.000000000 +1200
++++ mercury-tests-0.13.1/hard_coded/dir_test.exp 2006-12-04 21:44:54.000000000 +1300
+@@ -130,7 +130,6 @@
+ "foo"/"bar/baz" = "foo\bar\baz".
+ "foo/"/"bar/baz" = "foo\bar\baz".
+ checking whether `unwritable' is readable...ok
+-unwritable file found to be unwritable
+ make_directory succeeded
+ make_directory succeeded
+ dir.make_single_directory with non-existent parent failed as expected.
+diff -urN mercury-tests-0.13.1.orig/hard_coded/dir_test.exp2 mercury-tests-0.13.1/hard_coded/dir_test.exp2
+--- mercury-tests-0.13.1.orig/hard_coded/dir_test.exp2 2003-07-29 03:50:45.000000000 +1200
++++ mercury-tests-0.13.1/hard_coded/dir_test.exp2 2006-12-04 21:44:54.000000000 +1300
+@@ -127,7 +127,6 @@
+ "foo"/"bar/baz" = "foo/bar/baz".
+ "foo/"/"bar/baz" = "foo/bar/baz".
+ checking whether `unwritable' is readable...ok
+-unwritable file found to be unwritable
+ make_directory succeeded
+ make_directory succeeded
+ dir.make_single_directory with non-existent parent failed as expected.
+diff -urN mercury-tests-0.13.1.orig/hard_coded/dir_test.exp3 mercury-tests-0.13.1/hard_coded/dir_test.exp3
+--- mercury-tests-0.13.1.orig/hard_coded/dir_test.exp3 2003-07-29 03:50:45.000000000 +1200
++++ mercury-tests-0.13.1/hard_coded/dir_test.exp3 2006-12-04 21:44:54.000000000 +1300
+@@ -130,7 +130,6 @@
+ "foo"/"bar/baz" = "foo/bar/baz".
+ "foo/"/"bar/baz" = "foo/bar/baz".
+ checking whether `unwritable' is readable...ok
+-unwritable file found to be unwritable
+ make_directory succeeded
+ make_directory succeeded
+ dir.make_single_directory with non-existent parent failed as expected.
+diff -urN mercury-tests-0.13.1.orig/hard_coded/dir_test.m mercury-tests-0.13.1/hard_coded/dir_test.m
+--- mercury-tests-0.13.1.orig/hard_coded/dir_test.m 2006-03-29 20:08:00.000000000 +1200
++++ mercury-tests-0.13.1/hard_coded/dir_test.m 2006-12-04 21:44:54.000000000 +1300
+@@ -50,16 +50,6 @@
+ io__write(ReadResult),
+ io__nl,
+
+- io__check_file_accessibility("unwritable",
+- [read, write], WriteResult),
+- ( { WriteResult = ok } ->
+- io__write_string(
+- "Error: unwritable file found to be writable\n")
+- ;
+- io__write_string(
+- "unwritable file found to be unwritable\n")
+- ),
+-
+ { Dir1 = "test_dir"/"d1" },
+ test0("make_directory", dir__make_directory(Dir1)),
+ % Test making a directory that already exists.
+diff -urN mercury-tests-0.13.1.orig/mdbrc mercury-tests-0.13.1/mdbrc
+--- mercury-tests-0.13.1.orig/mdbrc 1970-01-01 12:00:00.000000000 +1200
++++ mercury-tests-0.13.1/mdbrc 2006-12-04 21:44:54.000000000 +1300
+@@ -0,0 +1,19 @@
++source MDB_DOC
++alias s step
++alias g goto
++alias f finish
++alias r retry
++alias v vars
++alias p print
++alias P print *
++alias d stack
++alias c continue
++alias b break
++alias h help
++alias ? help
++alias excp exception
++alias e exception
++alias EMPTY step
++alias NUMBER step
++xml_browser_cmd ''
++xml_tmp_filename ''
+diff -urN mercury-tests-0.13.1.orig/tabling/loopcheck.exp5 mercury-tests-0.13.1/tabling/loopcheck.exp5
+--- mercury-tests-0.13.1.orig/tabling/loopcheck.exp5 1970-01-01 12:00:00.000000000 +1200
++++ mercury-tests-0.13.1/tabling/loopcheck.exp5 2006-12-04 21:44:54.000000000 +1300
+@@ -0,0 +1,3 @@
++Uncaught Mercury exception:
++Software Error: detected infinite recursion in pred loopcheck.loop/1
++Stack dump not available in this grade.
+diff -urN mercury-tests-0.13.1.orig/tabling/loopcheck_nondet.exp2 mercury-tests-0.13.1/tabling/loopcheck_nondet.exp2
+--- mercury-tests-0.13.1.orig/tabling/loopcheck_nondet.exp2 1970-01-01 12:00:00.000000000 +1200
++++ mercury-tests-0.13.1/tabling/loopcheck_nondet.exp2 2006-12-04 21:44:54.000000000 +1300
+@@ -0,0 +1,3 @@
++Uncaught Mercury exception:
++Software Error: detected infinite recursion in pred loopcheck_nondet.loop/2
++Stack dump not available in this grade.
+diff -urN mercury-tests-0.13.1.orig/tabling/tc_loop.exp3 mercury-tests-0.13.1/tabling/tc_loop.exp3
+--- mercury-tests-0.13.1.orig/tabling/tc_loop.exp3 1970-01-01 12:00:00.000000000 +1200
++++ mercury-tests-0.13.1/tabling/tc_loop.exp3 2006-12-04 21:44:54.000000000 +1300
+@@ -0,0 +1,3 @@
++Uncaught Mercury exception:
++Software Error: detected infinite recursion in pred tc_loop.tc/2
++Stack dump not available in this grade.
+diff -urN mercury-tests-0.13.1.orig/tabling/tc_memo.exp2 mercury-tests-0.13.1/tabling/tc_memo.exp2
+--- mercury-tests-0.13.1.orig/tabling/tc_memo.exp2 1970-01-01 12:00:00.000000000 +1200
++++ mercury-tests-0.13.1/tabling/tc_memo.exp2 2006-12-04 21:44:54.000000000 +1300
+@@ -0,0 +1,3 @@
++Uncaught Mercury exception:
++Software Error: detected infinite recursion in pred tc_memo.tc/2
++Stack dump not available in this grade.
+diff -urN mercury-tests-0.13.1.orig/tabling/tc_memo2.exp2 mercury-tests-0.13.1/tabling/tc_memo2.exp2
+--- mercury-tests-0.13.1.orig/tabling/tc_memo2.exp2 1970-01-01 12:00:00.000000000 +1200
++++ mercury-tests-0.13.1/tabling/tc_memo2.exp2 2006-12-04 21:44:54.000000000 +1300
+@@ -0,0 +1,3 @@
++Uncaught Mercury exception:
++Software Error: detected need for minimal model in pred tc_memo2.tc/2
++Stack dump not available in this grade.
+diff -urN mercury-tests-0.13.1.orig/valid/Mmakefile mercury-tests-0.13.1/valid/Mmakefile
+--- mercury-tests-0.13.1.orig/valid/Mmakefile 2006-11-08 14:36:30.000000000 +1300
++++ mercury-tests-0.13.1/valid/Mmakefile 2006-12-04 21:44:54.000000000 +1300
+@@ -400,3 +400,5 @@
+ rm -f *.err *.h
+
+ #-----------------------------------------------------------------------------#
++
++MCFLAGS-ho_and_type_spec_bug+=--no-optimize-higher-order
+diff -urN mercury-tests-0.13.1.orig/valid/Mmakefile.orig mercury-tests-0.13.1/valid/Mmakefile.orig
+--- mercury-tests-0.13.1.orig/valid/Mmakefile.orig 1970-01-01 12:00:00.000000000 +1200
++++ mercury-tests-0.13.1/valid/Mmakefile.orig 2006-11-08 14:36:30.000000000 +1300
+@@ -0,0 +1,402 @@
++#-----------------------------------------------------------------------------#
++
++THIS_DIR = valid
++
++#-----------------------------------------------------------------------------#
++
++# please keep these lists sorted
++AGC_PROGS= \
++ agc_graph \
++ agc_ho_pred \
++ agc_ite \
++ agc_unbound_typevars \
++ agc_unbound_typevars2 \
++ agc_unused_in
++
++TRAIL_PROGS= \
++ complex_failure \
++ semi_fail_in_non_ite
++
++TYPECLASS_PROGS= \
++ abstract_typeclass \
++ complex_constraint \
++ constraint_proof_bug \
++ exists_bug \
++ exists_fundeps \
++ exists_fundeps_2 \
++ exists_fundeps_3 \
++ flatten_conj_bug \
++ func_class \
++ func_method \
++ fundeps \
++ instance_superclass \
++ instance_unconstrained_tvar \
++ mpj2 \
++ mpj5 \
++ mpj6 \
++ mpj7 \
++ repeated_class_constraint \
++ superclass_bug \
++ superclass_improvement \
++ tc_map_lookup \
++ typeclass_constraint_no_var \
++ typeclass_constraint_nonvar_bug \
++ typeclass_det_warning
++
++ # This test is compiled with --no-special-preds,
++ # which doesn't work in jump.* and fast.* grades.
++NO_SPECIAL_PREDS_PROGS= \
++ unify_typeinfo_bug
++
++ # Tests for which we should only produce a `.il' file.
++IL_PROGS = \
++ csharp_hello \
++ foreign_type_spec
++
++OTHER_PROGS= \
++ any_inst_merge \
++ any_matches_bound \
++ big_foreign_type \
++ builtin_false \
++ common_struct_bug \
++ complicated_unify \
++ compl_unify_bug \
++ constrained_poly_bound_arg \
++ constrained_poly_insts \
++ constraint_prop_bug \
++ constructor_arg_names \
++ dcg_test \
++ deforest_bug \
++ deforest_loop \
++ deforest_rerun_det \
++ det_condition \
++ det_inference \
++ det_switch \
++ double_vn \
++ easy_nondet_test \
++ easy_nondet_test_2 \
++ empty_bound_inst_list \
++ empty_switch \
++ error \
++ eval \
++ existential_cons \
++ explicit_quant \
++ export_before_func \
++ exported_foreign_type \
++ fail_ite \
++ followcode_det_problem \
++ foreign_underscore_var \
++ func_default_modes \
++ func_in_head \
++ func_int_bug_main \
++ hawkins_switch_bug \
++ headvar_not_found \
++ higher_order \
++ higher_order2 \
++ higher_order3 \
++ higher_order4 \
++ higher_order5 \
++ higher_order_implied_mode \
++ ho_and_type_spec_bug \
++ ho_func_call \
++ ho_inst \
++ ho_unify \
++ id_type_bug \
++ implied_mode \
++ impure_lambda_bug \
++ indexing \
++ inhibit_warn_test \
++ inlining_bug \
++ inst_perf_bug_1 \
++ int64 \
++ intermod_bug_nested \
++ intermod_dcg_bug \
++ intermod_impure \
++ intermod_lambda \
++ intermod_nested \
++ intermod_nested_module \
++ intermod_nested_module_bug \
++ intermod_nested_uniq \
++ intermod_pragma_import \
++ intermod_quote \
++ intermod_record \
++ intermod_test \
++ intermod_typeclass \
++ intermod_type_spec \
++ intermod_user_equality \
++ intermod_user_equality_nested \
++ lambda_inference\
++ lambda_instmap_bug \
++ lambda_output \
++ lambda_quant \
++ lambda_quant_bug \
++ lambda_recompute \
++ lambda_struct_bug \
++ lambda_switch \
++ lambda_type \
++ lazy_list \
++ liveness_nonlocals \
++ livevals_seq \
++ loop \
++ loop_in_disj \
++ loop_inv_bug \
++ mc_bag \
++ mc_extra_nonlocals \
++ mc_graph \
++ mc_hhf_nonlocals_bug \
++ mc_implied_modes \
++ merge_ground_any \
++ middle_rec_labels \
++ modes_bug \
++ mode_syntax \
++ module_a \
++ module_b \
++ module_c \
++ module_d \
++ module_e \
++ mostly_uniq_bug \
++ mostly_uniq_mode_inf \
++ mostly_uniq_neg \
++ multidet_prune1 \
++ multidet_test \
++ nasty_func_test \
++ nested_mod_type_bug \
++ nested_module_bug \
++ no_warn_obsolete \
++ nondet_live \
++ overloading \
++ param_mode_bug \
++ parsing_bug_main \
++ pred_with_no_modes \
++ qualified_cons_id \
++ quantifier_warning \
++ record_syntax_bug \
++ record_syntax_bug_2 \
++ record_syntax_bug_3 \
++ record_syntax_bug_4 \
++ record_syntax_bug_5 \
++ recursive_no_tag_type \
++ reg_bug \
++ same_length_2 \
++ semidet_disj \
++ shape_type \
++ simplify_bug \
++ simplify_bug2 \
++ size_prof_ho_bug \
++ soln_context \
++ solv \
++ solver_type_bug \
++ solver_type_bug_2 \
++ solver_type_mutable_bug \
++ some_switch \
++ spurious_purity_warning \
++ stack_alloc \
++ stack_opt_simplify \
++ state_var_bug \
++ state_var_mode_bug \
++ state_var_mode_bug2 \
++ static \
++ subtype_switch \
++ switch_detection_bug \
++ switch_detection_bug2 \
++ switches \
++ tabled_for_io \
++ tabled_io \
++ transitive_instance \
++ tricky_assert2 \
++ tricky_ite \
++ tuple_eqv \
++ two_pragma_c_codes \
++ two_way_unif \
++ typeclass_inlining_bug \
++ type_inf_ambig_test \
++ unbound_inst_var \
++ unbound_tvar_in_lambda \
++ undead_proc \
++ uniq_mode_inf_bug \
++ uniq_unify \
++ unreachable_code \
++ unused_args_test2 \
++ vn_float \
++ zero_arity
++
++DEEP_PROF_CAPABLE_PROGS = \
++ impure_detism
++
++# These tests require debugging, which hasn't been implemented for
++# the MLDS backend.
++#
++LLDS_PROGS= \
++ exists_cast_bug \
++ untuple_bug
++
++# These tests only work in grades that support parallel conjunction.
++#
++PAR_CONJ_PROGS = \
++ par_dummy \
++ par_dupelim \
++ par_saved_const
++
++# The following programs require that num_tag_bits >= 1
++RESERVE_TAG_PROGS = \
++ reserve_tag
++
++# XXX The mode system can't handle the following test cases yet:
++# assoc_list_bug
++# determinism
++# inst_perf_bug_2
++# mode_merge_insts
++# unify_inst_bug
++#
++# XXX We also don't pass this one (see the comments in it for details):
++# mode_selection
++#
++# XXX The following test is not valid under the current Mercury
++# language rules:
++# field_detism
++
++# The agc.* tests don't work in --high-level-code grades,
++# except hl*.agc*, because they require grade-specific header
++# files to be installed.
++ifeq "$(findstring hl,$(GRADE))$(findstring .agc,$(GRADE))" "hl"
++ PROGS0 = $(TYPECLASS_PROGS) $(OTHER_PROGS)
++else
++ # The agc.* tests don't work in the il grades, as the CLR has
++ # its own builtin GC.
++ # The agc.* tests also don't work in minimal model grades,
++ # because the collector doesn't scan the copied areas of the stacks.
++ ifneq "$(findstring il,$(GRADE))$(findstring mm,$(GRADE))" ""
++ PROGS0 = $(TYPECLASS_PROGS) $(OTHER_PROGS)
++ else
++ PROGS0 = $(AGC_PROGS) $(TYPECLASS_PROGS) $(OTHER_PROGS)
++ endif
++endif
++
++# Base grades `jump' and `fast'
++# cannot be used with `--no-special-preds'
++
++ifneq "$(findstring asm_,$(GRADE))" ""
++ PROGS1=$(NO_SPECIAL_PREDS_PROGS) $(PROGS0)
++else
++ ifneq "$(findstring jump,$(GRADE))" ""
++ PROGS1=$(PROGS0)
++ else
++ ifneq "$(findstring fast,$(GRADE))" ""
++ PROGS1=$(PROGS0)
++ else
++ PROGS1=$(NO_SPECIAL_PREDS_PROGS) $(PROGS0)
++ endif
++ endif
++endif
++
++ifneq "$(findstring mm,$(GRADE))" ""
++ PROGS2=$(PROGS1)
++else
++ PROGS2=$(PROGS1) $(TRAIL_PROGS)
++endif
++
++ifneq "$(filter java% il%,$(GRADE))$(findstring profdeep,$(GRADE))" ""
++ # We currently don't do any testing in grade java on this directory.
++ ifneq "$(findstring java,$(GRADE))$" ""
++ PROGS3 =
++ else
++ PROGS3 = $(PROGS2)
++ endif
++else
++ PROGS3 = $(PROGS2)
++endif
++
++ifeq "$(filter hl% java% il%,$(GRADE))" ""
++ PROGS4 = $(PROGS3) $(DEEP_PROF_CAPABLE_PROGS) $(LLDS_PROGS)
++else
++ PROGS4 = $(PROGS3)
++endif
++
++ifneq "$(findstring decldebug,$(GRADE))" ""
++ PROGS5 = $(PROGS4)
++else
++ PROGS5 = $(PROGS4) $(PAR_CONJ_PROGS)
++endif
++
++ifeq "$(filter java% il%,$(GRADE))" ""
++ OBJ_PROGS = $(PROGS5) $(RESERVE_TAG_PROGS)
++else
++ OBJ_PROGS = $(PROGS5)
++endif
++
++ifneq "$(findstring tsw,$(GRADE))$(findstring tsc,$(GRADE))" ""
++ PROGS = $(OBJ_PROGS)
++else
++ PROGS = $(OBJ_PROGS) $(IL_PROGS)
++endif
++
++# `mmc --make' doesn't expect subdirectories to appear in targets.
++ifeq ($(MMAKE_USE_MMC_MAKE),yes)
++OS_SUBDIR=
++ILS_SUBDIR=
++DLLS_SUBDIR=
++else
++OS_SUBDIR=$(os_subdir)
++ILS_SUBDIR=$(ils_subdir)
++DLLS_SUBDIR=$(dlls_subdir)
++endif
++
++
++ifeq ($(findstring il,$(GRADE)),il)
++ TARGET_OBJ_EXT=dll
++ TARGET_OBJ_SUBDIR=$(DLLS_SUBDIR)
++else
++ TARGET_OBJ_EXT=$(O)
++ TARGET_OBJ_SUBDIR=$(OS_SUBDIR)
++endif
++OBJS = $(OBJ_PROGS:%=$(TARGET_OBJ_SUBDIR)%.$(TARGET_OBJ_EXT)) \
++ $(IL_PROGS:%=$(ILS_SUBDIR)%.il)
++
++#-----------------------------------------------------------------------------#
++
++TESTS = $(PROGS)
++SUBDIRS=
++TESTS_DIR=..
++include $(TESTS_DIR)/Mmake.common
++
++# When compiling using the installed libraries, setting GRADEFLAGS may
++# may cause mgnuc to look for the `.mih' files for a non-installed grade.
++# test_mercury runs the tests using the installed libraries, so GRADEFLAGS
++# won't be set, but test_mercury runs the tests in at least one `.tr' grade
++# on all machines, so it isn't a problem.
++ifneq ($(origin WORKSPACE),undefined)
++GRADEFLAGS_TRAIL = --use-trail
++else
++GRADEFLAGS_TRAIL =
++endif
++# Make sure GRADEFLAGS_TRAIL is passed to `mmc --make'.
++export GRADEFLAGS_TRAIL
++
++# Module-specific options should go in Mercury.options so they
++# can be found by `mmc --make'.
++include Mercury.options
++
++$(OBJ_PROGS:%=%.runtest): %.runtest: %.$(TARGET_OBJ_EXT) ;
++
++$(IL_PROGS:%=%.runtest): %.runtest: %.il ;
++
++#-----------------------------------------------------------------------------#
++
++# XXX mmake should automatically handle these two dependencies.
++$(dates_subdir)intermod_nested_module2.date: \
++ $(date0s_subdir)intermod_nested_module2.date0
++$(dates_subdir)intermod_user_equality_nested2.date: \
++ $(date0s_subdir)intermod_user_equality_nested2.date0
++
++objs: $(OBJS)
++
++printtests:
++ @echo $(PROGS)
++
++printobjs:
++ @echo $(OBJS)
++
++clean_local:
++ rm -f *.err *.h
++
++#-----------------------------------------------------------------------------#