[RPL/2] New release 4.00pre8t
BERTRAND Joël
joel.bertrand at systella.fr
Dim 21 Jan 20:03:18 CET 2007
Hello,
New release pre8t. All variable management routines are rewritten to
allow static and volatile variables (before this release, all variables
were volatile). Now, a local variable is volatile by default, but can be
declared as static. A static variable can be switched to volatile. I
have tested this new feature a long time, I haven't found any mistake
(but this new feature is given without any warranty, etc. Known song ;-) ).
WARNING : the new variable management routines are uncompatible with
the old one. A local variable is only accessible in its subroutine, not
in all child subroutines.
Example :
#!/usr/local/bin/rpl -sc
TEST
<<
1 1000 start VAR_S VAR_S2 next
>>
VAR_S
<<
static 3 -> C << C disp 'C' incr if C 10 > then 'C' volatile end >>
>>
VAR_S2
<<
static 3 -> C << C disp 'C' decr >>
>>
A variable (global or local) can be protected by PROTECT (or PARAMETER
for global variable) and unlocked by UNPROTECT (or VARIABLE for global
variable). The new intrinsic SAVE is added to write into a global
variable when a local variable with the same name exists. When a
variable is locked, it cannot be modified.
I have added a configure.in script in lapack subtree to avoid a bug in
an autoconf macro. Now, RPL/2 use lapack-3.1.0 and ncurses-5.6.
SUSPEND is added. RPL/2 waits for a SIGCONT signal to continue. I use
this intrinsic statement in conjonction with crond.
COL->, ->COL, ROW->, ROW-> intrinsics are written to manipulate
matrices. A minor bug is fixed in ->list and ->array. Without any
argument, these intrinsic only return a SIGSEGV.
Regards,
JKB
Plus d'informations sur la liste de diffusion RPL2