version 1.96, 2011/11/30 17:21:05
|
version 1.326, 2021/12/16 10:02:47
|
Line 1
|
Line 1
|
* Mon Nov 21 2011 BERTRAND Joël <rpl@systella.fr> rpl-4.1.5 (RPL/2) |
* Thu Mar 11 2021 BERTRAND Joël <rpl@systella.fr> rpl-4.1.33 (RPL/2) |
- RESTART is added (execve() on main RPL/2 process); |
- units is upgraded to 2.21; |
|
- file is upgraded to 5.41; |
|
- readline is upgraded to 8.1; |
|
- GnuPLOT is upgraded to 5.4.2; |
|
- openssl is upgraded to 1.1.1l; |
|
- sqlite is upgraded to 3.37.0; |
|
- ntl is upgraded to 11.5.1; |
|
- pari is upgraded to 2.13.3; |
|
- mpfr is upgraded to 4.1.0; |
|
- gmp is upgraded to 6.2.1: |
|
- GSL is upgraded to 2.7.1; |
|
- Giac is upgraded to 1.7.0. |
|
* Thu Mar 11 2021 BERTRAND Joël <rpl@systella.fr> rpl-4.1.32 (RPL/2) |
|
- major bug is fixed in EXIT intrinsic (when EXIT is followed by DO or |
|
WHILE); |
|
- SYSEVAL is fixed. Now, it is possible to write : |
|
"awk 'BEGIN { I=0; } /<comp ref=.*>/ { I=I+1; } " |
|
"{ if (I>0) print; } /<\\/comp>/ { I=I-1; }' " + FICHIER + |
|
syseval |
|
|
|
instead of |
|
"sh -c \"awk 'BEGIN { I=0; } /<comp ref=.*>/ { I=I+1; } " |
|
"{ if (I>0) print; } /<\\/comp>/ { I=I-1; }' " + FICHIER + |
|
syseval |
|
|
|
- src/rpl.h is modified as gcc 10.2 triggers an error on UNIX_MAX_PATH; |
|
- RPLCAS runs now in radian or degree like RPL/2 itself; |
|
- Lapack is upgraded to 3.9.0; |
|
- tools and rplcas are upgraded; |
|
- RAW option is added in STTY parameters; |
|
- speeds until 1Mbaud are added to serial line; |
|
- replace fwrite() by write() as fwrite() uses fseek() and triggers error on |
|
serial line; |
|
- flag 46 is used to simplify expression. When 46 is set, EVAL, |
|
->NUM automatically simplify expressions. DER always simplificates |
|
expressions; |
|
- giac is patched to be built with builtin CoCoALib. |
|
* Thu Oct 31 2019 BERTRAND Joël <rpl@systella.fr> rpl-4.1.31 (RPL/2) |
|
- RPL/CAS is modified to be built without error by gcc 9.2; |
|
- /tools are upgraded; |
|
- OpenSSL is upgraded to 1.1.1d; |
|
- SYSEVAL now sends signal to child process when RPL/2 catches SIGINT; |
|
- multithreading support is improved (and some bugs have been fixed); |
|
- SYSEVAL now sends data to stdin in a slave thread. |
|
* Sat Feb 2 2019 BERTRAND Joël <rpl@systella.fr> rpl-4.1.30 (RPL/2) |
|
- major bug is fixed in software interrupts subsystem that tried to |
|
lock a cleared mutex; |
|
- deadlock is fixed in SYSEVAL. This intrinsic function entered in |
|
deadlock if stdout/stderr of spawned subprocess was longer than pipe buffer |
|
size; |
|
- segmentation fault is fixed in NEG (on integer matrices); |
|
- CoCoALib is upgraded to avoid a compilaton failure on 32 bits systems; |
|
- SST does not enter anymore in called subroutine. |
|
* Mon Dec 24 2018 BERTRAND Joël <rpl@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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@systella.fr> 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 |
- 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 |
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 |
example), it is possible to lock mutex from a thread and unlock the same mutex |
Line 1664 WHILE/REPEAT/END can now be used in an e
|
Line 2039 WHILE/REPEAT/END can now be used in an e
|
* Mon Sep 3 2001 BERTRAND Joël <rpl2@systella.fr> rpl-4.00pre1 (RPL/2) |
* Mon Sep 3 2001 BERTRAND Joël <rpl2@systella.fr> rpl-4.00pre1 (RPL/2) |
- initial public release (GPL). |
- initial public release (GPL). |
* Thu Apr 2 1998 BERTRAND Joël <rpl2@systella.fr> rpl-4.00pre0 (RPL/2) |
* Thu Apr 2 1998 BERTRAND Joël <rpl2@systella.fr> 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) |
#* 1992 BERTRAND Joël rpl-3.02 (RPL-387) |
#- minor bugfixes. |
#- minor bugfixes. |
#* 1991 BERTRAND Joël rpl-3.01 (RPL-387) |
#* 1991 BERTRAND Joël rpl-3.01 (RPL-387) |