05/31/91 Initial release 06/10/91 A `news' help topic was added to provide information related to M updates and bug fixes. The procedure lu.m, for Doolittle LU reduction by rows, was added to the M library. clear bugfix: clear shouldn't remove builtin functions! Problem fixed: constants passed by address to a user function were disappearing if they were assigned to another variable within the function. Temporary data is cleared after every 10 loop iterations instead of after each iteration as in the previous version. This should make loops faster. cleanup() function added so user can set the cleanup period. Problem fixed: function argument declarations were not being interpreted correctly. The ANSI style: void f(void); as well as the 'old-style' void f(); are accepted now. ANSI: int g(matrix a, matrix b); is equivalent to int g(a,b); since the default data-type is `matrix'. Additionally, a mixture of ANSI and old-stlye is accepted: matrix h( matrix a, b, int m, n); is equivalent to: matrix h( matrix a, matrix b, int m, int n); Function prototyping without identifiers, e.g. int g( matrix, int); is still not accepted. Use the old-style prototying instead, i.e. int g(); Problem fixed: `help matrix' and `help vector' were not working because matrix and vector are reserved words. 06/27/91 bugs fixed: local variables as command arguments works now; shape of result when a vector indexes a vector is now correct. New commands: cd, pwd, history. Command recall added. system() now invoked using $ instead of !. ! used for history substitution. debug(6) added for tracing program execution. 07/11/91 plot(), hplot(), and plot2d() procedures added. qrp.m added to M library. +\ for cumulative sum added 07/15/91 plot procedure syntax changed to plot( y, x, title) with x & title optional. *\ for cumulative product added 07/24/91 Problem with declaration erasing existing function definition fixed. ++a(b), ++a(b,c), --a(b), --a(b,c) implemented. 01/31/92 dyadic capability added to min() and max(). 02/07/92 rand.c rewritten for efficiency. srand(void) now sets the random seed from the C library routine time(). erf() and erfc() added to Sun version. (at some point, public domain erf() code was found and added to all versions). 02/25/92 bug fix to copy() in util.c. copy(a,b) wasn't freeing old a. added map command, calls mallocmap() for debugging. 02/01/93 char p in m_pwd() in m_cmd.c changed to char *p; 02/13/93 Made some minor changes to use bison & gcc instead of yacc & cc. Replaced `#ifdef PC' with `#ifdef MSDOS' Will assume ANSI C from now on. 02/18/93 init() is now in symbol.c. init.c is gone, replaced by init.h. Had to add some kludges for the vax since it wouldn't allow initialization of a union. 04/21/93 added printf() function. 05/16/2014 Removed old VMS and MSDOS files and code sections. Added -b command-line option (batch mode). Added d2i() and i2d() data/Instr conversion routines to code.c and used throughout the code to eliminate these compiler warnings: warning: ISO C forbids conversion of object pointer to function pointer type [-pedantic] warning: ISO C forbids conversion of function pointer to object pointer type [-pedantic] See help/news for more history information.