[RPL/2] New RPL/2
BERTRAND Joël
joel.bertrand at systella.fr
Mer 22 Déc 20:46:02 CET 2004
Hello,
Last release this year. Now, it is possible to fork the main process
on several processors with the new DETACH, WFPROC (wait for
process), SEND and RECV (receive) intrinsics.
DETACH is the same intrinsic than EVAL, but the evaluation is done
in background. It returns a process ID. WFPROC waits for the
termination of a child process. SEND and RECV are used to send data
from the child to his parent.
For example:
#!/home/bertrand/gopher/rpl2/build/src/rpl -cs
ESSAI
<<
'FONCTION' detach
'FONCTION2' detach
swap
1 1000 for I
"B " I ->str + disp
next
dup disp
dup RECEPTION disp
dup RECEPTION disp
dup RECEPTION disp
dup RECEPTION disp
dup RECEPTION disp
dup RECEPTION disp
dup RECEPTION disp
dup RECEPTION disp
dup RECEPTION disp
dup RECEPTION disp
dup RECEPTION disp
dup RECEPTION disp
dup RECEPTION disp
dup RECEPTION disp
dup RECEPTION disp
dup RECEPTION disp
wfproc
dup RECEPTION disp
RECEPTION disp
clmf
>>
RECEPTION
<<
-> PROC
<<
do
PROC recv
until
end
>>
>>
FONCTION
<<
1 1000 start "A" disp next
1 send
2.5 send
(3,-4) send
[ 1 2 3 4 ] send
[ 1 -2.2 3 4 ] send
[ 1 -2.2 (3,2) 4 ] send
[[ 1 2 3 4 ]] send
[[ 1.3 2 3 4 ]] send
[[ 1 (2,-2) 3 4 ]] send # 1d send
'AZERTY' send
# 1d send
"Je me tiens sur le seuil de la vie et de la mort" send
{ 1 2 3 "lkj" } send
'sin(x+3)' send
<< X EXP >> send
>>
FONCTION2
<<
" les yeux baissés les mains vides" send
'FONCTION3' detach
"Et la mer dont j'entends le bruit est une mer qui en rend jamais"
" ses noyés" + send
>>
FONCTION3
<<
1 100 start "C" disp next
>>
Note than the bug that comes from new release of cpp is fixed.
Regards,
JKB
Plus d'informations sur la liste de diffusion RPL2