We welcome comments, suggestions and most importantly, fixes in the
form of a patch.  Send such items to:

    dbell@auug.org.au
    chongo@toad.com		    {uunet,pyramid,sun}!hoptoad!chongo

The following are the known bugs and mis-features in 2.9.3t12.

    * Saber C warns about a bad pointer problem in domul().  See
      the Saber-C XXX comment in zmul.c for details.

    * Purify reports that calc leaks memory.  Plug these leaks or
      determine that such leaks are non-issues.

    * Purify reports that dosquare() references uninitialized memory.
      While no incorrect results have been reported due to this problem
      the potential for bogosity is great.

      A hack-a-round of zeroing an allocated chunk of memory has been
      added to zsquare() which disables this Purity error message.
      See the Purify XXX comment in zmul.c for details.

    * Calc does not support negative mods.

    * The output of list(2,3,4) is indented differently from list().

    * Calc hanges in the regression test for some versions OSF/1 Dec
      Alpha cc.  The work-around to this problem is to use gcc version 2
      instead of cc on the Dec Alpha.

    * On a Pyramid running DC/OSx using the MIPS cc, calc fails
      regression tests 1205, 1206, 1207, 1209, 1210 and 1211.
      It then declares that the next line (test 1212) has an
      illegal value for decrementing.

    * The syntax error:

	print a[3][[4]]

      sends calc into a loop printing 'missing expression' requiring one
      to point on the interupt key to get calc's attention.

    * The detection of <stdarg.h> vs. <varargs.h> does not work correctly
      on some systems.  During the make, one may see:

	    forming have_vs.h
	    *** Exit 1 (ignored)
	    *** Exit 1 (ignored)
	    *** Exit 1 (ignored)
	    have_vs.h formed

      and on some systems during make check (read lib/regress.cal) one
      may see:

	    1637: tmp = base(8)
	    **** Non-true result (0): 1638: str(0x8000000) == "020000000000"
	    **** Non-true result (0): 1639: str(0xffffffff) == "037777777777"
	    **** Non-true result (0): 1640: str(3e9) == "026264057000"
	    1641: tmp = base(16)
	    **** Non-true result (0): 1642: str(0x8000000) == "0x80000000"
	    **** Non-true result (0): 1643: str(0xffffffff) == "0xffffffff"
	    **** Non-true result (0): 1644: str(3e9) == "0xb2d05e00"
	    1645: tmp = base(10)

      The work-a-round is to:

	    make clobber hsrc

	    Change the following have_vs.h line from:
		#undef HAVE_VS /* no */
	    to:
		#define HAVE_VS /* yes */

	    If one has /usr/include/stdarg.h, be sure that args.h contains only
		#define STDARG
	    or if one has only /usr/include/varargs.h:
		#define VARARGS

	    make all

	Try:

	    calc 'base(16)'

	If it prints, 0x11ffff580, then you lose.  Go back to 2.9.3t9.0
	or wait until 2.10 is released.
