version 1.13, 2010/03/09 10:15:27
|
version 1.89, 2011/11/17 19:29:35
|
Line 1
|
Line 1
|
|
* Wed Sep 21 2011 BERTRAND Joël <rpl@systella.fr> rpl-4.1.4 (RPL/2) |
|
- 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@systella.fr> 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@systella.fr> 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@systella.fr> rpl-4.1.1 (RPL/2) |
|
- VERSION now returns 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) |
* 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 |
- in formatted file, string format returned a variable length string even if |
format was 'CHARACTER*(n)' (n characters string). Now, 'CHARACTER*(*)' returns |
format was 'CHARACTER*(n)' (n characters string). Now, 'CHARACTER*(*)' returns |
a variable length string and 'CHARACTER*(n') a fixed length string; |
a variable length string and 'CHARACTER*(n)' a fixed length string; |
- keyed access files support is added. Currently, only formatted files are |
- keyed access files support is added. Currently, only formatted files are |
supported; |
supported; |
- direct access files support is added. Currenlty, these files can only be used |
- direct access files support is added. Currenlty, these files can only be used |
Line 9 in formatted mode;
|
Line 281 in formatted mode;
|
- virtual variables are now writte in UTF-8 and all special characters |
- virtual variables are now writte in UTF-8 and all special characters |
in string are escaped; |
in string are escaped; |
- all formatted files are now converted into UTF-8; |
- all formatted files are now converted into UTF-8; |
- all file and unix socket names created by RPL/2 are now UTF8 compliant; |
- 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 |
- 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 |
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 |
have been modified between RPL/2 compilation and current execution, RPL/2 aborts |