r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[!REBOL3]

Dockimbel
27-Feb-2011
[7548]
In fact, this blocking mezz-level CALL is used in worker process 
where it's allowed to wait. Right, WaitForSingleObject is the correct 
way, this CALL was just a quick adaptation of my async version for 
Cheyenne (I needed to pass environments variables to a child process 
for CGI support),  but I think I'll drop it in next Cheyenne revisions 
and use a different approach.
Robking
28-Feb-2011
[7549]
I had a question regarding event handling in REBOL 2. Please let 
me know the appropriate forum for that sort of question. :)
BrianH
28-Feb-2011
[7550]
Try Core or View.
Andreas
28-Feb-2011
[7551]
Or "Rebol School" :)
Robking
28-Feb-2011
[7552]
Thanks, sorry. Works for me. :)
Andreas
28-Feb-2011
[7553x4]
Me: "What makes CASE/all different from a long sequence of IFs?"
Brian: "Maintainability of code."


That's probably an effect of CASE/all enforcing a strict sequence 
of IFs, i.e. without other (unconditional) code blocks in between 
those IFs.
But this is probably only a matter of discipline, as one can easily 
smuggle uncoditional code into CASE/all too (by using #[true] as 
condition).
At which point, all that's left with CASE/all is one additional level 
of indentation.
And maybe a more efficient evaluation in case of R3.
BrianH
28-Feb-2011
[7557x3]
Yes to both of those. With the old LOAD, noone other than me could 
add features because the old control flow was too complex. With the 
new LOAD and LOAD-HEADER, features were easy to add.
The most efficient way to add non-conditional code is to put the 
code in the conditional clause and have none for the associated code 
block. There are several lines like that in LOAD-HEADER.
And it is definitely more efficient evaluation in R3, and R2 as well.
Ladislav
1-Mar-2011
[7560]
What makes CASE/all different from a long sequence of IFs?

 - as far as I am concerned, I simply don't use, and never used CASE/ALL
Rebolek
1-Mar-2011
[7561]
You should try it, it's not bad.
Ladislav
1-Mar-2011
[7562x2]
Do not have any code where it would be of any advantage
As far as the maintainability of the code goes, it shall be noted, 
that CASE/ALL is one of the worst constructs to test.
Henrik
1-Mar-2011
[7564]
I have two CASE/ALLs in NLPP (Ladislav knows what NLPP is). :-)
Ladislav
1-Mar-2011
[7565]
http://www.saphirion.com/downloads/files/saphirion_nlpp.pdf
Henrik
1-Mar-2011
[7566]
Nevertheless, the code could be replaced, if needed, but it looks 
to be working ok with CASE/ALL.
BrianH
1-Mar-2011
[7567x3]
I've never had a problem with CASE itself, /all or not. If it is 
tough to test I've never seen it.
There are a few functions in R3 that take the form of a CASE/all 
followed by a CASE. SAVE is one such function, though it has a series 
of IF statements at its beginning leftover from before that could 
be made more efficient by adding to the beginning of the CASE/all.
CASE/all is no more difficult to test than the series of IF statements 
it replaces. Easier to analyze, because it's more structured.
Ladislav
1-Mar-2011
[7570x3]
CASE/all is no more difficult to test than the series of IF statements 
it replaces.
 - yes, sure that is true
As to why CASE/ALL is hard to test: for example, if you have 10 cases 
in a CASE statement, and use 10 different tests for testing such 
a code, then, to be as thorough when CASE/ALL using 10 cases you 
would need 1024 tests.
sorry for the formulation, but I hope the idea is clear
Sunanda
2-Mar-2011
[7573]
Is this a problem, or a change in execution model?

     b: reduce ['now]
    do first b
    (nothing on console)
    do do first b
    == 2-Mar-2011/13:10:13

R2 will respond with the date with only  one DO
Ladislav
2-Mar-2011
[7574]
A change in execution model
Andreas
2-Mar-2011
[7575]
Anyone knows if error printing is currently hookable in R3? I.e. 
is there a function somewhere which is called by the interpreter 
when an error! escapes to the top-level?
BrianH
3-Mar-2011
[7576]
Not currently.
Rebolek
3-Mar-2011
[7577]
Bug?

>> a: context [f: does [print b] b: none]
== make object! [
    f: make function! [[][print b]]
    b: none
]

>> c: context  [b: make map! [m 4]]
== make object! [
    b: make map! [
        m 4
    ]
]

>> a1: make a c
== make object! [
    f: make function! [[][print b]]
    b: make map! [
        m 4
    ]
]

>> a1/f
none
BrianH
3-Mar-2011
[7578x2]
Appears to be a bug. I'm writing the ticket now.
See here for details: http://issue.cc/r3/1863
GrahamC
4-Mar-2011
[7580x2]
Does tab for path completion not work anymore ?
Or, did it never work?
Rebolek
4-Mar-2011
[7582]
never worked in R3
GrahamC
4-Mar-2011
[7583x2]
ok.
How bad would it be to have a strict  version of rebol vs a relaxed 
version.  I'm thinking of things like skip which require an integer 
and choke on none ...
BrianH
4-Mar-2011
[7585x2]
It would be bad to have a non-strict version, as someone might use 
it.
That's only bad if their scripts were published or used by others.
Rebolek
4-Mar-2011
[7587x2]
Can I create object from block of words and values?
*blocks of... like -  words: [a b] values [1 2]
Sunanda
4-Mar-2011
[7589]
This is one (fairly manual) way:
    words: [a b]
    values: [1 2]
    obj: make object! []
    for n 1 length? words 1 [
        append obj words/:n set in obj words/:n values/:n
        ]
BrianH
4-Mar-2011
[7590]
set bind/new/copy words obj values
Rebolek
4-Mar-2011
[7591x2]
yes..I though that there may be some fast native function for it 
;)
ah, thanks!
BrianH
4-Mar-2011
[7593]
The /copy is only necessary if you will be reusing the words block.
Sunanda
4-Mar-2011
[7594]
This line of code (complete with typo of extra colon on the ONLY) 
works in R2
    a: copy [] insert/only: a 8
But, in R3, it acts as a no-op

Neither behaviour seems reasonable -- why not a syntax error?
BrianH
4-Mar-2011
[7595]
There is a ticket about that already.
Sunanda
4-Mar-2011
[7596]
Thanks -- must have missed that one.
BrianH
4-Mar-2011
[7597]
See http://issue.cc/r3/1558and http://issue.cc/r3/1559