--- rpl/ChangeLog 2011/07/24 15:34:15 1.73 +++ rpl/ChangeLog 2018/12/24 15:21:23 1.289 @@ -1,9 +1,372 @@ +* Mon Dec 24 2018 BERTRAND Joël rpl-4.1.29 (RPL/2) +- sqlite, openssl, ncurses, gsl and gnuplot are upgraded; +- new record type is added. Record is a table extension. Data have been to be +called by name and not by position: + +RPL/2> <[ "key" "value" ]> record + +1: |[ <[ "key" + "value" ]> + <[ { } + { } ]> ]| + +- records can be used with GET and PUT. +* Thu May 29 2018 BERTRAND Joël rpl-4.1.29 (RPL/2) +- backslash can now be used in REGEX intrinsic; +- LINE*(*) is added to format. Now, it is possible to read and write regular +sequential files; +- first table support is added to RPL/C; +- unEscString() and escString() are added in RPL/C. +* Thu May 29 2018 BERTRAND Joël rpl-4.1.28 (RPL/2) +- mise à jour de Lapack en 3.8.0; +- mise à jour générale de RPL/CAS et des utilitaires dans le répertoire tools; +- memory corruption is fixed in SPLASH intrinsic; +- remove multiple module rpl_complex from Fortran sources; +- ncurses is upgraded; +- NBRCPUS is added ; +- splash screen is not centered on screen that contains pointer. +* Thu Aug 03 2017 BERTRAND Joël rpl-4.1.27 (RPL/2) +- DETACH is fixed and now runs as expected; +- motif$ is reborned; +- '->' can now by used in external names; +- sets$ library is done; +- new types can be created in external libraries; +- major bug is fixed in allocation(). When allocation size was null, there +was a buffer overflow (8 bytes); +- new types can be created and managed in modules (see modules/sets for +example). +* Wed Jun 28 2016 BERTRAND Joël rpl-4.1.26 (RPL/2) +- major bug is fixed in READ (FLOW sockets); +- Lapack is upgraded to 3.7.0; +- OpenSSL is upgraded; +- GSL is upgraded to 2.4; +- file is upgraded to 5.29; +- some modifications are done to buld RPL/2 (and modules built with RPL/C) under +Cygwin (Windows 10, 64 bits); +- some symbols are removed from executable; +- readline is upgraded to 7.0; +- OpenSSL symbols are not exported anymore; +- gnuplot is upgraded to 5.0.6. +* Tue Sep 27 2016 BERTRAND Joël rpl-4.1.25 (RPL/2) +- ncurses, file, openssl and sqlite are upgraded; +- major bug is fixed in DETACH (race condition and dead lock); +- lot of minor bugs have been fixed in processus management; +- (p)select() is replaced by poll() due to a strange bug in glibc. pselect() +returns a erroneous number of readable devices when max file descriptor is +greater than 1024; +- tools/file-5.25.diff.gz is fixed (against file-5.25 and not 5.11); +- OpenSSL is upgraded and new API is used. +* Tue Mar 01 2016 BERTRAND Joël rpl-4.1.24 (RPL/2) +- tools are upgraded (xpm, openssl, ncurses, sqlite, file); +- BSD sockets options are fixed; +- RPL/2 splash screen is upgraded; +- gmp is upgraded to 6.1.0; +- sys_realloc() is added in library to allow reallocation à la C in RPL/C +programs; +- reallocate function is added to rplexternals.h; +- GET, GETI, LIST-> and TABLE-> now evaluate symbolic constants instead of +return associated fonctions in stack; +- { e } 1 get now returns e and not E. Same fix with infinity and i symbolic +constants ; +- GET is fixed and now evaluates names when names are not protected: +4 'X' sto { X } 1 get returns 4 and not X. Same fix for tables; +- --enable-native flag is added to configure script; +- lapack is upgraded to 3.6.0. +* Thu Nov 26 2015 BERTRAND Joël rpl-4.1.23 (RPL/2) +- Giac is upgraded to 1.2.2 and mpfi is added; +- GSL is upgraded to 2.1; +- major bug is fixed in interruption (mutexes failure); +- minor bug is fixed in evaluation(): +<< 1 'X' sto { X } 'Y' sto 'Y(1)' eval >> returns 1 and +<< 1 'X' sto { 'X' } 'Y' sto 'Y(1)' eval >> only returns 'X'. +Same bugfix for tables; +- 4 'X' sto <[ X ]> returns <[ X ]> in both interpreted and compiled mode. +Before this bugfix, it returned <[ 4 ]> in interpreted mode and <[ X ]> +in compiled mode. +* Wed Sep 16 2015 BERTRAND Joël rpl-4.1.22 (RPL/2) +- socket options are now forced on socket created by WFSOCK to fix 'KEEP ALIVE' +bug; +- sqlite is upgraded; +- major regressions are fixed in compiler; +- gnuplot is upgraded from 5.0.0 to 5.0.1; +- ncurses is upgraded from 5.9 to 6.0 ; +- major bug is fixed in rpl_malloc(). rpl_malloc(0) crashed with segfault. +* Mon Jun 08 2015 BERTRAND Joël rpl-4.1.21 (RPL/2) +- nested function options() is removed from instruction_open() as +LLVM/CLANG does not support this kind of function; +- sqlite and ncurses are upgraded; +- all compilation errors are now printed; +- escaped characters are allowed in LOGGER intrinsic; +- 1 -> Y 'Z' now returns undefined implicit name error. +* Mon Feb 19 2015 BERTRAND Joël rpl-4.1.20 (RPL/2) +- minor bug is fixed in evaluation(). When analyse() is called from +evaluation(), RPL/2 always evaluates compiled expression; +- 1 -> X 'X' can be evaluated ('X' is a name and before last patch, only +algebraic expressions were able to be directly evaluated); +- major regression introduced in 4.1.19 is fixed in parser. +<< 1 -> X << exp >> >> returned syntax error; +- compilation() now returns an error if a definition name contains invalid +characters instead of BUG(); +- zlib is upgraded; +- sqlite and openssl are upgraded; +- new buffercached allocator is added; +- giac is upgraded to 1.1.4; +- Gnuplot is upgraded to 5.0.0. +* Mon Jan 5 2015 BERTRAND Joël rpl-4.1.19 (RPL/2) +- EQV is added in algebraic input and output subroutines; +- ncurses and sqlite have been upgraded with last patches; +- openssl is upgraded to 1.0.1j and Gnuplot is upgraded to 4.6.6; +- expression simplification subsystem is rewritten from scratch. Now, it does +not do anything. Only fonctions to convert algebraic expression to and from +q-tree have been written and successfuly tested; +- EQV intrinsic is added; +- major bug is fixed in XOR intrinsic (erroneous truth table with integer +or real arguments); +- parser is upgraded. Now, it is possible to write <[[[3]]]> or {{5}} (without +space) and [[ 3 4 ]]4 catches error; +- major regression is fixed in recherche_type() (complex type); +- shebang paths are modified to be computed by configure script (NetBSD issue); +- ncurses is upgraded. +* Thu Jul 17 2014 BERTRAND Joël rpl-4.1.18 (RPL/2) +- major regression is fixed in SysV semaphore emulation subsystem (segfault); +- gmp is upgraded; +- ncurses is upgraded; +- empilement_pile_last() is modified to delete argument from current stack if +it cannot save all arguments (to few arguments error _before_ first call +to depilement() by parent routine). +* Wed Apr 23 2014 BERTRAND Joël rpl-4.1.17 (RPL/2) +- semaphores have been removed from s_signaux as POSIX doesn't assure that +semaphores are synchronized between address spaces without msync(); +- sqlite is upgraded; +- OpenSSL is upgraded; +- lapack is upgraded to 3.5.0; +- use of uninitialized variables is avoided in FORALL; +- giac is upgraded; +- units is upgraded; +- OpenSSL, sqlite and gnuplot are upgraded; +- major bug is fixed in both FOR and FORALL (segmentation fault if both +instructions are not followed by a name). +* Fri Nov 28 2013 BERTRAND Joël rpl-4.1.16 (RPL/2) +- OpenMotif is patched to correctly detect fontconfig; +- sqlite and ncurses are patched; +- rpl.inc is fixed; +- rpl() now sends arguments to RPL/2 subroutine; +- rpl() prototype is fixed (rpl_home is an unsigned char * not an unsigned char +**); +- GSL is upgraded; +- major bug is fixed in READ intrinsic (Unix device). +* Fri Sep 6 2013 BERTRAND Joël rpl-4.1.15 (RPL/2) +- RGDL and RGDR (ragged left and ragged right) are added; +- major bug is fixed in initialization (segfault). It only occurs when RPL/2 +is built with a forced localization; +- EXIT regression is fixed. +* Fri Jun 21 2013 BERTRAND Joël rpl-4.1.14 (RPL/2) +- number of pipes between process is reduced; +- gnuplot is upgraded; +- libiconv is patched to be built with recent glibc (C11); +- some race conditions have been fixed; +- sqlite is upgraded; +- Major regression is fixed in IFERR/END structure; +- Major regression is fixed in evaluation(). Local variables were exported +to called definitions. +* Mon Apr 1 2013 BERTRAND Joël rpl-4.1.13 (RPL/2) +- integer overflows have been fixed (NEG, ABS, minus); +- global variables can now be recalled from ATEXIT procedure; +- ATEXIT registered procedure is now executed even if program is stopped by +SIGINT; +- minor bug is fixed in TOKENIZE intrinsic instruction. TOKENIZE did not work on +a copy of input string; +- major bug (segfault) is fixed in liste_variables(). It only occurs +when this function is called with shared variables; +- all internal data are now stored in 64 bits wide integers (even is 32 bits +ABI is selected); +- major bug is fixed in recherche_instruction_suivante(). In some +circumstances, this function can return a spurious error; +- new NATIVE*(*) data format is added. By default, native*(*) is used +to write data without precision loss. It can also be used to write +complex objects like expressions, lists or tables; +- major bug is fixed in formateur(). When INT64_MIN was pushed into stack, +internal value was good but RPL/2 was not able to correctly display +this value. This bug comes from ABS as ABS(INT64_MIN) cannot be represented +in integer. All abs(), fabs() and labs() present in source code have been +checked to avoid this kind of bug; +- unformatted sockets are now usable as unformatted files; +- BACKSPACE now runs on unformatted file; +- major bug is fixed in BACKSPACE that didn't check if '"' characters were +escaped; +- CHARACTER*(n) format now counts escaped characters; +- transliteration is avoid in rpl-core file generation to authorize core +creation even if a transliteration error is caught; +- major bug is fixed in evaluation(). System stack was not correctly +destacked when execution error occurs; +- major bug is fixed in READ (socket interface); +- minor bug is fixed in analyse_flux(). +* Wed Feb 27 2013 BERTRAND Joël rpl-4.1.12 (RPL/2) +- bug is fixed in recherche_type(). { "\"" } was not evaluated as expected +as inner quote was not escaped; +- CIPHER new intrinsic is added to perform key generation, decryption and +encryption; +- CBC-CMAC digest is added; +- HMAC digest is added; +- DIGEST intrinsic is added; +- signal management is fixed to be usable on NetBSD; +- RPL/CAS autoconfiguration is upgraded; +- sqlite, openssl, giac, gmp ave been upgraded; +- SQLITE support is added in SQLQUERY, SQLCONNECT and SQLDISCONNECT. +* Tue Dec 18 2012 BERTRAND Joël rpl-4.1.11 (RPL/2) +- shared variables are now stored in a tree; +- lapack is upgraded to 3.4.2; +- only giac/src is built in rplcas (giac/Makefile.am is modified); +- gnuplot is upgraded to 4.6.1; +- giac, units and ncurses are upgraded; +- interprocess capabilities are removed when RPL/2 cannot run its initialization +routine to keep operating system as clean as possible; +- sem_wait() has to catch EINTR in thread_surveillance_signaux(); +- signal management is rewritten to avoid a strange bug on NetBSD. On NetBSD, +a signal handler can be called within a special thread and not in the +calling thread; +- static variables are now written in a variables tree; +- major bug is fixed in STO intrinsic. STO returns an error when it has +to create a global variable if intrinsic none (default) is set. +* Mon Oct 1 2012 BERTRAND Joël rpl-4.1.10 (RPL/2) +- FORALL intrinsic is added; +- major bug (deadlock) is fixed in CYCLE. Only occurs when CYCLE is called to +interrupt a loop from a subroutine within a compiled programm; +- workaround to avoid strange bug on slow network is written in READ +intrinsic; +- CRITICAL/END structure is added. When program enters in a critical +section, all other threads of the same process sleep until program leaves +critical section. +* Wed Aug 22 2012 BERTRAND Joël rpl-4.1.9 (RPL/2) +- giac is upgraded to 0.9.8; +- ncurses is patched with last patches; +- Sqlite is upgraded to 3.7.13; +- Units is upgraded to 1.89e; +- Lapack is upgraded to 3.4.1; +- LENGTH*(...) format is fixed; +- some patches have been added to build RPL/2 on NetBSD; +- escaped characters are fixed in READ and WRITE operations; +- major bug is fixed in READ intrinsic (on socket). End of file condition +was randomly caught on slow network; +- stdin can now handle espaced characters strings in SYSEVAL; +- --with-gcc-version is added to configure script to force gcc version as +gfortran 4.7 is broken and crashes with segmentation fault. +* Mon May 21 2012 BERTRAND Joël rpl-4.1.8 (RPL/2) +- POLL now accepts more than one descriptor and returns informations +about pollable descriptors; +- SMPHRTRYDECR now takes timeout value instead of returning when semaphore +cannot by decremented; +- signal handlers are fixed to avoid spurious and very rare deadlocks; +- pari is upgraded; +- force CFLAGS for tools/file (-O2 -g) to avoid mmap() error; +- giac, gmp and mpfr have been upgraded. +* Fri Apr 13 2012 BERTRAND Joël rpl-4.1.7 (RPL/2) +- double quote is escaped in INPUT and PROMPT intrinsic functions; +- error is returned (instead of warning) when unavailable intrinsic function +is called; +- lot of minor bugs have been fixed; +- ncurses and file are patched; +- RPL/2 can now be cross compiled (until .deb archive generation); +- all table, vector and matrix dimensions are now treated as unsigned long; +- recherche_type() function is modified to use cached memory; +- gnuplot is upgraded to 4.6.0. +* Wed Feb 29 2012 BERTRAND Joël rpl-4.1.6 (RPL/2) +- serial line support is added to OPEN (STTY options); +- multiline inputs are allowed: +schroedinger:[~/cvs/build/src] > rpl -is ++++RPL/2 (R) version 4.1.6 (Monday 01/30/12, 10:20:38 CET) ++++Copyright (C) 1989 à 2011, 2012 BERTRAND Joël + ++++Ce logiciel est un logiciel libre sans aucune garantie de fonctionnement. ++++Pour plus de détails, utilisez la commande 'warranty'. + +RPL/2> [[ 1 2 3 ] ++ 001> [ 4 5 6 ] ++ 002> [ 7 8 9 ]] + +1: [[ 1 2 3 ] + [ 4 5 6 ] + [ 7 8 9 ]] +RPL/2> [[ 1 23 ] ++ 001> [ 4 5 6 ]] ++++Erreur : Erreur de syntaxe [19267] + +1: [[ 1 2 3 ] + [ 4 5 6 ] + [ 7 8 9 ]] +RPL/2> [ 1 2 3 ++ 001> annulation +RPL/2> abort + +'annulation' is done by pressing CTRL+g, and abort by CTRL+d on empty line. +* Tue Jan 17 2012 BERTRAND Joël rpl-4.1.5 (RPL/2) +- ncurses, sqlite and openssl have been upgraded; +- major bug is fixed in ** (integer integer **) when first argument is equal to +-1; +- major bug is fixed in signal management. With new signal management, thread or +process were not signalized anymore by POSIX signals. If a thread or a process +was sleeping, it was not interrupted; +- minor bug is fixed in OPEN intrinsic. Now, when a socket is open, its default +adress is set to 0.0.0.0; +- new rule is added to main makefile (make debian) to build deb package; +- new benchmark (Xeon W3520 @ 2.67GHz) : +schroedinger:[~/cvs/bench] > ./bench.rpl ++++RPL/2 (R) version 4.1.5 (Friday 12/02/11, 12:18:23 CET) ++++Copyright (C) 1989 à 2010, 2011 BERTRAND Joël +Number of scalar operations per second and per core : 3809121.83444626 +schroedinger:[~/cvs/bench] > +- recherche_type() did not convert huge integer in real. Now, +18446744072742037448 is converted into real as value cannot be stored in +RPL/2 integer type; +- WFSOCK is modified to handle unconnected sockets; +- REGEX is added; +- RESTART is added (execvp() on main RPL/2 process); +- copie_objet() now returns same MTX (struct_mutex) even if caller wait for +a real copy. Now, struct_mutex contains locks owner. On Linux or Solaris (for +example), it is possible to lock mutex from a thread and unlock the same mutex +from another thread. On NetBSD, system crashes. +* Mon Nov 21 2011 BERTRAND Joël rpl-4.1.4 (RPL/2) +- rplcas/@GIAC@/src/config.h is removed to avoid compilation bug. config.h +written by configure script was overloaded by src/config.h; +- lot of compilation warnings have been fixed; +- lapack and blas have been upgraded; +- ncurses, sqlite and giac have been upgraded; +- LCASE, UCASE, POS and SUB now handle escape characters; +- major bug is fixed in INT (numerical integration was unusable as type +checking condition was always false); +- SIZE, CHR and NUM can handle strings with escape characters; +- lot of patches for Android and OS/2; +- configure.ac is improved to remove operating systems special cases. +- major bug is fixed in DRWS (SDAT was not used...); +- lists, and integer, real and complex numbers can now be written in +unformatted files; +- rplawk makefile is fixed to avoid build process bug. Warning, with these +modifications, sources tree has to be writable. +* Wed Sep 21 2011 BERTRAND Joël rpl-4.1.3 (RPL/2) +- Linux port, MacOS X port and xBSD ports are tested and fully fonctionnal; +- libsigsegv is added; +- OpenMotif is added; +- all internal signal handlers are rewritten to avoid POSIX signal usage +and to be async signal safe; +- SIGSEGV signal handler is rewritten; +- SREV intrinsic is added. +* Tue Aug 9 2011 BERTRAND Joël rpl-4.1.2 (RPL/2) +- I have fixed a lot of bugs in gpp preprocessor (and sent gpp 3.0 to official +gpp developer). Now, macros like + + #define foo foo bar + +is evaluated without recursion. gpp 2.24 crashed on stack overflow. +- LIMIT is added; +- Now, undefined values like 'infinity/infinity' are computed. Result is +undef constant; +- infinity constant is added. * Sun Jul 24 2011 BERTRAND Joël rpl-4.1.1 (RPL/2) -- VERSION now return OS type, architecture and ABI; +- VERSION now returns OS type, architecture and ABI; - configure script is updated. New flags : --with-32bits-abi - --with-64bits-abi - --with-rplcas + --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-4.1.0 (RPL/2) @@ -1622,7 +1985,7 @@ WHILE/REPEAT/END can now be used in an e * Mon Sep 3 2001 BERTRAND Joël rpl-4.00pre1 (RPL/2) - initial public release (GPL). * Thu Apr 2 1998 BERTRAND Joël rpl-4.00pre0 (RPL/2) -- RPL is rewritten from scratch and named RPL/2. +- RPL is rewritten from scratch and renamed RPL/2. #* 1992 BERTRAND Joël rpl-3.02 (RPL-387) #- minor bugfixes. #* 1991 BERTRAND Joël rpl-3.01 (RPL-387)