(T: means the change to test suite)

0.5:
	Standalone installation, does not require that libPARI is installed;
	use overload fixed;
	(temporarily?) removed plotting support to simplify standalone install;
	'defined ref' fixed;
	listPari(tag) added;
	import tags (:all and like :4) added;

	DejaNews search: pari & math* &! leo* &! ftpadmin &! natarajan &! mutuel &! uucp &! ~g (muc.archive.* | soc.culture.* | sfnet.* | news.newuser*)	
	Pari-die-handler was using die() instead of croak();
	pari_print, pari_pprint and pari_texprint implemented;

	T: New test "Testout":
	T: 168 tests of Testout report failure (not necessarily correctly ;-);
	T: 133 tests are skipped;

after 0.5:
	Prototypes added (121 not ok, 127 skipped);
	gdivround, ifact added (122 not ok, 112 skipped);
	Documentation brushed up;
	Quickier switch inside loadPari;
	T: Testout.t was transposing input/output matrices 
	  (89 not ok, 106 skipped);
	T: Testout.t: more filters (82 not ok, 109 skipped);
	Chapter 3 of documentation converted to POD;
	Problem with refcounting: when Perl code is called from PARI
	 loop constructs, avma changes under Perl feet...  fixed;
	Calculation of number of arguments of imported into Pari
	 function was wrong;
	Prototype of Perl function consulted when importing into PARI;
	Documentation brushed up;

after 0.6:
	Emulated subroutines for missing interfaces added (77 not ok);
	T: substitution 'fun(j=1)' to 'fun(j,1)' in testout (64 not ok);
	Better conversion of chapter3 (index entries created, literal blocks);
	T: Enable tests with print (75 not ok, 106 skip);
	T: Massage tests with loops (84 not ok, 78 skip);
	T: Massage floats on output to 16 digits (69 not ok, 78 skip);
	T: Massage complicated matrix output, +tiny changes (45 not ok, 76 sk);
	T: Yet more misc massage (29 not ok - most truely so, 81 skip);
	4 classes of problems: 
	   ker(matrix), pari_print inside fordiv, changevar, taylor

after 0.7:
	T: settype was ok, so remove the code for skipping it (80 skip)
	T: better filtering, print/multiline were busted (26 not ok, 73 skip);
	changevar() added;
	Access to vector elements via $v->[3] (0-based);
	T: convert a[6] to $a->[-1+6]:  (34 not ok, 37 skip);
	minor improvements to chap3_to_pod (for chapter 4 ;-);
	T: transposition tests converted: (34 not ok, 31 skip);
	sentinel introduced, does not fix anything...;
	T: had a workaround for forprime() instead of forvec() (33/31);
	T: various improvements... (17 not ok, but segfaults on exit);
	matrix() could have been called with the same variable for two
		iterators (4 not ok/30 skip, but segfaults on exit)
	T: move failing tests to will_fail.t;

after 0.8:
	Hi-resolution plotting works if one has Term::Gnuplot v. 0.4,
		one needs to call link_gnuplot() before doing this;
	foncpari.pl now suggests the code for a missing interface (in simplest
		cases);
	interfaces for most functions added (except buch*, string and addhelp);
	indirect variables (like PARIvar('x')) can be indexed like $x->[2];
	T: Interactive plotting test added (ignored if no Term::Gnuplot);
	Bug in libPARI/plotport.c corrected;
	Minor changes to chap3_to_pod;
after 0.91:
	Chip recognition code from PARI2.0alpha0 added;
	Builds on Solaris, gives illegal instruction trap in t/Testout.t:32;
after 0.92:
	Fix the failure on Solaris via aliasing shifts() to pari_shifts()
	(was dynalinking with libnls instead).
after 0.93:
	Updated for newer Term::Gnuplot.

after 0.94:
	Updated for v 2.0.11-beta of PARI.
	One needs to manually copy paricfg.h from pari distribution
		to libPARI directory.
	Processor recognition is on level of 2.0.5-alpha.
	sparcs on linux/nextstep not supported.
	hppa cannot build dynamically, use machine=port instead in
		Makefile.PL line.
after 0.95_00:
	Approximately half of subtests are passed now (229 skip, 337 fail
		out of 782).
	Some more patches to PARI are required (in ./patches).
	Still needs to be built as a subdirectory of the root of PARI tree.
after 0.95_01:
	Tests and paricfg.h are autocopied (but paricfg.h should be
	created first by toplevel configure script!).
	Skip compatibility tests.
	Circa 80% of non-skipped tests is OK (110 fail, 764 skipped
		out of 1381).
	Look for PARI build directory nearby.
	Autogenerate libPARI.pod.
after 0.95_02:
	Tag :prec=digits allowed.
	Overloaded << and >> (in Perl, not XS).
	Hex and octal conversion on _hex_cvt.
	Untested overloaded constants, on :int, :float, :hex import tags.
	Output of doubles explained.
	Flexible interface implemented (with runtime-parsing of
		signature, will not work if sizeof's char*, GEN, long 
		are different.)
		85% pass (366 skipped, 146 fail out of 1381).
			(nfields: some actually-wrong answers?)
after 0.95_03:
	Prototype for flexible-interface functions was wrong.
	Only type()/sumalt()/prodinf()/plot*() are special-cased in
		tests now (in addition to what was in 1.39).
	Better massage of matrix output, use RE to process pari output.
	undef allowed as a value of an optional argument.
	Minor massage of codes to move 'l' and 'v' forward.
	setseriesprecision() implemented.
	sv2pari() was not calling mg_get().

All tests successful, 1 test skipped, plus 156 subtests skipped.
Files=17,  Tests=1393, 204 secs ( 0.00 cusr  0.00 csys =  0.00 cpu)
		       ^^^ with debugging enabled

after 2.0011_01:
	Build which needed a translation to level0.s, kernel1.s was busted.
	Perl 5.005_52 had conflicting `warner'.
	Perl 5.005_52 has different order of hashes => needed to explicitly
		order the variables in Testout.pm.
	Perl 5.005_52: Autoloading got in the way of FETCHSIZE (implemented)
	:int, :float and :hex import tags tested and fixed.

All tests successful, 1 test skipped, plus 156 subtests skipped.
Files=15,  Tests=1377, 121 wallclock secs ( 0.00 cusr +  0.00 csys =  0.00 CPU)

after 2.001102:
        Patching was still busted.
	Use the copy of tar.gz in the current directory if present.

after 2.001103:
        Tests now run with the plotting enabled too.

All tests successful.
Files=15,  Tests=1378, 108 secs (86.46 cusr  3.82 csys = 90.28 cpu)

2.001200:
	new patch for PARI 2.0.12.
	Allow a LF before comma for my_print* tests.
2.001300:
	Special-case version 2.0.13 too (prefer alpha over betas).
	First step to allow dynalinking set_output_file().
2.001301:
	Change interfaces 83 and 84: they are void now.
	Define PERL_POLLUTE.
	During test environment variable MP_NOGNUPLOT may be set to
	not load Term::Gnuplot.
2.001302:
	The hack to fake GEN-as-an-array-reference was creating a
	cyclic reference loop ==> memory leak.
2.001400:
	machine=port target was trying to compile none/level0.s.
	Special-case version 2.0.14 too (prefer alpha over betas).
2.001401:
	machine=port target was trying to compile src//level0.c.
2.001402:
	New patch for issqrt() - was wrong signature.
	Correct backwacking of \s \d.
	Default to `port' for unknow architectures.
	perl -MMath::Pari=:int -e 'for ($i = 1; $i < 10; $i++) {print "$i\n"}'
	     not fixed yet.  (Sometimes segfaults, prints floating points.)
		 (Solution: Make Perl use mymalloc, or upgrade to
		  5.00557 - maybe 5.00505 will also contain the fix.)
2.001403:
	New patch for signatures.
	Die on a wrong import tag, add link_gnuplot() to :graphic.
	Support DV and DI argument declarations, and new code 28 for vector().
	Fix handlers for codes 45 and 49.
	Now keep log of codes as supported by Math::Pari, as
	 implemented by PARI, and have a tool to check this (see libPARI/).
	Make test script creation skip backups and other junk.
2.001500:
	Update assembler-handling logic to 2.0.15-pre level,
	streamline logic a little bit.
	Tested with 2.0.14 and 2.0.15-pre+patches.
2.001501:
	On Linux RedHat 6.0: err was masked by some other dynamic library.
	Make plotting tests work again even without Term::Gnuplot.
	On Linux RedHat 6.0: one subtest of all.t (ellinit) fails, same with
	pure PARI.
	Add autopatches for 2.0.15 (it looks to stay).
2.001600:
	Link with Term::Gnuplot was using a wrong version of link_gnuplot().
	Better reports if run with redirections.
	Updated for 2.0.16.

2.001701:
	Change references to PARI types to t_FOO style.
	Assignment to elements of arrays implemented (probably wasteful).
		   (Can more tests be unskipped?).

2.001702:
	Update for new 'E' key of the interface string.
	Do not consider CVS as a test.

2.001800:
	Support overloaded binary constants, as in 0b1101.
	Support overloaded bitwise operations | & ^ ~ .

2.001801:
	->import() could only be called once due to caching of
	@EXPORT_OK by Exporter.  Thanks to
	thumper@bsi.menlo-park.ca.us for detecting the reason.

2.001802:
	hex() can return a float in newer perls, so overloaded hex
	constants would not work.  Thanks to
	thumper@bsi.menlo-park.ca.us for detecting the reason.

2.001803:
	Exporting the same symbol several times (e.g., to different
	packages) gave spurious warnings.

	Problems to fix yet: ++ floatifies; pari2iv() has a
	32-bit upper bound on 64-bit perls; problems with refcounting
	of array elements and Mod().

2.001804:
	Some declarations needed to be changed for multi-threading compile.

2.010000:
	ploth test was failing, since fake_sizes() was removing a Perl
	array, thus the arithmetic was propagating to double, =>
	problems when PARI sees arguments of a wrong type.
	gphelp updated.
	Remove patches to older version of PARI.
	Fix floatification in $a++ (but the choice of conversion to
	float/int may still be wrong in some cases).

2.010001:
	PARI version would not be calculated correct if Math::Pari is
	in a subdirectory of PARI directory.
	libPARI/gphelp was time-compared with one of PARI, but the
	latter one is autogenerated, thus has a random date.
	int() overloaded if possible.
	Conversion of large PARI's integers to Perl types would not
	croak, but will do as good as it can (should be as in perlnumber.pod).

2.010002:
	On solaris we were aborting if could not find SUNWspro - whose
	libraries we do not use any more!
	Overloading operator for int() had wrong number of parameters;
	In 5.7.1 I needed to change shift to CORE::shift in test_eng/Testout.t.
	New module Math::PariInit.
	New function setprimelimit().

2.010003:
	Math::PariInit would not set $initmem.
	allocatemem() implemented.

2.010004:
	Overloaded << and >> were using Perl's 2 instead of PARI's 2.
	(Need to be rewritten anyway! - but need to add a flag "Behave
	as if module large power of 2" to PARI's shift() first.)
	allocatemem() would not compile on 5.005.

2.010005:
	gcc build on sparc was busted.
	build on 5.00404 was busted.
	Copy pre-cooked Win32's paricfg.h without Configure'ing GP/PARI.
	Make README, INSTALL a little bit more clear.

2.010006:
	Was looking for Win32 paricfg.h at a wrong (obsolete) location.
	Globbing on Win32 misses gp/gp.c.  Put a workaround.

2.010007:
	Movement of PARI headers (in 2.001804) broke the compile on
	some misconfigured systems, which include
	/usr/include/sys/dl.h, which declares ladd.  Protect by
	temporary redefining ladd (we do not use it from Pari.xs).

	Use extraction of the version suggested by Karim Belabas.

2.010008:
	zcat replaced by gzip -dc, since zcat may not be able to
	handle gz.

2.010100:
	Generate libPARI/paricfg.h ourselves (t/elliptic.t:41 fails
	  unless we unconditionally define NOEXP2).
	Minor updates to INSTALL, change PARI to GP/PARI in messages
	  of Makefile.PL too.
	Wrap the code to get assembler version in alarm().
	More verbose message on reverting to 'port'.

2.010101:
	Improve README and INSTALL.
	Include <time.h> if USE_TIMES (advised by Bernhard Graf <fisch@augensalat.de>).
	Allow more precision loss in ellinit() - the current precision
	is unportable.
	[An attempt to loosen precision requirements break linear.t in
	unrelated places???  See test_eng/Testout.pm.]

2.010102:
	When generating paricfg.h, scan headers for getrusage, ulong,
	  CLK_TCK and ladd (the latter not used yet).
	Do not define ladd, just undef it after PARI headers are included.
	paricfg.h was rebuild too aggressively...
	Exclude gp/gp_init.c from inclusing into libPARI$(LIB_EXT).

2.010103:
	Significant update to documentation in Pari.pm.
	Tone down the warning on error of the pipe from cpp.
	New functions:   lg($x) lgef($x) longword($x, $n) type_name($x)
	t_STR is converted to a string without enclosing "".

2.010200:
	Patch for broken 2.1.2 (gccism).
	Was trying to compile kerneltest.c.
	lgefint($x) added.

2.010201:
	Allow trailing K, M, G in :stack=, :primes= directives of PariInit.pm.
	Recognize that GP/PARI may be in a directory named 'pari' (CVS).

2.010202:
	Would compile whatnow.o.  On the architectures with barely
	working dynalinking (cygwin only?) leads to unresolved symbols.
	Document the possible -fPIC limitation.

2.010300:
	On OS/2 DLOPEN was not supported well enough.
	More verbose messages about generation of paricfg.h.
	Support PARI_DOUBLE_TYPE.
	Support type 'M' of arguments (only numberic arguments, though).

2.010301:
	Better support of GNU as.
	New Makefile.PL options PARIDIR=directory
	Treat underscores in assembler files better.
	Recode brutcopy in terms of gcopy_av (not exported?).
	In 2.2.* branch: plotting and objet:22 tests segfault...
	Create XS functions good for left-right shift (buggy in 2.2.2?).

2.010302:
	Support quick <<, >> with newer PARI (2.2.*).
	Some tests still segfault with newer PARI...

2.010303:
	Set AMSINLINE if needed.
	Put obsolete files and utils in a subdirectory.

2.010304:
	Move a lot of code of Makefile.PL to Math::PariBuild.pm.
	(But DEFINE= processing still extremely messy.)
	New option force_download to Makefile.PL.
	PARIDIR= and MACHINE= were not removed from @ARGV.
	Sanity check: correspondence between numeric and string interfaces.
	Define GCC_INLINE if the compiler is gcc.
	New target `build_tests' for make.

2.010305:
	Misprint in PariBuild.pm fixed (thanks to John Borwick).

2.010400:
	Remove .pod on `make clean'.
	Do part of `perl -V' from Makefile.PL.
	Support 64-bit longsize.
	Fix for broken gcc 2.95 with -ffast-math.
	gpui() (for **) was called with wrong signature...
	0b1011 etc now should work
	$obj->can($meth_name) method implemented (AUTOLOAD-aware).
	Better 'skipped' messages
	Less tests skipped
	  (in graph: plot() - can't redirect output?!)
	  (in objets: error test?!)
	  (in program: f(x)=, print of a matrix, input(), break(),install())
	Support the current implementation of 'M' code.
	[Support for '&' code is still very hard to use - see test engine.]
	Do not define UNIX and USE_TIMES on Win32 (d_times *is* defined?!)
	Support M$ VC and Borland archive-creation switches and VC's
	  object-file destination switch.
	Use documented forcecopy instead of undocumented gcopy_av() [should
	  fix problems with destruction of Mod() too - but slower...].
	Whitespace edits in Perl code.
	Inheriting from Math::Pari lead to recursion in sv2pari().
	  [???  Similar change done to findVariable - not tested]
	Disable assembler on Win32 if not cc == gcc (won't understand GNU
	  assembler anyway).

2.010401:
	Special-case -o for object files for Borland too.
	Inline none/int.h for 2.2.5 or newer too.
	Define SHELL_Q (needed for 2.2.5).
	Adjust svputs to "const" for 2.2.5 or newer.
	Adjust _gtodouble() for 2.2.5 or newer.
	New way of generation of mp.c for 2.2.5 or newer.
	Backslashes in PARIDIR argument could confuse the test engine.
	Support of code 'M' (for mneumonics) was not complete.
	M$ VC can't handle files with .s extension, rename to kernel1.c if needed.
	Enable back default x86 build with Win32 compilers.

2.010402:
	Remove dead code for gcopy_av().
	[Confirmed that it builds on Win32 with M$ VC and mingw for both
	  'none' and 'ix86'.  (One needs to manually edit t/*.t.)  All the
	  hard investigative work was done by Bob "Sisyphus".  Thank him!]
	directory-with-\-support in test engine was flacky.
	CPPMINUS was not used.  Change CPP's %Config from cppstdin to cpp.
	Support for '&' is not very optimized, but works; just omit '&'.

2.010500:
	Cursory support for LIBPARI="-L/lib -lpari"
	 (Problems:
		spoofed version;
		no graphing functions present;
		bad free() at t/Pari.t line 265
			(calling installed Perl function from PARI)
		no PARI tests to convert;
		no POD to create;
		no check for ep codes;
		no patching the source;
	   [All but the first 3 of the problems can be avoided if one
	    lets Makefile.PL download and patch PARI, then builds the library
	    using the downloaded+patched version.]
	 Possible problems:
		different sizeof(long);
		non-compatible threading model;
		-lpari build with different non-compatible compiler;
		...???
	 ).
	Cosmetic changes to TestOut.
	Allow running tests from a different directory (non-Unix filespec?).
	Somehow the patches to 2.1.4 were not applied.  Apply them to 2.1.5 too.
	May download via LWP (thanks to Slaven Rezic).

2.010501:
	Autogenerate valence tables func_codes.h by code_C_translator()
  perl -I utils -MMath::PariBuild -wle "print code_C_translator">func_codes.h
		and use	them from Pari.xs instead of EpVALENCE(ep)
		[which is now used to distinguish user functions only].
			[Workaround for bug in C_constant...  XXXX]
	-DLONG_IS_64BITS is detected in Math::PariBuild and put in paricfg.h.
	Rename t/Pari.t to t/00_Pari.t
	XS((*subaddr)) moved out of function ('dllexport' attribute on cygwin
		is not compatible with static).
	Always define DL_DFLT_NAME as NULL.
	Remove GCC_INLINE if perl is build with -g (needed with 2.1.5 too).
	Misprint in wrongT() [unused function].
	Do not use -O1 for assembler on alpha (not supported any more).
	Document the licence terms.
	Make C code C++-compatible: rename new.
	Do not use undecleared killblock0().
	Support error messages of the form (calling PARI('O(det2($mat))')):
PARI:   ***   obsolete function: O(det2($mat))
                                   ^-----------
	Try to retry with Passive FTP if the default fails (untested).
	Update the list of files to append to libPARI/mp.c up to 2.2.7.
	Compensate to missing bruteall().	XXXX
	Compensate for new "gettime;" idiom in the tests.
	Need to add this on OS/2:
os2$(OBJ_EXT): $(PARI_DIR)/src/systems/os2/os2.c pariinl.h paricfg.h
	$(CCCMD) $(CCCDLFLAGS) $(DEFINE) $(MY_CC_PRE_TARGET)$@ -I $(PARI_DIR)/src/systems/os2 $(PARI_DIR)/src/systems/os2/os2.c
	Support code 'i' (this finishes support for 2.2.7).

2.010600:
	Won't work with 5.8.6 (ok with 5.8.5) [the cryterion of AV being
		empty changed: now it is AvFILLp() == -1; earlier AvFILLp()
		was not checked unless AvALLOC()].
	Document force_download option to Makefile.PL.
	T: make skipped test files emit the reason for skipping.
	Direct overloading of to-number was disabled: '0+' vs '+0'; actually,
		pari2num could not take more than 1 arg, so could not be used
		for overloading...
	passv() was used instead of pasv() in Net::Ftp interface in PariBuild.
	Likewise for <> vs <STDIN>.
	New option pari_tgz=PATH_TO_TAR_GZ to extract a local file and patch
		(if needed) the resulting directory tree.
	Now printing of DESTROY-debugging messages is controlled by macro
		RUN_IF_DEBUG_PARI.  From userland, use PARI_DEBUG(),
		PARI_DEBUG_set(), and environment variable MATHPARI_DEBUG.
	Add -w to test scripts.