• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r4wp

[!REBOL3] General discussion about REBOL 3

BrianH
31-Jan-2013
[939]
Waiting on a block is always "in addition to". I mean, being able 
to wait on a condition changing, as another wait feature. How would 
you want this implemented? We don't have write barriers for words 
(that I know of). WAIT basically works based on signalling events, 
afaik. Would a port scheme for generic signalling completion of a 
task do, as long as it's easy enough to do?
GrahamC
31-Jan-2013
[940x2]
Yes, a port scheme was something I was thinking of
How does wait on a date! work?  is the date checked or is there a 
signal/event produced on change of system date ?
Andreas
31-Jan-2013
[942]
wait does not work with date!, it works with time.
GrahamC
31-Jan-2013
[943]
Ah... the documentation is a little misleading then http://www.rebol.com/r3/docs/functions/wait.html
BrianH
31-Jan-2013
[944]
The spec is taken from R3, but the docs for this function haven't 
been updated from their R2 equivalents. A problem with a lot of the 
R3 docs, I'm afraid.
Andreas
31-Jan-2013
[945]
Thanks for reporting Graham, fixed.
GrahamC
31-Jan-2013
[946]
What is fixed?
Andreas
31-Jan-2013
[947]
The problem in the documentation you reported earlier.
GrahamC
31-Jan-2013
[948]
ahh... the old version was caching
BrianH
31-Jan-2013
[949x2]
I'm getting metaphorically killed by the FOREACH function blowing 
a system assertion 1207 periodically. I'm trying to process a couple 
thousand files and it's dying before it's finished. The script will 
need to be rewritten to call another R3 instance per file, just to 
make sure that it completes.
There's only so much of the process that can be rewritten to uzse 
FORALL. And of course MAP-EACH is getting hit by the same bug.
GrahamC
31-Jan-2013
[951]
which build?
BrianH
31-Jan-2013
[952]
Latest from rebolsource, but it also affected alpha 111.
GrahamC
31-Jan-2013
[953]
and it's not a memory leak?
BrianH
31-Jan-2013
[954x2]
I was able to make it last longer by switching some calls from FOREACH 
to FORALL - I figure it's a context allocation bug.
I'm going to switch the rest of the code to non-rebinding loops and 
see if that helps.
GrahamC
31-Jan-2013
[956]
Well, that doesn't bode well for long running scrips
BrianH
31-Jan-2013
[957x2]
Right? Gah!
And it's an emergency too, we really need that analysis.
GrahamC
31-Jan-2013
[959]
Rebol2
BrianH
31-Jan-2013
[960]
It might be easier. It's parsing, and uses MAP-EACH a lot, and there's 
a bug in MAP-EACH in R2 (that's my fault, sorry), but that is one 
approach I'll have to consider.
Andreas
31-Jan-2013
[961]
Win32, I assume?
BrianH
31-Jan-2013
[962]
Yup.
Andreas
31-Jan-2013
[963x4]
1207 is RP_MISSING_END
Only point that is thrown is within the GC.
Is it easy for you to reproduce?
I mean, can you quickly run a test binary and see if things improve?
BrianH
31-Jan-2013
[967]
I can reproduce it like clockwork. It even crashes in the same spot 
every time. Send me your test binaries!
BrianH
1-Feb-2013
[968x3]
I'm going to save this version of the crashing script, then see if 
I can get it to crash with local files only, then see if I can get 
it to crash without using the files at all (since they are proprietary). 
Also, I have to make a separate version that doesn't crash so I can 
get the results. This is annoying, but if we can get a GC bug fixed 
in R3 then it will be worth it.
Apparently I can make it last longer by using the *EACH functions 
less., switching to loops that don't allocate contexts. However, 
I create objects to store the data, so those eventually cause the 
crash. Still repeatable, so it's probably happening after allocating 
a certain number of objects/contexts. It acts identically on 32bit 
and 64bit Win7, crashing at the same point in the process.
Switching the objects allocated in the data to maps makes the crash 
go away altogether. That narrows down what to search for rather thoroughly.
GrahamC
3-Feb-2013
[971x2]
How does one compile r3 for a platform in which there is no existing 
R2 ?
Just curious as to how r3 would make it to Aros
Scot
3-Feb-2013
[973]
Compile a simple c version of make make for Aros?
Arnold
3-Feb-2013
[974]
Carl states that he can do it in 5 minutes. (Because he has the sources 
for R2) :(
BrianH
3-Feb-2013
[975]
Graham, I thought that make make uses R3, not R2. You could run make 
make on another platform, then copy the resulting setup files to 
your target platform.
GrahamC
4-Feb-2013
[976]
that sounds right ... if I can install Aros I might give it a whirl
BrianH
5-Feb-2013
[977]
Going over some basic evaluation errors, which look like they're 
easier to fix than I thought they'd be. While at it, I've been discovering 
R3 language features that I never knew about before. Going to check 
older versions to see when they were added. Turns out that there's 
a SET optimization that I never knew, but which would really come 
in handy :)

>> a: 1 
== 1 
>> set [:b] [a] 
== [a] 
>> b 
== 1


Setting a get-word in a block to a word sets the get-word to the 
value of the word, not to the word itself. This would eliminate the 
intermediary block in most set word-block reduce value-block expressions, 
making it a better multi-assignment function.
Rebolek
6-Feb-2013
[978]
Is there an opposite function to DEHEX in R3?
Ladislav
6-Feb-2013
[979]
Setting a get-word in a block to a word sets the get-word to the 
value of the word, not to the word itself.

 - this is rather dangerous if not documented, I do not think it is 
 expectable
VincentE
6-Feb-2013
[980]
Rebolek: to-url
Rebolek
6-Feb-2013
[981]
Vincent, unfortunately not:


>> to url! "http://www.domain.com?url='http://nope.it.is/unencoded'"
== http://www.domain.com?url='http://nope.it.is/unencoded'

Anyway, I wrote simple enhex function that does what I need.
BrianH
6-Feb-2013
[982x3]
Ladislav, document it then. It's too useful to drop. And according 
to the docs you couldn't use get-words in SET block at all, so I 
never wrote code that had them. SET block with anything other than 
word! is rare, at least until R3 added FUNCT, which makes set-words 
very common.
It is a little unfortunate that SET [:word] works like get-word parameters 
used to in R2, but don't anymore. Inconsistent. Still, too useful 
to drop.
Works that way in R2 as well, so if it would have caused a problem, 
it hasn't so far :)
Scot
6-Feb-2013
[985]
Care with documentation on this one.  Could become a problem if people 
know about it.
BrianH
6-Feb-2013
[986x3]
Not really. It would only be a problem if people started using this 
and someone wanted to remove the feature.

It hasn't been a problem so far, and there's nothing wrong with the 
code. This code:
    set [:get-word] [word]
is currently equivalent to this code in R2:
    get-word: get 'word
There's a general problem in R3 that SET block acts like SET/any 
block, but I'm going to fix that too.
AFAICT noone has used get-words in a SET block call before, even 
in R2 code.