[m-dev.] for review: tests in samples directory.

Tyson Dowd trd at cs.mu.OZ.AU
Thu Feb 10 16:39:16 AEDT 2000


Hi,

This is a test suite for the samples.  Quite a lot of new functionality
has been added to the testing scripts and Makefiles.  The test cases
here can have command line arguments, allow you to create tests that
have a C main(), allow multi-module tests and so on.

Most of that flexibility will be required to add tests to the extras
directory too. 

Eventually we may want to run these tests as part of the nightly builds.

I've cut out some of the diff for space -- runtests is the same in
almost every directory.  (Arguably we should re-use the code, but that's
the way it works in the tests module at the moment).

===================================================================


Estimated hours taken: 15

Add a testing architecture for the samples directory.
The tests are in the "tests" subdirectory of the samples
directory.  This keeps them close to the samples, but not close
enough to clutter up the samples.
It also means you don't have to worry about the issue of exactly where
the developer has checked out the CVS tests module.

samples/c_interface/simpler_c_calls_mercury/Mmakefile:
	Update this example to generate a .a file 
	instead of directly using $(mercury_lib.os)

samples/tests/*:
	Test cases for all the samples.


Index: c_interface/simpler_c_calls_mercury/Mmakefile
===================================================================
RCS file: /home/mercury1/repository/mercury/samples/c_interface/simpler_c_calls_mercury/Mmakefile,v
retrieving revision 1.3
diff -u -r1.3 Mmakefile
--- c_interface/simpler_c_calls_mercury/Mmakefile	1999/09/16 04:46:20	1.3
+++ c_interface/simpler_c_calls_mercury/Mmakefile	2000/02/08 05:41:57
@@ -7,10 +7,12 @@
 depend: mercury_lib.depend
 all: c_main
 
-OBJECTS = c_main.o mercury_lib_init.o $(mercury_lib.os)
+OBJECTS = c_main.o mercury_lib_init.o
+LIBS = libmercury_lib
+LIBSLINK = libmercury_lib.a
 
-c_main: $(OBJECTS)
-	$(ML) $(MLFLAGS) -o c_main $(OBJECTS) $(MLLIBS)
+c_main: $(OBJECTS) $(LIBS)
+	$(ML) $(MLFLAGS) -o c_main $(OBJECTS) $(LIBSLINK)
 
 #-----------------------------------------------------------------------------#
 
@@ -26,7 +28,7 @@
 
 #-----------------------------------------------------------------------------#
 
-c_main.o: mercury_lib.h
+c_main.o: mercury_lib.h c_main.c
 
 # to make mercury_lib.h, just compile mercury_lib.m;
 # the Mercury compiler will create mercury_lib.h as a side-effect.
Index: tests/Mmake.common
===================================================================
RCS file: Mmake.common
diff -N Mmake.common
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmake.common	Fri Jan 28 14:16:19 2000
@@ -0,0 +1,96 @@
+#-----------------------------------------------------------------------------#
+
+#
+# Note: Mmake lets you override MCFLAGS for a particular file by setting
+# MCFLAGS-foo.  Similarly, you can override GRADEFLAGS for a particular
+# file by setting both GRADEFLAGS-foo and (for compiling the foo_init.c
+# file) GRADEFLAGS-foo_init.
+#
+
+# override this with `mmake HAVE_NUPROLOG=yes'
+# if you want to rebuild the `.exp' files.
+HAVE_NUPROLOG=no
+
+DIFF_OPTS=-c
+
+#-----------------------------------------------------------------------------#
+
+# .PRECIOUS: %.mod %.c %.o %_init.c %.no %.nu %_init.nl %_init.no
+
+%_init.c: Entry
+
+#
+# If there is a `.inp' file, then we pipe that in as the command's input.
+# If there is a `.arg' file, then we use it as the command's argument
+# string.
+# Then we run the command, with stdout and stderr both redirected to the 
+# `.out' file.  Finally if the command fails (returns non-zero exit status),
+# we print out the contents of the `.out' file.  We use `grep . $@ /dev/null'
+# to print out the contents, because that precedes each line of output with
+# the filename, which is helpful when running a parallel make.
+#
+%.out: %
+	{ [ -f $*.inp ] && cat $*.inp; } | \
+		./$< `{ [ -f $*.arg ] && cat $*.arg; }` > $@ 2>&1 || \
+		{ grep . $@ /dev/null; exit 1; }
+
+#
+# For some test cases, there is more than one valid output.
+# We try matching the output with the `.exp' file, and if that
+# doesn't succeed, and there is a `.exp2' file, then we try matching
+# against that too.  If neither succeed, the shorter of the two diffs
+# is put into the `.res' file.
+#
+%.res: %.exp %.out
+	-rm -f $@
+	-rm -f $*.res2
+	diff $(DIFF_OPTS) $*.exp $*.out > $@ || \
+		{ test -f $*.exp2 && \
+			if diff $(DIFF_OPTS) $*.exp2 $*.out > $*.res2; then \
+				cp $*.res2 $@; \
+			else \
+				{ test `wc -l < $@` -le `wc -l < $*.res2` || \
+					cp $*.res2 $@; } && false; \
+			fi; \
+		}
+
+#-----------------------------------------------------------------------------#
+
+clean_local: clean_out clean_res
+
+clean_mc: clean_c clean_o clean_out clean_res
+
+clean_out:
+	rm -f *.out
+
+clean_exp:
+	rm -f *.exp
+
+clean_res:
+	rm -f *.res
+	rm -f *.res2
+
+#
+# The `foo' targets make `foo_local' in the current directory before
+# recursively making `foo' in all subdirectories.  The recursive part
+# is handled in individual Mmakefiles.
+# 
+
+.PHONY: check_local dep_local depend_local all_local
+
+.PHONY: check_subdirs dep_subdirs depend_subdirs realclean_subdirs \
+        clean_subdirs all_subdirs
+
+check:          check_local check_subdirs
+dep:            dep_local dep_subdirs
+depend:         depend_local depend_subdirs
+realclean:      realclean_subdirs
+clean:          clean_subdirs
+all:            all_local all_subdirs
+
+SUBDIR_MMAKE = mmake \
+                GRADE='$(GRADE)' \
+                EXTRA_CFLAGS='$(EXTRA_CFLAGS)' \
+                EXTRA_MCFLAGS='$(EXTRA_MCFLAGS)'
+
+#-----------------------------------------------------------------------------#
Index: tests/Mmake.common.samples
===================================================================
RCS file: Mmake.common.samples
diff -N Mmake.common.samples
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmake.common.samples	Tue Feb  8 16:50:48 2000
@@ -0,0 +1,78 @@
+
+#-----------------------------------------------------------------------------#
+
+SOURCEDIR=$(DEPTH)/../$(THISDIR)
+
+%.m: $(SOURCEDIR)/%.m 
+	cp $(SOURCEDIR)/$@ .
+
+SOURCEDIR_EXTRA_FILES=	$(EXTRA_FILES:%=$(SOURCEDIR)/%)
+
+#-----------------------------------------------------------------------------#
+
+SRCS=	$(PROGS:%=%.m) 
+DEPS=	$(PROGS:%=%.dep)
+DEPENDS=$(PROGS:%=%.depend)
+OUTS=	$(PROGS:%=%.out) $(TESTS:%=%.out)
+RESS=	$(PROGS:%=%.res) $(TESTS:%=%.res)
+
+dep_local:	$(DEPS)
+depend_local:	extra_files $(SRCS) $(DEPENDS)
+check_local:	$(OUTS) $(RESS)
+all_local:	$(PROGS) $(TESTS)
+
+clean_local:	clean_srcs clean_extra_files
+
+clean_srcs:
+	rm -f $(SRCS)
+
+clean_extra_files:
+	rm -f $(EXTRA_FILES)
+
+extra_files: $(SOURCEDIR_EXTRA_FILES)
+	-{ [ -n "$(SOURCEDIR_EXTRA_FILES)" ] && cp $(SOURCEDIR_EXTRA_FILES) . || true ; }
+
+#-----------------------------------------------------------------------------#
+
+realclean:
+	rm -f $(SRCS) $(EXTRA_FILES)
+
+SUBDIRS = 
+
+ifeq ($(SUBDIRS),"")
+
+dep_subdirs:
+	for dir in $(SUBDIRS); do \
+		(cd $$dir && $(SUBDIR_MMAKE) dep) || exit 1; \
+	done
+
+depend_subdirs:
+	for dir in $(SUBDIRS); do \
+		(cd $$dir && $(SUBDIR_MMAKE) depend) || exit 1; \
+	done
+
+check_subdirs:
+	for dir in $(SUBDIRS); do \
+		(cd $$dir && $(SUBDIR_MMAKE) check) || exit 1; \
+	done
+
+all_subdirs:
+	for dir in $(SUBDIRS); do \
+		(cd $$dir && $(SUBDIR_MMAKE) all) || exit 1; \
+	done
+
+clean_subdirs:
+	for dir in $(SUBDIRS); do \
+		(cd $$dir && $(SUBDIR_MMAKE) clean) || exit 1; \
+	done
+
+realclean_subdirs:
+	for dir in $(SUBDIRS); do \
+		(cd $$dir && $(SUBDIR_MMAKE) realclean) || exit 1; \
+	done
+
+else
+
+endif
+
+#-----------------------------------------------------------------------------#
Index: tests/Mmakefile
===================================================================
RCS file: Mmakefile
diff -N Mmakefile
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmakefile	Thu Jan 27 12:11:58 2000
@@ -0,0 +1,37 @@
+SUBDIRS = benchmarks general hard_coded invalid misc_tests tabling term valid warnings
+NUPROLOG_SUBDIRS = benchmarks general
+
+main_target: check
+
+# Generate the .exp files that are used as a basis of comparison to check
+# the correctness of the code emitted by the Mercury compiler.
+exp:
+	for dir in $(NUPROLOG_SUBDIRS); do \
+		(cd $$dir && mmake $(MMAKEFLAGS) exp) || exit 1; \
+	done
+
+# run the tests
+check:
+	for dir in $(SUBDIRS); do \
+		(cd $$dir && mmake $(MMAKEFLAGS) check) || exit 1; \
+	done
+
+dep:
+	for dir in $(SUBDIRS); do \
+		(cd $$dir && mmake $(MMAKEFLAGS) dep) || exit 1; \
+	done
+
+depend:
+	for dir in $(SUBDIRS); do \
+		(cd $$dir && mmake $(MMAKEFLAGS) depend) || exit 1; \
+	done
+
+realclean:
+	for dir in $(SUBDIRS); do \
+		(cd $$dir && mmake $(MMAKEFLAGS) realclean) || exit 1; \
+	done
+
+clean:
+	for dir in $(SUBDIRS); do \
+		(cd $$dir && mmake $(MMAKEFLAGS) clean) || exit 1; \
+	done
Index: tests/generate_exp
===================================================================
RCS file: generate_exp
diff -N generate_exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ generate_exp	Thu Jan 27 12:12:32 2000
@@ -0,0 +1,15 @@
+#!/bin/sh
+# Generate the .exp files that are used as a basis of comparison to check
+# the correctness of the code emitted by the Mercury compiler.
+
+. ./handle_options
+
+root=`pwd`
+for dir in benchmarks general
+do
+	cd $dir
+	mmake $jfactor realclean
+	mmake $jfactor depend
+	mmake $jfactor HAVE_NUPROLOG=yes exp
+	cd $root
+done
Index: tests/handle_options
===================================================================
RCS file: handle_options
diff -N handle_options
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ handle_options	Thu Jan 27 12:12:32 2000
@@ -0,0 +1,84 @@
+usage="\
+Usage: $0 [options]
+Options:
+	-f <mcflags>, --flags <mcflags>
+		Pass EXTRA_MCFLAGS=<mcflags> as an option to \`mmake check'.
+	-m <mgnucflags>, --mgnucflags <mgnucflags>
+		Pass EXTRA_MGNUCFLAGS=<mgnucflags> as an option to \`mmake check'.
+	-c <cflags>, --cflags <cflags>
+		Pass EXTRA_CFLAGS=<cflags> as an option to \`mmake check'.
+	-l <mlflags>, --mlflags <mlflags>
+		Pass EXTRA_MLFLAGS=<mlflags> as an option to \`mmake check'.
+	-g <grade>, --grade <grade>
+		Pass GRADE=<grade> as an option to \`mmake check'.
+	-j <num-jobs>, --jobs <num-jobs>
+		Run using <num-jobs> different parallel processes.
+"
+
+jfactor=""
+flagsopt=""
+mgnucflagsopt=""
+cflagsopt=""
+mlflagsopt=""
+gradeopt=""
+fflag=""
+mflag=""
+cflag=""
+lflag=""
+gflag=""
+
+while [ $# -gt 0 ]; do
+	case "$1" in
+
+	-f|--flags)
+		fflag="-f '$2'"
+		flagsopt="EXTRA_MCFLAGS='$2'"
+		shift ;;
+
+	-m|--mgnucflags)
+		mflag="-m '$2'"
+		mgnucflagsopt="EXTRA_MGNUCFLAGS='$2'"
+		shift ;;
+
+	-c|--cflags)
+		cflag="-c '$2'"
+		cflagsopt="EXTRA_CFLAGS='$2'"
+		shift ;;
+
+	-l|--mlflags)
+		lflag="-l '$2'"
+		mlflagsopt="EXTRA_MLFLAGS='$2'"
+		shift ;;
+
+	-g|--grade)
+		gflag="-g $2"
+		gradeopt="GRADE=$2"
+		shift ;;
+
+	-j|--jobs)
+		jfactor="-j$2"; shift ;;
+	-j*)
+		jfactor="-j` expr $1 : '-j\(.*\)' `" ;;
+	--jobs*)
+		jfactor="--jobs` expr $1 : '--jobs\(.*\)' `" ;;
+
+	--)	
+		shift; break ;;
+	-*)
+		echo "$0: unknown option \`$1'" 1>&2
+		echo "$usage" 1>&2
+		exit 1 ;;
+	*)
+		break ;;
+	esac
+	shift
+done
+
+if [ $# -ne 0 ]; then
+	echo "$0: unexpected argument(s) \`$*'" 1>&2
+	echo "$usage" 1>&2
+	exit 1
+fi
+
+mmakeopts="$jfactor $flagsopt $mgnucflagsopt $cflagsopt $mlflagsopt $gradeopt"
+runtestopts="$jfactor $mflag $cflag $lflag $fflag $gflag"
Index: tests/runtests
===================================================================
RCS file: runtests
diff -N runtests
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ runtests	Thu Jan 27 12:11:37 2000
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+# Process command line options.
+. ./handle_options
+
+# Run the tests in each of the subdirectories.
+. ./subdir_runtests
+
+if test "$subdir_failures" = ""
+then
+	echo "all tests have succeeded"
+	echo "mmakeopts=$mmakeopts"
+	exit 0
+else
+	echo "some tests have failed in: $subdir_failures"
+	echo "mmakeopts=$mmakeopts"
+	exit 1
+fi
Index: tests/shutdown
===================================================================
RCS file: shutdown
diff -N shutdown
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ shutdown	Thu Jan 27 12:17:45 2000
@@ -0,0 +1,4 @@
+echo cleaning up the directory after the tests
+mmake $gradeopt $jfactor realclean_local > /dev/null 2>&1
+rm core > /dev/null 2>&1
+touch CLEAN
Index: tests/startup
===================================================================
RCS file: startup
diff -N startup
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ startup	Thu Jan 27 12:17:36 2000
@@ -0,0 +1,8 @@
+echo cleaning up the directory before the tests
+if ls -lt | head -2 | egrep CLEAN > /dev/null 2>&1
+then
+	rm -f CLEAN > /dev/null 2>&1
+else
+	rm -f CLEAN > /dev/null 2>&1
+	mmake $gradeopt -j realclean_local > /dev/null 2>&1
+fi
Index: tests/subdir_runtests
===================================================================
RCS file: subdir_runtests
diff -N subdir_runtests
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ subdir_runtests	Thu Jan 27 12:12:32 2000
@@ -0,0 +1,20 @@
+# Run the tests in each of the subdirectories.
+
+subdir_failures=""
+for dir in *
+do
+        if test -d $dir -a -x $dir/runtests
+        then
+                cd $dir
+                # we need to use `eval' here to get the quoting right in
+                # the case when $runtestopts contains embedded spaces
+                if eval ./runtests $runtestopts
+                then
+                        true
+                else
+                        subdir_failures="$subdir_failures $dir"
+                fi
+                cd ..
+        fi
+done
+
Index: tests/c_interface/Mmake.thisdir
===================================================================
RCS file: Mmake.thisdir
diff -N Mmake.thisdir
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmake.thisdir	Thu Jan 27 15:28:58 2000
@@ -0,0 +1,6 @@
+#-----------------------------------------------------------------------------#
+
+DEPTH=..
+THISDIR=c_interface
+
+#-----------------------------------------------------------------------------#
Index: tests/c_interface/Mmakefile
===================================================================
RCS file: Mmakefile
diff -N Mmakefile
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmakefile	Wed Feb  9 18:46:08 2000
@@ -0,0 +1,14 @@
+#-----------------------------------------------------------------------------#
+
+main_target: check
+
+PROGS=short_example 
+TESTS=
+
+EXTRA_FILES=
+
+include Mmake.thisdir
+include $(DEPTH)/Mmake.common
+include $(DEPTH)/Mmake.common.samples
+
+#-----------------------------------------------------------------------------#
Index: tests/c_interface/runtests
===================================================================
RCS file: runtests
diff -N runtests
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ runtests	Thu Jan 27 15:32:01 2000
@@ -0,0 +1,47 @@
+#!/bin/sh
+# Test whether the code generated by the Mercury compiler
+# is producing the expected output.
+# Return a status of 0 (true) if everything is all right, and 1 otherwise.
+
+. Mmake.thisdir
+
+. $DEPTH/handle_options
+
+# Run the tests in any subdirectories of this one.  If any of these
+# fail, we still perform the tests in this directory but return a
+# status of 1 regardless of the outcome.
+
+. $DEPTH/subdir_runtests
+
+if test "$subdir_failures" = ""
+then
+        subdir_status=0
+else
+        subdir_status=1
+fi
+
+# Now run all the tests in this directory.
+. $DEPTH/startup
+
+eval mmake $mmakeopts depend_local || exit 1
+eval mmake -k $mmakeopts check_local
+checkstatus=$?
+
+pwdir=`pwd`
+thisdirname=`basename $pwdir`
+
+cat *.res > .allres
+if test ! -s .allres -a "$checkstatus" = 0
+then
+	echo "the tests in the $thisdirname directory succeeded"
+	echo "mmakeopts=$mmakeopts"
+	rm -f .allres
+	. $DEPTH/shutdown
+	exit $subdir_status
+else
+	echo "the tests in the $thisdirname directory failed"
+	echo "mmakeopts=$mmakeopts"
+	echo "the differences are:"
+	cat .allres
+	exit 1
+fi
Index: tests/c_interface/short_example.exp
===================================================================
RCS file: short_example.exp
diff -N short_example.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ short_example.exp	Thu Jan 27 13:23:43 2000
@@ -0,0 +1,2 @@
+Hello, world
+
Index: tests/c_interface/c_calls_mercury/Mmake.thisdir
===================================================================
RCS file: Mmake.thisdir
diff -N Mmake.thisdir
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmake.thisdir	Thu Jan 27 13:52:57 2000
@@ -0,0 +1,6 @@
+#-----------------------------------------------------------------------------#
+
+DEPTH=../..
+THISDIR=c_interface/c_calls_mercury
+
+#-----------------------------------------------------------------------------#
Index: tests/c_interface/c_calls_mercury/Mmakefile
===================================================================
RCS file: Mmakefile
diff -N Mmakefile
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmakefile	Tue Feb  8 16:45:17 2000
@@ -0,0 +1,29 @@
+#-----------------------------------------------------------------------------#
+
+main_target: check
+
+PROGS=mercury_main
+TESTS=
+
+EXTRA_FILES=c_main.c c_main.h
+
+include Mmake.thisdir
+include $(DEPTH)/Mmake.common
+include $(DEPTH)/Mmake.common.samples
+
+#-----------------------------------------------------------------------------#
+
+include $(SOURCEDIR)/Mmakefile
+
+# Add a few dependencies so that it copies the source
+# files correctly.
+mercury_lib.o: mercury_lib.m
+mercury_main.depend: c_main_int.m
+c_main_int.o: c_main.h
+
+clean_local: clean_2
+
+clean_2:
+	rm -f *.h *.c *.m mercury_lib.*
+
+#-----------------------------------------------------------------------------#
Index: tests/c_interface/c_calls_mercury/mercury_main.exp
===================================================================
RCS file: mercury_main.exp
diff -N mercury_main.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ mercury_main.exp	Thu Jan 27 15:21:13 2000
@@ -0,0 +1,15 @@
+In Mercury main, about to call c_main...
+In c_main().
+foo_test(42) returns TRUE
+foo_test(43) returns FALSE
+one_foo(&value) gives value = 42
+foo_list() = [42, 53, 197]
+bar(100) = 101
+bar_test(100, 101) returns TRUE
+bar_test(100, 200) returns FALSE
+bar_inverse(&value, 101) gives value = 100
+bar_inverse(&value, 200) gives value = 199
+baz(1, &value) returns TRUE with value = 9
+baz(100, &value) returns FALSE
+Returning from c_main()...
+Back in Mercury main.
Index: tests/c_interface/cplusplus_calls_mercury/Mmake.thisdir
===================================================================
RCS file: Mmake.thisdir
diff -N Mmake.thisdir
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmake.thisdir	Thu Jan 27 15:37:01 2000
@@ -0,0 +1,6 @@
+#-----------------------------------------------------------------------------#
+
+DEPTH=../..
+THISDIR=c_interface/cplusplus_calls_mercury
+
+#-----------------------------------------------------------------------------#
Index: tests/c_interface/cplusplus_calls_mercury/Mmakefile
===================================================================
RCS file: Mmakefile
diff -N Mmakefile
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmakefile	Tue Feb  8 16:51:37 2000
@@ -0,0 +1,29 @@
+#-----------------------------------------------------------------------------#
+
+main_target: check
+
+PROGS=mercury_main
+TESTS=
+
+EXTRA_FILES=cpp_main.cc cpp_main.h
+
+include Mmake.thisdir
+include $(DEPTH)/Mmake.common
+include $(DEPTH)/Mmake.common.samples
+
+#-----------------------------------------------------------------------------#
+
+include $(SOURCEDIR)/Mmakefile
+
+# Add a few dependencies so that it copies the source
+# files correctly.
+mercury_lib.o: mercury_lib.m
+mercury_main.depend: cpp_main_int.m
+cpp_main_int.o: cpp_main.h
+
+clean_local: clean_2
+
+clean_2:
+	rm -f *.m mercury_lib.*
+
+#-----------------------------------------------------------------------------#
Index: tests/c_interface/cplusplus_calls_mercury/mercury_main.exp
===================================================================
RCS file: mercury_main.exp
diff -N mercury_main.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ mercury_main.exp	Thu Jan 27 15:38:24 2000
@@ -0,0 +1,15 @@
+In Mercury main, about to call cpp_main...
+In cpp_main().
+foo_test(42) returns TRUE
+foo_test(43) returns FALSE
+one_foo(&value) gives value = 42
+foo_list() = [42, 53, 197]
+bar(100) = 101
+bar_test(100, 101) returns TRUE
+bar_test(100, 200) returns FALSE
+bar_inverse(&value, 101) gives value = 100
+bar_inverse(&value, 200) gives value = 199
+baz(1, &value) returns TRUE with value = 9
+baz(100, &value) returns FALSE
+Returning from cpp_main()...
+Back in Mercury main.
Index: tests/c_interface/mercury_calls_c/Mmake.thisdir
===================================================================
RCS file: Mmake.thisdir
diff -N Mmake.thisdir
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmake.thisdir	Tue Feb  8 20:31:10 2000
@@ -0,0 +1,6 @@
+#-----------------------------------------------------------------------------#
+
+DEPTH=../..
+THISDIR=c_interface/mercury_calls_c
+
+#-----------------------------------------------------------------------------#
Index: tests/c_interface/mercury_calls_c/Mmakefile
===================================================================
RCS file: Mmakefile
diff -N Mmakefile
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmakefile	Tue Feb  8 20:32:17 2000
@@ -0,0 +1,27 @@
+#-----------------------------------------------------------------------------#
+
+main_target: check
+
+PROGS=mercury_main
+TESTS=
+
+EXTRA_FILES=c_main.c c_main.h
+
+include Mmake.thisdir
+include $(DEPTH)/Mmake.common
+include $(DEPTH)/Mmake.common.samples
+
+#-----------------------------------------------------------------------------#
+
+include $(SOURCEDIR)/Mmakefile
+
+# Add a few dependencies so that it copies the source
+# files correctly.
+mercury_main.depend: c_main_int.m
+
+clean_local: clean_2
+
+clean_2:
+	rm -f *.m 
+
+#-----------------------------------------------------------------------------#
Index: tests/c_interface/mercury_calls_c/mercury_main.exp
===================================================================
RCS file: mercury_main.exp
diff -N mercury_main.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ mercury_main.exp	Tue Feb  8 20:32:34 2000
@@ -0,0 +1,3 @@
+In Mercury main, about to call c_main...
+In c_main().
+Back in Mercury main.
Index: tests/c_interface/mercury_calls_cplusplus/Mmake.thisdir
===================================================================
RCS file: Mmake.thisdir
diff -N Mmake.thisdir
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmake.thisdir	Tue Feb  8 20:33:29 2000
@@ -0,0 +1,6 @@
+#-----------------------------------------------------------------------------#
+
+DEPTH=../..
+THISDIR=c_interface/mercury_calls_cplusplus
+
+#-----------------------------------------------------------------------------#
Index: tests/c_interface/mercury_calls_cplusplus/Mmakefile
===================================================================
RCS file: Mmakefile
diff -N Mmakefile
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmakefile	Tue Feb  8 20:33:19 2000
@@ -0,0 +1,27 @@
+#-----------------------------------------------------------------------------#
+
+main_target: check
+
+PROGS=mercury_main
+TESTS=
+
+EXTRA_FILES=cpp_main.c cpp_main.h
+
+include Mmake.thisdir
+include $(DEPTH)/Mmake.common
+include $(DEPTH)/Mmake.common.samples
+
+#-----------------------------------------------------------------------------#
+
+include $(SOURCEDIR)/Mmakefile
+
+# Add a few dependencies so that it copies the source
+# files correctly.
+mercury_main.depend: cpp_main_int.m
+
+clean_local: clean_2
+
+clean_2:
+	rm -f *.m 
+
+#-----------------------------------------------------------------------------#
Index: tests/c_interface/mercury_calls_cplusplus/mercury_main.exp
===================================================================
RCS file: mercury_main.exp
diff -N mercury_main.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ mercury_main.exp	Tue Feb  8 20:33:48 2000
@@ -0,0 +1,3 @@
+In Mercury main, about to call cpp_main...
+In cpp_main().
+Back in Mercury main.
Index: tests/c_interface/mercury_calls_fortran/Mmake.thisdir
===================================================================
RCS file: Mmake.thisdir
diff -N Mmake.thisdir
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmake.thisdir	Thu Jan 27 15:39:23 2000
@@ -0,0 +1,6 @@
+#-----------------------------------------------------------------------------#
+
+DEPTH=../..
+THISDIR=c_interface/mercury_calls_fortran
+
+#-----------------------------------------------------------------------------#
Index: tests/c_interface/mercury_calls_fortran/Mmakefile
===================================================================
RCS file: Mmakefile
diff -N Mmakefile
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmakefile	Tue Feb  8 16:51:42 2000
@@ -0,0 +1,28 @@
+#-----------------------------------------------------------------------------#
+
+main_target: check
+
+PROGS=mercury_main
+TESTS=
+
+EXTRA_FILES=fortran_main.f
+
+include Mmake.thisdir
+include $(DEPTH)/Mmake.common
+include $(DEPTH)/Mmake.common.samples
+
+#-----------------------------------------------------------------------------#
+
+include $(SOURCEDIR)/Mmakefile
+
+# Add a few dependencies so that it copies the source
+# files correctly.
+mercury_main.depend: fortran_main_int.m
+#fortran_main_int.o: fortran_main.f
+
+clean_local: clean_2
+
+clean_2:
+	rm -f *.m 
+
+#-----------------------------------------------------------------------------#
Index: tests/c_interface/mercury_calls_fortran/mercury_main.exp
===================================================================
RCS file: mercury_main.exp
diff -N mercury_main.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ mercury_main.exp	Thu Jan 27 15:48:08 2000
@@ -0,0 +1,3 @@
+In Mercury main, about to call fortran_main...
+ In FORTRAN_MAIN
+Back in Mercury main.
Index: tests/c_interface/simpler_c_calls_mercury/Mmake.thisdir
===================================================================
RCS file: Mmake.thisdir
diff -N Mmake.thisdir
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmake.thisdir	Thu Jan 27 16:08:08 2000
@@ -0,0 +1,6 @@
+#-----------------------------------------------------------------------------#
+
+DEPTH=../..
+THISDIR=c_interface/simpler_c_calls_mercury
+
+#-----------------------------------------------------------------------------#
Index: tests/c_interface/simpler_c_calls_mercury/Mmakefile
===================================================================
RCS file: Mmakefile
diff -N Mmakefile
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmakefile	Tue Feb  8 16:51:48 2000
@@ -0,0 +1,27 @@
+#-----------------------------------------------------------------------------#
+#
+main_target: check
+
+PROGS=
+TESTS=c_main
+
+EXTRA_FILES=c_main.c 
+
+include Mmake.thisdir
+include $(DEPTH)/Mmake.common
+include $(DEPTH)/Mmake.common.samples
+
+#-----------------------------------------------------------------------------#
+
+depend_local: mercury_lib.depend
+
+mercury_lib.depend: mercury_lib.m 
+
+include $(SOURCEDIR)/Mmakefile
+
+clean_local: clean_2
+
+clean_2:
+	rm -f *.h *.c *.m mercury_lib.*
+
+#-----------------------------------------------------------------------------#
Index: tests/c_interface/simpler_c_calls_mercury/c_main.exp
===================================================================
RCS file: c_main.exp
diff -N c_main.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ c_main.exp	Tue Feb  8 16:49:59 2000
@@ -0,0 +1,13 @@
+In main().
+foo_test(42) returns TRUE
+foo_test(43) returns FALSE
+one_foo(&value) gives value = 42
+foo_list() = [42, 53, 197]
+bar(100) = 101
+bar_test(100, 101) returns TRUE
+bar_test(100, 200) returns FALSE
+bar_inverse(&value, 101) gives value = 100
+bar_inverse(&value, 200) gives value = 199
+baz(1, &value) returns TRUE with value = 9
+baz(100, &value) returns FALSE
+Returning from main().
Index: tests/c_interface/simpler_cplusplus_calls_mercury/Mmake.thisdir
===================================================================
RCS file: Mmake.thisdir
diff -N Mmake.thisdir
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmake.thisdir	Tue Feb  8 20:34:56 2000
@@ -0,0 +1,6 @@
+#-----------------------------------------------------------------------------#
+
+DEPTH=../..
+THISDIR=c_interface/simpler_cplusplus_calls_mercury
+
+#-----------------------------------------------------------------------------#
Index: tests/c_interface/simpler_cplusplus_calls_mercury/Mmakefile
===================================================================
RCS file: Mmakefile
diff -N Mmakefile
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmakefile	Tue Feb  8 20:35:41 2000
@@ -0,0 +1,27 @@
+#-----------------------------------------------------------------------------#
+#
+main_target: check
+
+PROGS=
+TESTS=cpp_main
+
+EXTRA_FILES=cpp_main.cc
+
+include Mmake.thisdir
+include $(DEPTH)/Mmake.common
+include $(DEPTH)/Mmake.common.samples
+
+#-----------------------------------------------------------------------------#
+
+depend_local: mercury_lib.depend
+
+mercury_lib.depend: mercury_lib.m 
+
+include $(SOURCEDIR)/Mmakefile
+
+clean_local: clean_2
+
+clean_2:
+	rm -f *.h *.c *.m mercury_lib.*
+
+#-----------------------------------------------------------------------------#
Index: tests/c_interface/simpler_cplusplus_calls_mercury/cpp_main.exp
===================================================================
RCS file: cpp_main.exp
diff -N cpp_main.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ cpp_main.exp	Tue Feb  8 20:36:05 2000
@@ -0,0 +1,13 @@
+In main().
+foo_test(42) returns TRUE
+foo_test(43) returns FALSE
+one_foo(&value) gives value = 42
+foo_list() = [42, 53, 197]
+bar(100) = 101
+bar_test(100, 101) returns TRUE
+bar_test(100, 200) returns FALSE
+bar_inverse(&value, 101) gives value = 100
+bar_inverse(&value, 200) gives value = 199
+baz(1, &value) returns TRUE with value = 9
+baz(100, &value) returns FALSE
+Returning from main().
Index: tests/diff/Mmake.thisdir
===================================================================
RCS file: Mmake.thisdir
diff -N Mmake.thisdir
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmake.thisdir	Tue Feb  1 17:20:42 2000
@@ -0,0 +1,6 @@
+#-----------------------------------------------------------------------------#
+
+DEPTH=..
+THISDIR=diff
+
+#-----------------------------------------------------------------------------#
Index: tests/diff/Mmakefile
===================================================================
RCS file: Mmakefile
diff -N Mmakefile
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmakefile	Wed Feb  9 18:46:16 2000
@@ -0,0 +1,16 @@
+#-----------------------------------------------------------------------------#
+
+main_target: check
+
+PROGS=diff 
+TESTS=
+
+EXTRA_FILES=diff_out.m difftype.m file.m filter.m globals.m \
+		match.m myers.m options.m
+
+include Mmake.thisdir
+include $(DEPTH)/Mmake.common
+include $(DEPTH)/Mmake.common.samples
+
+
+#-----------------------------------------------------------------------------#
Index: tests/diff/diff.arg
===================================================================
RCS file: diff.arg
diff -N diff.arg
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ diff.arg	Tue Feb  1 17:46:24 2000
@@ -0,0 +1 @@
+-u diff.test.1 diff.test.2
Index: tests/diff/diff.exp
===================================================================
RCS file: diff.exp
diff -N diff.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ diff.exp	Tue Feb  1 17:50:58 2000
@@ -0,0 +1,10 @@
+--- diff.test.1
++++ diff.test.2
+@@ -1,5 +1,7 @@
+ Hello
+ World
+ 
++How interesting an additional line
++
+ This
+ is a test
Index: tests/diff/diff.test.1
===================================================================
RCS file: diff.test.1
diff -N diff.test.1
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ diff.test.1	Tue Feb  1 17:44:51 2000
@@ -0,0 +1,5 @@
+Hello
+World
+
+This
+is a test
Index: tests/diff/diff.test.2
===================================================================
RCS file: diff.test.2
diff -N diff.test.2
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ diff.test.2	Tue Feb  1 17:45:29 2000
@@ -0,0 +1,7 @@
+Hello
+World
+
+How interesting an additional line
+
+This
+is a test
Index: tests/muz/Mmake.thisdir
===================================================================
RCS file: Mmake.thisdir
diff -N Mmake.thisdir
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmake.thisdir	Tue Feb  1 18:14:11 2000
@@ -0,0 +1,6 @@
+#-----------------------------------------------------------------------------#
+
+DEPTH=..
+THISDIR=muz
+
+#-----------------------------------------------------------------------------#
Index: tests/muz/Mmakefile
===================================================================
RCS file: Mmakefile
diff -N Mmakefile
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmakefile	Wed Feb  9 18:46:25 2000
@@ -0,0 +1,17 @@
+#-----------------------------------------------------------------------------#
+
+main_target: check
+
+PROGS=muz 
+TESTS=
+
+EXTRA_FILES=dict.m example.tex example1.tex higher_order.m muz.m	\
+	toolkit.tex typecheck.m word.m zabstract.m zlogic.m zparser.m	\
+	ztoken.m ztoken_io.m ztype.m ztype_op.m
+
+include Mmake.thisdir
+include $(DEPTH)/Mmake.common
+include $(DEPTH)/Mmake.common.samples
+
+
+#-----------------------------------------------------------------------------#
Index: tests/muz/muz.arg
===================================================================
RCS file: muz.arg
diff -N muz.arg
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ muz.arg	Tue Feb  1 20:38:46 2000
@@ -0,0 +1 @@
+-t toolkit.tex example.tex
Index: tests/muz/muz.exp
===================================================================
RCS file: muz.exp
diff -N muz.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ muz.exp	Tue Feb  1 20:39:11 2000
@@ -0,0 +1 @@
+No errors detected.
Index: tests/rot13/Mmake.thisdir
===================================================================
RCS file: Mmake.thisdir
diff -N Mmake.thisdir
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmake.thisdir	Wed Feb  9 18:49:01 2000
@@ -0,0 +1,6 @@
+#-----------------------------------------------------------------------------#
+
+DEPTH=..
+THISDIR=rot13
+
+#-----------------------------------------------------------------------------#
Index: tests/rot13/Mmakefile
===================================================================
RCS file: Mmakefile
diff -N Mmakefile
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmakefile	Wed Feb  9 18:48:54 2000
@@ -0,0 +1,17 @@
+#-----------------------------------------------------------------------------#
+
+main_target: check
+
+PROGS=  rot13_concise \
+	rot13_verbose \
+	rot13_gustavo \
+	rot13_juergen 
+TESTS=
+
+MCFLAGS-rot13_concise=--infer-all
+
+include Mmake.thisdir
+include $(DEPTH)/Mmake.common
+include $(DEPTH)/Mmake.common.samples
+
+#-----------------------------------------------------------------------------#
Index: tests/rot13/rot13_concise.exp
===================================================================
RCS file: rot13_concise.exp
diff -N rot13_concise.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ rot13_concise.exp	Thu Jan 27 14:19:23 2000
@@ -0,0 +1,2 @@
+N yvggyr grfg bs gur ebg13 cebtenz.
+A little test of the rot13 program.
Index: tests/rot13/rot13_concise.inp
===================================================================
RCS file: rot13_concise.inp
diff -N rot13_concise.inp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ rot13_concise.inp	Thu Jan 27 14:19:09 2000
@@ -0,0 +1,2 @@
+A little test of the rot13 program.
+N yvggyr grfg bs gur ebg13 cebtenz.
Index: tests/rot13/rot13_gustavo.exp
===================================================================
RCS file: rot13_gustavo.exp
diff -N rot13_gustavo.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ rot13_gustavo.exp	Thu Jan 27 14:19:26 2000
@@ -0,0 +1,2 @@
+N yvggyr grfg bs gur ebg13 cebtenz.
+A little test of the rot13 program.
Index: tests/rot13/rot13_gustavo.inp
===================================================================
RCS file: rot13_gustavo.inp
diff -N rot13_gustavo.inp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ rot13_gustavo.inp	Thu Jan 27 14:19:13 2000
@@ -0,0 +1,2 @@
+A little test of the rot13 program.
+N yvggyr grfg bs gur ebg13 cebtenz.
Index: tests/rot13/rot13_juergen.exp
===================================================================
RCS file: rot13_juergen.exp
diff -N rot13_juergen.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ rot13_juergen.exp	Thu Jan 27 14:19:28 2000
@@ -0,0 +1,2 @@
+N yvggyr grfg bs gur ebg13 cebtenz.
+A little test of the rot13 program.
Index: tests/rot13/rot13_juergen.inp
===================================================================
RCS file: rot13_juergen.inp
diff -N rot13_juergen.inp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ rot13_juergen.inp	Thu Jan 27 14:19:16 2000
@@ -0,0 +1,2 @@
+A little test of the rot13 program.
+N yvggyr grfg bs gur ebg13 cebtenz.
Index: tests/rot13/rot13_verbose.exp
===================================================================
RCS file: rot13_verbose.exp
diff -N rot13_verbose.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ rot13_verbose.exp	Thu Jan 27 14:18:31 2000
@@ -0,0 +1,2 @@
+N yvggyr grfg bs gur ebg13 cebtenz.
+A little test of the rot13 program.
Index: tests/rot13/rot13_verbose.inp
===================================================================
RCS file: rot13_verbose.inp
diff -N rot13_verbose.inp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ rot13_verbose.inp	Thu Jan 27 14:18:14 2000
@@ -0,0 +1,2 @@
+A little test of the rot13 program.
+N yvggyr grfg bs gur ebg13 cebtenz.
Index: tests/solutions/Mmake.thisdir
===================================================================
RCS file: Mmake.thisdir
diff -N Mmake.thisdir
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmake.thisdir	Wed Feb  2 14:39:18 2000
@@ -0,0 +1,6 @@
+#-----------------------------------------------------------------------------#
+
+DEPTH=..
+THISDIR=solutions
+
+#-----------------------------------------------------------------------------#
Index: tests/solutions/Mmakefile
===================================================================
RCS file: Mmakefile
diff -N Mmakefile
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmakefile	Wed Feb  9 18:46:45 2000
@@ -0,0 +1,17 @@
+#-----------------------------------------------------------------------------#
+
+main_target: check
+
+PROGS=  all_solutions	\
+	one_solution	\
+	some_solutions
+TESTS=
+
+EXTRA_FILES=
+
+include Mmake.thisdir
+include $(DEPTH)/Mmake.common
+include $(DEPTH)/Mmake.common.samples
+
+
+#-----------------------------------------------------------------------------#
Index: tests/solutions/all_solutions.exp
===================================================================
RCS file: all_solutions.exp
diff -N all_solutions.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ all_solutions.exp	Wed Feb  2 14:39:44 2000
@@ -0,0 +1,2 @@
+Hello again, world
+Hello, world
Index: tests/solutions/one_solution.exp
===================================================================
RCS file: one_solution.exp
diff -N one_solution.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ one_solution.exp	Wed Feb  2 14:40:35 2000
@@ -0,0 +1 @@
+Hello, world
Index: tests/solutions/some_solutions.exp
===================================================================
RCS file: some_solutions.exp
diff -N some_solutions.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ some_solutions.exp	Wed Feb  2 14:40:27 2000
@@ -0,0 +1,4 @@
+Hello, world
Index: tests/solutions/some_solutions.inp
===================================================================
RCS file: some_solutions.inp
diff -N some_solutions.inp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ some_solutions.inp	Wed Feb  2 14:40:17 2000
@@ -0,0 +1,3 @@
+y
+y
+y
Index: tests/toplevel/Mmake.thisdir
===================================================================
RCS file: Mmake.thisdir
diff -N Mmake.thisdir
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmake.thisdir	Fri Jan 28 16:08:31 2000
@@ -0,0 +1,6 @@
+#-----------------------------------------------------------------------------#
+
+DEPTH=..
+THISDIR=.
+
+#-----------------------------------------------------------------------------#
Index: tests/toplevel/Mmakefile
===================================================================
RCS file: Mmakefile
diff -N Mmakefile
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ Mmakefile	Wed Feb  9 18:48:33 2000
@@ -0,0 +1,20 @@
+#-----------------------------------------------------------------------------#
+
+main_target: check
+
+PROGS=	calculator \
+	cat \
+	e \
+	eliza \
+	expand_terms \
+	hello \
+	interpreter \
+	sort \
+	ultra_sub 
+TESTS=
+
+include Mmake.thisdir
+include $(DEPTH)/Mmake.common
+include $(DEPTH)/Mmake.common.samples
+
+#-----------------------------------------------------------------------------#
Index: tests/toplevel/calculator.exp
===================================================================
RCS file: calculator.exp
diff -N calculator.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ calculator.exp	Fri Jan 28 13:57:00 2000
@@ -0,0 +1,2 @@
+calculator> 7
+calculator> EOF
Index: tests/toplevel/calculator.inp
===================================================================
RCS file: calculator.inp
diff -N calculator.inp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ calculator.inp	Tue Feb  1 16:09:53 2000
@@ -0,0 +1 @@
+3+4
Index: tests/toplevel/cat.exp
===================================================================
RCS file: cat.exp
diff -N cat.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ cat.exp	Fri Jan 28 13:46:09 2000
@@ -0,0 +1,2 @@
+A test of
+the cat program.
Index: tests/toplevel/cat.inp
===================================================================
RCS file: cat.inp
diff -N cat.inp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ cat.inp	Fri Jan 28 13:46:04 2000
@@ -0,0 +1,2 @@
+A test of
+the cat program.
Index: tests/toplevel/e.exp
===================================================================
RCS file: e.exp
diff -N e.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ e.exp	Fri Jan 28 13:46:28 2000
@@ -0,0 +1,13 @@
+2.7182818284590452353602874713526624977572470936999595749669676277240766303535
+475945713821785251664274274663919320030599218174135966290435729003342952605956
+307381323286279434907632338298807531952510190115738341879307021540891499348841
+675092447614606680822648001684774118537423454424371075390777449920695517027618
+386062613313845830007520449338265602976067371132007093287091274437470472306969
+772093101416928368190255151086574637721112523897844250569536967707854499699679
+468644549059879316368892300987931277361782154249992295763514822082698951936680
+331825288693984964651058209392398294887933203625094431173012381970684161403970
+198376793206832823764648042953118023287825098194558153017567173613320698112509
+961818815930416903515988885193458072738667385894228792284998920868058257492796
+104841984443634632449684875602336248270419786232090021609902353043699418491463
+140934317381436405462531520961836908887070167683964243781405927145635490613031
+072085103837505101157477041718986106873969655212671546889570350354
Index: tests/toplevel/eliza.exp
===================================================================
RCS file: eliza.exp
diff -N eliza.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ eliza.exp	Fri Jan 28 14:19:56 2000
@@ -0,0 +1,12 @@
+
+Hi!  I'm Eliza.  Please tell me your problem.
+
+> 
+Don't you really know mercury?
+
+> 
+You seem quite positive.
+
+> 
+
+Goodbye.
Index: tests/toplevel/eliza.inp
===================================================================
RCS file: eliza.inp
diff -N eliza.inp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ eliza.inp	Fri Jan 28 13:47:24 2000
@@ -0,0 +1,2 @@
+I don't know mercury
+yes
Index: tests/toplevel/expand_terms.exp
===================================================================
RCS file: expand_terms.exp
diff -N expand_terms.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ expand_terms.exp	Fri Jan 28 14:21:15 2000
@@ -0,0 +1 @@
+A :- B.
Index: tests/toplevel/expand_terms.inp
===================================================================
RCS file: expand_terms.inp
diff -N expand_terms.inp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ expand_terms.inp	Fri Jan 28 14:20:57 2000
@@ -0,0 +1 @@
+A <=> B.
Index: tests/toplevel/hello.exp
===================================================================
RCS file: hello.exp
diff -N hello.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ hello.exp	Fri Jan 28 13:47:51 2000
@@ -0,0 +1 @@
+Hello, world
Index: tests/toplevel/interpreter.arg
===================================================================
RCS file: interpreter.arg
diff -N interpreter.arg
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ interpreter.arg	Fri Jan 28 14:29:47 2000
@@ -0,0 +1 @@
+interpreter_test.pl
Index: tests/toplevel/interpreter.exp
===================================================================
RCS file: interpreter.exp
diff -N interpreter.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ interpreter.exp	Fri Jan 28 15:28:36 2000
@@ -0,0 +1,7 @@
+Pure Prolog Interpreter.
+
+Consulting file `interpreter_test.pl'...
+?- sibling(mary, george).
+Yes.
+?- No.
+?- 
\ No newline at end of file
Index: tests/toplevel/interpreter.inp
===================================================================
RCS file: interpreter.inp
diff -N interpreter.inp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ interpreter.inp	Fri Jan 28 14:29:38 2000
@@ -0,0 +1,2 @@
+sibling(mary, george).
+sibling(jane, george).
Index: tests/toplevel/interpreter_test.pl
===================================================================
RCS file: interpreter_test.pl
diff -N interpreter_test.pl
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ interpreter_test.pl	Fri Jan 28 14:28:37 2000
@@ -0,0 +1,16 @@
+
+father(john, mary).
+father(john, andrew).
+
+mother(jane, mary).
+mother(jane, andrew).
+mother(jane, george).
+
+sibling(X, Y) :-
+	( 
+		father(F, X), father(F, Y)
+	;
+		mother(M, X), mother(M, Y)
+	). 
+
+
Index: tests/toplevel/sort.exp
===================================================================
RCS file: sort.exp
diff -N sort.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ sort.exp	Fri Jan 28 14:21:21 2000
@@ -0,0 +1,4 @@
+a
+b
+c
+d
Index: tests/toplevel/sort.inp
===================================================================
RCS file: sort.inp
diff -N sort.inp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ sort.inp	Fri Jan 28 13:49:03 2000
@@ -0,0 +1,4 @@
+b
+c
+a
+d
Index: tests/toplevel/ultra_sub.arg
===================================================================
RCS file: ultra_sub.arg
diff -N ultra_sub.arg
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ ultra_sub.arg	Fri Jan 28 14:01:25 2000
@@ -0,0 +1 @@
+Xoo Xay foo bar baz
Index: tests/toplevel/ultra_sub.exp
===================================================================
RCS file: ultra_sub.exp
diff -N ultra_sub.exp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ ultra_sub.exp	Fri Jan 28 14:39:22 2000
@@ -0,0 +1 @@
+fay
Index: tests/toplevel/ultra_sub.inp
===================================================================
RCS file: ultra_sub.inp
diff -N ultra_sub.inp
--- /dev/null	Thu Mar  4 04:20:11 1999
+++ ultra_sub.inp	Fri Jan 28 13:49:19 2000
@@ -0,0 +1 @@
+foo bar baz


-- 
       Tyson Dowd           # 
                            #  Surreal humour isn't eveyone's cup of fur.
     trd at cs.mu.oz.au        # 
http://www.cs.mu.oz.au/~trd #
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------



More information about the developers mailing list