What's new in RPL/2 4.1.16
Nov 29, 2013
- OpenMotif is now patched to correctly detect fontconfig.
- Sqlite and ncurses are updated. rpl.inc is fixed.
- rpl() now sends arguments to RPL/2 subroutines.
- The rpl() prototype is fixed (rpl_home is an unsigned char *, not an unsigned char **).
- GSL is upgraded.
- A major bug is fixed in the READ intrinsic (it only occurs on Unix devices).
New in RPL/2 4.1.15 (Sep 6, 2013)
- RGDL and RGDR (ragged left and ragged right) new intrinsic functions have been added since 4.1.14.
- A major bug is fixed in the initialization sequence (segfault).
- It only occurs when RPL/2 is built with a forced localization.
- EXIT regression is fixed,
New in RPL/2 4.1.14 (Jun 24, 2013)
- The number of pipes between process was reduced.
- Gnuplot was upgraded and patched so that it can be built without a texinfo error.
- Libiconv was patched to support recent GLIBC (C11) versions.
- Some race conditions were fixed. Sqlite was upgraded.
- Major regressions were fixed in the IFERR/END structure and inin evaluation().
- Local variables were exported to called definitions.
- All users should upgrade to this release.
New in RPL/2 4.1.13 (Apr 2, 2013)
- This version contains a lot of bugfixes and some minor improvements. All users should upgrade to 4.1.13.
New in RPL/2 4.1.12 (Feb 28, 2013)
- A minor bug inrecherche_type() was fixed. { "\"" } was not evaluated as expected as an inner quote was not escaped.
- A new CIPHER intrinsic was added for performing key generation, decryption, and encryption.
- CBC-CMAC and HMAC digests were added.
- A DIGEST intrinsic was added.
- Signal management on NetBSD was fixed.
- RPL/CAS auto-configuration is upgraded.
- SQLITE support was added in SQLQUERY, SQLCONNECT, and SQLDISCONNECT.
New in RPL/2 4.1.11 (Dec 19, 2012)
- Shared and static variables are now stored in a tree.
- Only giac/src is built in rplcas (giac/Makefile.am is modified).
- Gnuplot, lapack, 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.
- Signal management is rewritten to avoid a strange bug on NetBSD where a signal handler can be called within a special thread and not in the calling thread.
- A 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.
New in RPL/2 4.1.10 (Oct 3, 2012)
- FORALL intrinsic is added.
- A major bug (deadlock) is fixed in CYCLE that only occurred when CYCLE is called to interrupt a loop from a subroutine within a compiled program.
- There is a workaround to avoid strange bug on slow networks in READ intrinsic.
- CRITICAL/END structure is added.
- When a program enters in a critical section, all other threads of the same process sleep until the program leaves the critical section.
New in RPL/2 4.1.9 (Aug 23, 2012)
- Tools are upgraded (giac, ncurses, sqlite, units, and lapack).
- LENGTH*(...) format is fixed.
- Some patches have been added to build RPL/2 on NetBSD.
- Escaped characters are fixed in READ and WRITE operations.
- A major bug is fixed in READ intrinsic (on socket) as End Of File condition was randomly caught on slow networks.
- stdin can now handle espaced characters strings in SYSEVAL.
- --with-gcc-version is added to the configure script to force the gcc version, as gfortran 4.7 is broken and crashes with a segmentation fault.
New in RPL/2 4.1.7 (Apr 17, 2012)
- Some minor bugs are fixed.
- Double quotes are escaped in INPUT and PROMPT intrinsic functions.
- An error is returned (instead of a warning) when an unavailable intrinsic function is called.
- RPL/2 can now be cross compiled until Debian archive generation.
- All table, vector, and matrix dimensions are now treated as unsigned long.
- The recherche_type() function is modified to use cached memory.
New in RPL/2 4.1.6 (Mar 1, 2012)
- Serial line parameters have been added to OPEN intrinsic.
- Multi-line input is now allowed.
New in RPL/2 4.1.5 (Jan 18, 2012)
- Many bugs have been fixed since the last stable release (**, signal management, and OPEN).
- A new rule is added to the main Makefile (make debian) to build a deb package.
- recherche_type() now converts huge integers into real numbers without error.
- WFSOCK is modified to handle unconnected sockets.
- REGEX is added. RESTART is added.
- copie_objet() now returns the same MTX even if a caller waits for a real copy.
- struct_mutex contains locks owner.
New in RPL/2 4.1.4 (Nov 23, 2011)
- Many compilation warnings have been fixed. Lapack, blas, ncurses, sqlite, and giac have been upgraded.
- LCASE, UCASE, POS, SIZE, CHR, NUM, and SUB now handle strings with special characters.
- A major bug has been fixed in INT.
- Many patches for Android and OS/2 have been committed.
- configure.ac has been improved to remove operating systems special cases.
- A major bug has been fixed in DRWS (SDAT was not used).
- Lists and integer, real, and complex numbers can now be written in unformatted files.
- The Rplawk makefile has been fixed to avoid a build process bug.
New in RPL/2 4.1.3 (Sep 21, 2011)
- All users should upgrade, as signal management is rewritten from scratch.
- The same subsystem is now used in the Linux, MacOS X, and xBSD ports.
- The author has only tested RPL/2 on NetBSD, but it should run fine on FreeBSD and OpenBSD.
- This new signal management should fix all multitask issues on Cygwin.
- As Lesstif is broken, RPL/2 is now shipped with a patched OpenMotif library.
- The new intrinsic SREV has been added.
New in RPL/2 4.1.1 (Jul 25, 2011)
- This version contains many compilation bugfixes. The configure script is updated and new flags are available: --with-32bits-abi, --with-64bits-abi, and --with-rplcas.
- Please note that RPL/CAS is not built by default. Lapack is upgraded to 3.3.1.
New in RPL/2 4.0.21 (Apr 6, 2011)
- Flag 34 is now used to enable or disable control character evaluation.
- A major bug was fixed in the P->R intrinsic function when the argument type is complex and degree mode is set.
- The new L->T and T->L intrinsic functions were added.
- The OLD filetype was fixed.
- FLOW socket support was added.
- FLOW sequential files were added.
- A new escape sequence was added to handle flow files (\x + hexadecimal code).
- Known escape sequences are \", \b, \n, \t, \x?? and \\.
New in RPL/2 4.0.19 (Sep 24, 2010)
- ptmalloc3 was removed. gnuplot was upgraded to 4.4.1.
- A deadlock was fixed in signal handlers.
- A minor bug was fixed in the evaluation() subroutine.
- AWK has been replaced by rplawk.
- rplawk is an original awk written by Brian Kernighan, modified to remove yacc code and renamed.
- Some workarounds have been written to avoid using buggy klibc SystemV IPCS and ABORT now works on eComStation.
- sqlite was upgraded to 3.7.2.
- A bug was fixed in software interrupts.
- A minor bug was fixed in data injection (POKE), which did not work as expected when a child process is protected by NRPROC.
New in RPL/2 4.0.18 (Aug 27, 2010)
- New ports are added: OpenBSD and OS/2.
- SWI now sends SIGCONT to an interrupted process to start it without delay.
- The random generator is cloned by SPAWN.
- getaddrinfo() is hard-coded when the host system does not provide getaddrinfo or freeaddrinfo.
- A major bug is fixed in CHR intrinsic when an obtained character is not printable.
- ATPOKE and CLRATPOKE new intrinsics are added.
- A major bug is fixed in the variable creation subroutine.
New in RPL/2 4.0.17 (Jul 14, 2010)
- New BACKTRACE intrinsic is added.
- A major bug is fixed in the SELECT/DEFAULT/END conditional structure.
- A major bug is fixed in the analyse() subroutine.
- When evaluation() returned an 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.
- The ATEXIT subroutine begins with an implicit CSTOP to avoid multiple stop signals.
- A memory leak is fixed in ROW+.
- It only occurred when a row was added to an empty matrix.
New in RPL/2 4.0.16 (Jun 24, 2010)
- A minor bug was fixed in the evaluation() subroutine.
- With this patch, the same program returns the same result with or without the -p flag. Interrupt stacks are now FIFO instead of LIFO.
- The debug memory allocation subroutines were improved to run in multithreaded programs.
- Some memory leaks were fixed in process management (SPAWN and DETACH).
- Version verification was added to shared objects.
- -D_GNU_SOURCE was added to the ptmalloc3 makefile to avoid a major bug on 64-bit Linux systems (false mremap() prototype).
- A major bug was fixed in rpliconv.
New in RPL/2 4.0.6 (Sep 29, 2009)
- pipe() is overwritten by a macro to avoid a system error.
- Communications between processes are done with pipes, and these pipes are managed by a specific asynchronous thread.
- If a script tries to create more threads than the management thread can destroy, you can quickly achieve the maximum number of opened files, and pipe() will return a system error.
- A major bug (deadlock) is fixed in process and thread management.
- A major bug is fixed in DET intrinsic (determinant was computed without LU diagonalization).
- A new SWAPCNTXT intrinsic is added.
- A minor bug is fixed in Makefile.am (licenses rule).
New in RPL/2 4.0.5 (Sep 10, 2009)
- Some bugfixes have been made in process management.
- CLRERR has been added to erase previous errors.
- Matrix rank is computed before matrix inversion.
- File locks have been added to stdin and stdout.
- stderr is not locked because all messages written by signal handlers are sent to stderr.
- SVL and SVD, COND and RANK, and DIAG-> and ->DIAG have been added.
- A major bug has been fixed in DET intrinsic.
- QR and LQ matrix decompositions have been added.
- All mathematical exceptions are now signaled by exceptions instead of execution error.
- A minor bug has been fixed in both CSTOP and RSTOP intrinsics.
- Named semaphore support has been added.
New in RPL/2 4.00 Pre 9 (Jan 28, 2009)
- Many fixes and new features.
- The tree for 4.0.0 is only open for regressions and the new memory allocator.