things to do manually before release

        See whether the documentation looks okay.  Do this both without and with
	installing a fresh copy of FirstPackage and restarting.  Make sure the example
	output is there.

		i1 : loadPackage "FirstPackage"

		o1 = FirstPackage

		o1 : Package

		i2 : help firstFunction

		o2 = firstFunction
		     *************

		     Description
		     ===========

		     Here we show an example.

		     +--------------------+
		     |i1 : firstFunction 1|
		     |                    |
		     |o1 = Hello World!   |
		     +--------------------+
		     |i2 : firstFunction 0|
		     |                    |
		     |o2 = D'oh!          |
		     +--------------------+

		     Ways to use firstFunction :
		     ===========================

		       * "firstFunction(ZZ)" -- a silly first function

		o2 : DIV

        see whether C-c works in emacs and in a terminal, both for M2 and its subjobs:

		i1 : while true do 1
		  C-c C-cstdio:1:15:(3): error: interrupted

		i12 : run "sleep 10"
		  C-c C-c			<-- interrupted immediately -->
		o12 = 2				<-- right answer

		i2 : run "sleep 10"
		  C-c C-c			<-- too much delay -->
		o2 = 0				<-- wrong answer


		i3 : uninstallPackage "Schubert2"; installPackage "Schubert2"
			...
						<-- wait for it to start running examples:
		--making example results for Riemann-Roch on a curve in file /Users/dan/Library/Application Support/Macaulay2/local/share/doc/Macaulay2/Schubert2/example-output/___Riemann-__Roch_spon_spa_spcurve.out
		ulimit -t 700; ulimit -s 8192; cd /var/folders/40/dy88l5qd361391m_3v2m51bm0000gn/T/M2-69452-0/9-rundir/; /Users/dan/src/M2/github/Macaulay2-M2-clone/M2/BUILD/dan/builds.tmp/mac64.production/M2 --silent --print-width 77 --stop --int --no-readline -q -e 'loadPackage("Schubert2", Reload => true, FileName => "/Users/dan/src/M2/github/Macaulay2-M2-clone/M2/Macaulay2/packages/Schubert2.m2")' <"/var/folders/40/dy88l5qd361391m_3v2m51bm0000gn/T/M2-69452-0/4___Riemann-__Roch_spon_spa_spcurve.m2" >>"/Users/dan/Library/Application Support/Macaulay2/local/share/doc/Macaulay2/Schubert2/example-output/___Riemann-__Roch_spon_spa_spcurve.errors" 2>&1
		  C-c C-c			<-- then interrupt it:
		  				<-- expect it to stop immediately with something like this:
		/Users/dan/Library/Application Support/Macaulay2/local/share/doc/Macaulay2/Schubert2/example-output/___Riemann-__Roch_spon_spa_spcurve.errors:0:1: (output file) error: Macaulay2 exited with return code 2
		/var/folders/40/dy88l5qd361391m_3v2m51bm0000gn/T/M2-69452-0/4___Riemann-__Roch_spon_spa_spcurve.m2:0:1: (input file)
		stdio:4:1:(3): error: subprocess interrupted

	see whether the "--int" command line option works to suppress SIGINT handling:

 		   <-- see whether you can interrupt M2 while it's waiting for input:

		   $ M2 --stop --int
		   i1 : C-c C-c
		   $ echo $?
		   130				<-- right answer

 		   <-- see whether you can interrupt M2 while it's running:

		   $ M2 --stop --int -e 'print hi ; while true do 1'
		     				<-- wait for "hi" to be printed
		   C-c C-c			<-- interrupted immediately -->
		   $ echo $?
		   130				<-- right answer

        see 0-final-check-interactive-input-behaviour if changes have been made to top level user interaction

	see whether you can interrupt the printing out the following commands, e.g., in emacs with CTRL-C CTRL-C:
	    		<< 1..50000
			1..50000

	run a benchmark and compare to previous versions to make sure optimization is on:
		i1 : benchmark "scan(0..10000,i->i^3)"
		loadPackage "Benchmark"
		runBenchmarks

	fix bugs

	add test files

	run ldd M2 or otool -L M2 in ...your-build-tree.../StagingArea/x86_64-MacOS-10.5/bin/
		 to see that we don't depend on any of our own sharable libraries (yet),
		 or on any libraries installed in nonstandard locations, such as in /sw/lib
	    do the same in ...your-build-tree.../StagingArea/x86_64-MacOS-10.5/libexec/Macaulay2/x86_64-MacOS-10.5/
		 for all the programs we compile and distribute

	check that readline and history and name completion work in an xterm

	look at html documentation 

	look at info documentation

	run M2 without -q option and then try "viewHelp" to see if the list of installed packages is up to date

	check for bad links:
		cd  ~/Library/Application\ Support/Macaulay2
			or
		cd ~/.Macaulay2
			and
		find . -name \*.html |xargs html-check-links

	try viewHelp res, etc.

	update Macaulay2/man/M2.1.in

	check that getPackage works for all the packages available

	test distribution files:
		*.rpm (red hat)
		*.deb (debian, ubuntu)
		*.tar.gz (linux, cygwin)
		*.tbz (freebsd package)
		*.dmg (Mac OS X)

	check that alarm works or devise an automated test:

		i11 : alarm 4 ; for i from 0 do j = i
		stdio:10:31:(3): error: alarm occurred

		i13 : j

		o13 = 1858410

	check that installPackage works for the user (now, with no symbolic links)
	      and that it creates a documentation database and finds and uses it, e.g.:

	      	i1 : installPackage "Classic"

		   and then:

		i1 : notify=true

		o1 = true

		i2 : loadPackage ("Classic",Reload=>true)
		--opened database: /Users/dan/src/M2/trunk/BUILD/dan/builds.tmp/mac64.production/StagingArea/x86_64-MacOS-10.6/lib/Macaulay2/x86_64-MacOS-10.6/Classic/cache/rawdocumentation-dcba-8.db
		--beginDocumentation: using documentation database, skipping the rest of /Users/dan/Library/Application Support/Macaulay2/local/share/Macaulay2/Classic.m2
		--package "Classic" loaded
		--loaded /Users/dan/Library/Application Support/Macaulay2/local/share/Macaulay2/Classic.m2

		o2 = Classic

	check that installPackage "Macaulay2Doc" works

	try edit(dim,Module), in emacs under X and in emacs in an xterm

	verify that " applicationDirectory() " yields "~/Library/Application Support/Macaulay2/" under Mac OS X and "~/.Macaulay2" under other OSes.
	    Then verify that if that directory is removed, M2 can still start up (without the "-q" command line option).

	verify that ~/.Macaulay2/README or ~/Library/Application Support/Macaulay2/README, if it is deleted, is restored by running
	       M2 without the -q option

	run M-x Info-validate on the info file

	make sure the links in the html documentation work

	run "make -k check" and check the output

	make sure the macos x readme file is up to date

	test SCSCP:
	    A. Start a server in one M2 process
		 i1 : loadPackage "SCSCP";
		 i2 : startServer();
		 [SCSCP][Server] Listening on :26133
	    B. Test the server from another M2 process by computing 1+2 and getting 3 in response:
		 i1 : loadPackage "SCSCP";
		 i2 : s = newConnection "localhost"
		 o2 = SCSCP Connection to Macaulay2 (0.1) on localhost:26133
		 i3 : s <== openMath 1+2
		 o3 = 3
	    A. Try to stop the server by typing a Ctrl-C on the first process
		 [SCSCP][Server] Listening on :26133
		 [SCSCP][Server] Incoming connection. Forking.
		   C-c C-c
		   currentString:1:16:(3):[15]: error: before eval: --backtrace update-- 

 	Occasionally test all the packages that cache their example output.
	This can be done on a machine where you have installed all the
	prerequisite external programs for those packages (see
	../../M2/INSTALL, "Rerunning the package examples"), with a fresh build
	tree, by adding the command line option RerunExamples=true to the
	"make" command.  If you forgot to do that the first time around, you
	can first clean the packages with "make clean-packages" in the
	M2/Macaulay2/packages directory of the build tree.
