AltME: REBOL3

Messages

GiuseppeC
Next week I'll propose a bounty.
Henrik
I hope there will be someone available to do it. :-)

PeterWood
In Rebol2, this works:
>> do load make block! "a: 1 print a"
1
But in Rebol3 , it doesn'tt:
>> do load make block! "a: 1 print a"
** Script error: -apply- does not allow set-word! for its source argument
** Where: apply map-each case load
** Near: apply :load [:item header all type ftype]
Does anybody know why this change of behaviour was made?
WiseGenius
The problem is this part:
>> load [a: 1 print a]
** Script error: -apply- does not allow set-word! for its source argument
** Where: apply map-each case load
** Near: apply :load [:item header all type ftype]
I'm still a noob in Rebol, but my guess is that using `load` on a block in Rebol 2 returns the original block, but in Rebol 3 it returns a block with `load` applied to each value in the block.
Rebol 2:
>> load ["a:" "1 + 1"]
== ["a:" "1 + 1"]
Rebol 3:
>> load ["a:" "1 + 1"]
== [a: [1 + 1]]
Maybe it was changed to make `load` less redundant?
Both of these seem to work in both Rebols:
>> do "a: 1 print a"
1
>> do load "a: 1 print a"
1

PeterWood
The reason that I ask is that Ladislav's explanation in https://en.wikibooks.org/wiki/REBOL_Programming/Advanced/Interpreter is based on it working. Perhaps the explanation only applies to Rebol 2.
I'll try again without the HTTP link:
The reason that I ask is that Ladislav's explanation of the Rebol interpreter in Wiki iBooks s based on it working. Perhaps his explanation only applies to Rebol 2.
Endo
In the page you sent, Ladislav says:
"if the do function evaluates an error! datatype value and the value isn't used as an argument to a function accepting error values, the interpreter causes the error.
In my opinion, this exception is unnecessary and can be painlessly avoided in the future versions of the interpreter."
Is this changed already?
>> f:  func [e [error!]] [true]
>> f  x
== true
And, before above lines, do the following:
>> x: try [1 / 0]
It works as above for R2 and R3.
Ah, sorry, he already says "and the value isn't used as an argument to a function accepting error values", I missed that part, sorry.
Maarten
Has anybody ever done a Redis client for Rebol3?
Pekr
IIRC, Rebolek did Redis protocol for R3 .....
Rebolek
There is probably one bug that I fixed locally, but I'm not sure if I uploaded the fix to GitHub. I will check it.
Rebolek
(fix uploaded)
Ashley
"using path! is much faster than working with string!. make path! [user 1 name] runs about 8-9 faster than rejoin" ... AJOIN addresses this.

Rebolek
Yes, that's true, AJOIN is faster. There's definitely room for optimalization.

Maarten
@Rebolek - thanks!

Maarten
I am in need of some docs for R3 - how dows the module system work, mostly... I need exhustive documentation in terms of options, i.e. can I upgrade modules, sign them, etc.? What's possible?
Pekr
Module system was imo never properly finished and/or documented. Dunno if first implementation was done by Carl or BrianH, but Carl asked BrianH to rewrite it. He did so. But I also remember, that he still wanted some PROTECT function changes, etc., which were imo not done. IIRC, Rebolek tried to use the module system, not sure about his experience, but some ppl found the module system quite complicated ....

Last message posted 161 weeks ago.