Diff for /rpl/ChangeLog between versions 1.1 and 1.73

version 1.1, 2010/01/26 15:22:44 version 1.73, 2011/07/24 15:34:15
Line 1 Line 1
   * Sun Jul 24 2011 BERTRAND Joël <rpl@systella.fr> rpl-4.1.1 (RPL/2)
   - VERSION now return OS type, architecture and ABI;
   - configure script is updated. New flags :
       --with-32bits-abi
       --with-64bits-abi
       --with-rplcas
   Please not that RPL/CAS is not built by default;
   - Lapack is upgraded to 3.3.1.
   * Mon Jun 27 2011 BERTRAND Joël <rpl@systella.fr> rpl-4.1.0 (RPL/2)
   - New stable release.
   * Fri Jun 22 2011 BERTRAND Joël <rpl@systella.fr> rpl-4.1.0.prerelease.4 (RPL/2)
   - some minor changes have been done in instruction_int() to accept new argument
   types;
   - interface_cas.cpp now catchs exceptions returned by giac.
   * Fri Jun 24 2011 BERTRAND Joël <rpl@systella.fr> rpl-4.1.0.prerelease.3 (RPL/2)
   - INT intrinsic now uses RPLCAS to compute symbolic integration;
   - minor bug is fixed in INTRINSIC function. Now, this function gives same
   result with ou without -p switch.
   * Wed Jun 22 2011 BERTRAND Joël <rpl@systella.fr> rpl-4.1.0.prerelease.2 (RPL/2)
   - memory caching is added to new variable tree.
   * Tue Jun 21 2011 BERTRAND Joël <rpl@systella.fr> rpl-4.1.0.prerelease.1 (RPL/2)
   - SPAWN is now usable with new variable management;
   - MEM is rewritten;
   - PRUSR is rewritten;
   - merge 4_0 branch into HEAD;
   - CLUSR is rewritten;
   - -p flag is now usable;
   - New benchmark:
   cauchy:[~/rpl/bench] > ./bench.rpl 
   +++RPL/2 (R) version 4.1.0.prerelease.1 (lundi 20/06/2011, 23:00:45 CEST)
   +++Copyright (C) 1989 à 2010, 2011 BERTRAND Joël
   Number of scalar operations per second and per core : 2625369.22710792
   * Mon Jun 20 2011 BERTRAND Joël <rpl@systella.fr> rpl-4.1.0.prerelease.0 (RPL/2)
   - New variable management is written. Please note that -p flag does not work
   and all multithread/multitask capabilities have been disabled until this
   new subsystem shall be validated.
   * Thu May 09 2011 BERTRAND Joël <rpl@systella.fr> rpl-4.0.23 (RPL/2)
   - major bug is fixed in STD format (1E7 sq prints 1);
   - major bug is fixed in READ intrinsic (socket). This bug was introduced
   by a new feature in glibc.
   * Thu Apr 14 2011 BERTRAND Joël <rpl@systella.fr> rpl-4.0.22 (RPL/2)
   - by default, RPL/2 uses "NONE" IMPLICIT when it's started in batch mode and
   "ALL" IMPLICIT when it runs in interactive mode;
   - when "NONE" IMPLICIT is set, STO intrinsic raises an error when it is used
   to create or modify a global variable. Now, with "NONE" IMPLICIT, you have
   to use SAVE to manipulate global variables;
   - replace erroneous TAB by TBL in evaluation() and formateur_fichier()
   subroutines;
   - fix major memory access violation in evaluation subroutine. Only occurs
   when 'X(i,j)' is evaluated on a matrix and when (i,j) points out of bounds;
   - fix major bug in evaluation subroutine. 'X(i)' returns execution error
   when X was a vector or a table.
   * Sun Apr 04 2011 BERTRAND Joël <rpl@systella.fr> rpl-4.0.21 (RPL/2)
   - Gnuplot is upgraded;
   - flag 34 is now used to enable or disable control character evaluation;
   - major bug is fixed in P->R intrinsic function when argument type is
   complex and degree mode is set;
   - L->T and T->L are added;
   - OLD filetype is fixed;
   - FLOW socket support is added;
   - FLOW sequential files are added;
   - new escape sequence is added to handle flow files (\x + hexadecimal code).
   Known escape sequences are \", \b, \n, \t, \x?? and \\.
   * Sun Mar 06 2011 BERTRAND Joël <rpl@systella.fr> rpl-4.0.20 (RPL/2)
   - Ncurses is upgraded to 5.8;
   - ALARM is fixed by filling isdst field;
   - catch ECONNRESET in write intrinsic to return an execution error instead of
   system one;
   - fix a typo in HELP intrinsic;
   - Openssl is upgraded to 1.0.0d, sqlite to 3.7.5 and readline to 6.2;
   - Lapack is upgraded to 3.3.0;
   - libmtmalloc is now default Solaris allocator;
   - ncurses is upgraded;
   - regression introduced by 4.0.19 is fixed in signal management.
   Interruption1() could be called from itself and raises bus error (on sparc) or
   segmentation fault;
   - sqlite is upgraded to 3.7.4;
   - OpenSSL is upgraded to 1.0.0c;
   - syntax error is correctly checked ( (2+,0) does not crash RPL/2 anymore);
   - characters are tested in recherche_type() to avoid names like '12+';
   - gnuplot is upgraded to 4.4.2 due to major bugs.
   * Thu Sep 23 2010 BERTRAND Joël <rpl@systella.fr> rpl-4.0.19 (RPL/2)
   - due to a very strange bug I've only seen on Solaris, ptmalloc3 is removed.
   Solaris libresolv randomly uses ptmalloc3 and system allocator and makes heap
   corruption. As internal memory management have been improved, a best fit
   allocator like ptmalloc3 is not required anymore;
   - gnuplot is upgraded to 4.4.1;
   - deadlock is fixed in signal handlers: same mutex was used in standard
   subroutines (without protected sections by sigprocmask() or pthread_sigmask())
   and signal handlers. A new signal handler specific mutex is added;
   - minor bug is fixed in evaluation() subroutine. In { X 0 PI }, PI is a function
   that has to be evaluated by ->NUM;
   - rplfile build process is modify to be sure that rplfile is not modified
   after rpl build stage (to be sure that rplfile checksum is not modified after
   rpl compilation);
   - AWK is replaced by rplawk. rplawk is original awk written by Brian Kernighan,
   modified to remove yacc code and renamed;
   - some workarounds have been written to not use buggy klibc SystemV IPCS.
   ABORT now works on eComStation;
   - sqlite is upgraded to 3.7.2;
   - bug is fixed in software interrupts. When both process have different PID,
   parent process was not interrupted if it is not group master process. To fix
   this bug, SIGINJECT signal is not sent by child process but by control thread
   in parent process;
   - minor bug is fixed in data injection (POKE) that does not work as expected
   when child process is protected by NRPROC.
   * Thu Aug 26 2010 BERTRAND Joël <rpl@systella.fr> rpl-4.0.18 (RPL/2)
   - --enable-sysv-sems is added to configure script to use SystemV semaphores
   functions instead of POSIX functions. This function is disabled or forced on
   systems that does not provide correct POSIX or SysV semaphores subsystem;
   - a dirty but not quick patch is written to workaround broken siginfo
   structures. This patch has been successfully tested. It uses a segment of
   shared memory (Posix or SysV) and some semaphores (Posix or SysV) by process
   (Unix PID);
   - some OpenBSD's hacks are added;
   - broken siginfo->si_pid field is now checked by configure script;
   - SWI now sends SIGCONT to interrupted process to start interrupt without delay;
   - random generator is cloned by SPAWN;
   - in transliteration subroutine : '\r' is added after all '\n' in OS/2 port;
   - getaddrinfo is hardcoded when host system does not provide getaddrinfo
   or freeaddrinfo;
   - RPL/2 can now use SystemV semaphores when POSIX semaphores are unavailable;
   - major bug is fixed in CHR intrinsic when obtained character is not printable;
   - Lapack is upgraded to 3.2.2;
   - OS/2 (eComStation 2.0 with EMX 0.9d) support is added;
   - TOKENIZE is now able to convert escape sequences;
   - ATPOKE and CLRATPOKE new intrinsics are added;
   - --enable-full-static configure flag is added. With this flag, mysql and
   postgresql libraries are statically linked in rpl executable;
   - units Makefile is modified to avoid readline and ncurses usages;
   - sqlite is upgraded to 3.7.0.1;
   - units is upgraded to 1.88;
   - another major bug is fixed in the same variable creation subroutine.
   Level 0 and 1 variables adresses were swapped when a global variable masked
   a name of RPL/2 routine;
   - major bug is fixed in global variable creation subroutine. When a global
   variable was created and when a local variable existed with the same name,
   computed address of global variable was wrong;
   - src/Makefile.am is modified to avoid a bug on several systems. libptmalloc3
   is forced in front of all libraries.
   * Tue Jul 13 2010 BERTRAND Joël <rpl@systella.fr> rpl-4.0.17 (RPL/2)
   - BACKTRACE intrinsic is added;
   - major bug is fixed in SELECT/DEFAULT/END conditional structure. Only occurs
   when this structure is included in IFERR/THEN/END structure and when an error is
   caught;
   - major bug is fixed in analyse() subroutine. When evaluation() returned error
   in a compiled program, analyse() caught this error twice and randomly aborted
   with a segmentation error;
   - TRIM and TOKENIZE replace both '\n' and '\t' by regular spaces;
   - ATEXIT subroutine begins with an implicit CSTOP to avoid multiple stop
   signals;
   - memory leak is fixed in ROW+. It only occurs when a row is added to an empty
   matrix.
   * Thu Jun 24 2010 BERTRAND Joël <rpl@systella.fr> rpl-4.0.16 (RPL/2)
   - minor bug is fixed in evaluation() subroutine. With this patch, same program
   returns same result with or without -p flag;
   - ncurses 5.7 is upgraded to 20100619;
   - openssl is upgraded to 1.0.0a;
   - interrupt stacks are now FIFO instead of LIFO;
   - debug memory allocation subroutines are improved to run in multithreaded
   programs;
   - some memory leaks are fixed in process management (SPAWN and DETACH);
   - version verification is added to shared objects;
   - -D_GNU_SOURCE is added to ptmalloc3 makefile to avoid a major bug on 64 bits
   linux (false mremap() prototype);
   - major bug is fixed in rpliconv. getc() returns an int, not a unsigned char.
   * Sun May 23 2010 BERTRAND Joël <rpl@systella.fr> rpl-4.0.15 (RPL/2)
   - all '-' are replaced by '_' in random generator list;
   - minor memory leak is fixed in OPEN intrinsic (socket);
   - major bug is fixed in IFERR structure. Only occurs in compiled program;
   - major bug is fixed in copie_objet() and liberation(). Only concerns
   format in FCH (file descriptor) and SCK (socket descriptor);
   - debug routines are improved;
   - PROCID is added;
   - MEMLOCK and MEMUNLOCK are added. MEMLOCK forces a process to remain in memory
   and to not use swap;
   - major bug is fixed in sql support. SQL connections were closed in all chield
   process;
   - standard allocator (malloc()/free()) is replaced by ptmalloc3 due to some bugs
   discovered in Solaris thread safe allocators (libmalloc and libumem) that
   are first fit class allocators. Solaris libmtmalloc works better and is
   a best fit class allocator but its performance is poor than ptmalloc3
   performance;
   - major bug is fixed in ROW+ intrinsic (new row was not added where it
   should);
   - minor bugs are fixed in interruptions.c (semaphores values when error is
   caught);
   - major bug is fixed in STOP intrinsic. STOP was unable to stop any process
   created by SPAWN;
   - SIGFABORT is added. When process receives SIGFSTOP, it tries to execute
   ATEXIT. If it receives SIGFABORT, it does not;
   - ONEXIT is renamed in ATEXIT;
   - ONEXIT new intrinsic is added.
   * Wed Apr 21 2010 BERTRAND Joël <rpl@systella.fr> rpl-4.0.14 (RPL/2)
   - major bug is fixed in static and shared variables initialization subroutine.
   This bug only occurs when RPL/2 tries to create a shared or static variable
   from an expression;
   - major bug is fixed in copie_etat_processus(). A field that contains
   information about shared variable was not copied to new processus structure;
   - some little memory leaks are fixed in evaluation(), recherche_type() and
   sequenceur(). They only occured when syntax error were caught;
   - IMPLICIT causes execution error instead system error;
   - Hurd support is improved but currently broken because Hurd does not support
   SIG_INFO. Work in progress;
   - OpenBSD specific support is removed from sources;
   - support for Mac OS X and Windows/Cygwin is added.
   * Wed Apr 07 2010 BERTRAND Joël <rpl@systella.fr> rpl-4.0.13 (RPL/2)
   - implicit names can now be disabled by new IMPLICIT intrinsic:
   cauchy:[~/cvs/test] > cat implicit.rpl
   #!/usr/local/bin/rpl -sp
   TEST
   <<
       "none" implicit
   
       1 -> Z
       <<
           Z disp
           'Z' disp
       >>
   
       'Z' disp
       Z disp // Undefined
   >>
   
   cauchy:[~/cvs/test] > LANG=C ./implicit.rpl
   +++RPL/2 (R) version 4.0.13 (Wednesday 04/07/10, 13:57:44 CEST)
   +++Copyright (C) 1989 to 2009, 2010 BERTRAND Joel
   1
   'Z'
   'Z'
   +++System : Invalid implicit name [6631]
   cauchy:[~/cvs/test] > 
   
   RPL/2 aborts because the last Z is undefined and not protected by ''.
   By default, implicit is set to "ALL";
   - sqlite is upgraded to 3.6.23.1;
   - openssl is upgraded to 1.0.0;
   - major bug is fixed in RETURN intrinsic. It only occurs in evaluation
   subroutine;
   - table variable can now be sorted by SORT;
   - some regressions between libtool 1.x and 2.x are fixed by workarouds in
   Makefiles;
   - -a command line option analyzes program (structure and syntax) and
   sends preprocessor output to standard output. This option is used by
   rplc (RPL/2 compiler).
   * Tue Mar 09 2010 BERTRAND Joël <rpl@systella.fr> rpl-4.0.12 (RPL/2)
   - in formatted file, string format returned a variable length string even if
   format was 'CHARACTER*(n)' (n characters string). Now, 'CHARACTER*(*)' returns
   a variable length string and 'CHARACTER*(n)' a fixed length string;
   - keyed access files support is added. Currently, only formatted files are
   supported;
   - direct access files support is added. Currenlty, these files can only be used
   in formatted mode;
   - virtual variables are now writte in UTF-8 and all special characters
   in string are escaped;
   - all formatted files are now converted into UTF-8;
   - all file and unix socket names created by RPL/2 are now UTF-8 compliant;
   - RPL/2 tools (rpliconv, rplfile, rplpp and rplconvert) are now checked before
   each execution (md5 and sha1 sums) to enhance security. If one of these tools
   have been modified between RPL/2 compilation and current execution, RPL/2 aborts
   on a non recoverable system error;
   - openssl and sqlite3 libraries are added;
   - RPL_HOME env variable is added. When RPL/2 is called from librpl, this
   variable indicates RPL/2 root directory. If it is not set, root path
   is given by configure script (d_exec_path);
   * Thu Mar 03 2010 BERTRAND Joël <rpl@systella.fr> rpl-4.0.11 (RPL/2)
   - configure.in and makefile.am's are modified to add Cygwin support. Interix
   support is broken;
   - memory leak is fixed in recherche_type();
   - TeX files are now written in UTF-8 even default locale differs;
   - minor bug is fixed in ->STR (escaped characters);
   - minor bug is fixed in ->Q intrinsic. Resultat is returned as integer
   fraction intead real one;
   - SIGN now returns (0,0) instead (nan,nan) when complex argument is null;
   - Makefile.am are modified to authorize parallel builds;
   - minor bug is fixed in CR intrinsic. CR sends a carriage return to printer
   and writes warning to standard output;
   * Wed Feb 10 2010 BERTRAND Joël <rpl@systella.fr> rpl-4.0.10 (RPL/2)
   - escape codes are now converted in formateur(), not in recherche_type() to
   avoid a minor bug in EDIT and VISIT intrinsics;
   - minor bug is fixed in formateur_reel();
   - file-5.03 is patched to avoid bus error on systems that require memory
   alignment;
   - minor bug is fixed in evaluation(). Error returned by RPL/C external functions
   were able to be avoided by evaluation routine.
 * Tue Jan 26 2010 BERTRAND Joël <rpl@systella.fr> rpl-4.0.9 (RPL/2)  * Tue Jan 26 2010 BERTRAND Joël <rpl@systella.fr> rpl-4.0.9 (RPL/2)
 - New benchmark on same hardware than old one :  - New benchmark on same hardware than old one :
 cauchy:[~/rpl/bench] > ./bench.rpl   cauchy:[~/rpl/bench] > ./bench.rpl 

Removed from v.1.1  
changed lines
  Added in v.1.73


CVSweb interface <joel.bertrand@systella.fr>