[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