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

World: r3wp

[!REBOL3-OLD1]

ICarii
6-Apr-2009
[12642]
in R3 is there a way to intercept the write event before the send 
occurs - and if not, is there a way to force a send before another 
write takes place in an Async queue?  I'm getting an issue where 
multiple write events are being cached and sent all at once (about 
10 write events per second).
Graham
6-Apr-2009
[12643]
What I think most people do is this:

if error? set/any 'err try [            ][
	probe mold disarm err
]
Izkata
6-Apr-2009
[12644]
Is there any advantage to using set/any over a set-word ?
Gregg
6-Apr-2009
[12645]
I'm not sure what you mean. They're unrelated.
Izkata
6-Apr-2009
[12646x2]
if error? err: try [  ][
   print mold disarm err
]
I've always used the second way, but almost everywhere else, I see 
others use set/any
Gregg
6-Apr-2009
[12648]
Ah, I see now *a* set-word!. :-\  Consider an unset! result:

>> if error? err: try [()] [print mold disarm err]
** Script Error: err needs a value
** Near: if error? err: try [()]
>> if error? set/any 'err try [()] [print mold disarm err]
== none
Izkata
6-Apr-2009
[12649]
Ohhkay, guess I've just never run across it.  Thanks
Anton
6-Apr-2009
[12650]
Is there any way in R3 to optimize code such as 


 out: insert insert insert insert insert [] 'fill-pen color [text 
 vectorial] 0x0 "hello"


?  I think the appearance of n INSERTs is kind of ludicrous. People 
are doing this for performance reasons, so the usual way we would 
optimize the code (which produces an intermediate block), isn't an 
answer.

I've forgotten if R3 has any way. (A quick look at APPLY and MAP 
doesn't seem to bear any fruit.)
Steeve
6-Apr-2009
[12651x2]
it's not more fast than using a reduce or a compose.
but it saves memory overheads, exspecially in big loops
Anton
6-Apr-2009
[12653x5]
---> thus, does become a speed issue.
It would be nice to be able to say:

	loop 5 [insert] [ ] v1 v2 v3 v4 v5
so no intermediate block is generated.
Or have a method of reducing only the items in a block as they are 
being applied, without generating a new temporary block to hold them.
(This idea has been discussed before, somewhere...)
Anton
7-Apr-2009
[12658]
About the loop 5 example; I remember Carl saying that would break 
the rebol evaluation rules, or something like that.
But could we get that functionality some other way?
Steeve
7-Apr-2009
[12659x8]
i think a reduce that can not creates a new block is not interesting, 
because the same block can not be anymore reduced next.
so, you can't use it in a loop
but an insert fonction which can reduce all the values from a a block 
before adding them, is quite interesting.
something like,
insert/reduce ['fill-pen color 'text 'vectorial offset message]]
it means get the value of the worlds before adding them
could be, insert/get or insert/load as well
so that no new blocks are created
Ammon
7-Apr-2009
[12667]
Steeve...

REPEND

=D
shadwolf
7-Apr-2009
[12668]
compose ? hihihihi
Steeve
7-Apr-2009
[12669]
yes ok for the name REPEND, but we need a native func with no reduce 
inside
Anton
7-Apr-2009
[12670]
Yes, it would be great if REPEND worked that way.
Ammon
7-Apr-2009
[12671]
Anton, is there a reason COMPOSE won't do what you need here?  If 
the objective is to avoid creating a temporary block, compose does 
it.
BrianH
7-Apr-2009
[12672x2]
Look here: http://curecode.org/rebol3/ticket.rsp?id=506
Right on topic with what you are saying, and my biggest personal 
reqest for R3.
Anton
7-Apr-2009
[12674x2]
Ammon, both COMPOSE and REDUCE generate a new block.
BrianH, that's good that that ticket exists. Thanks for pointing 
it out. Hopefully that will be implemented someday soon.
BrianH
7-Apr-2009
[12676]
That's why it's "urgent" priority.
Geomol
8-Apr-2009
[12677]
I'm seriously beginning to loose faith in R3. As I see it, there 
are still a lot of bugs on the lowest levels, and most development 
is going on far above that level. It's like a tall building, where 
new windows are put in on the 123 floor, while there are still many 
cracks in the basement. I guess, it'll take years at best, before 
we see a stable R3 on major platforms at the same time.
Henrik
8-Apr-2009
[12678]
Most of the bugs in lower levels of R3 are found through higher level 
development, so that will likely continue. Also, getting things right 
is more important this time around. Please don't use it in production 
environments yet.
Geomol
8-Apr-2009
[12679x2]
The lowers levels should then have been tested better, before going 
into higher levels. When you fix a bug on a low level now, it could 
have significal influence on higher levels, so more tests and probably 
new bugs. Problem is the low levels are hidden from us.


Memory problem on OS X concern me a lot. Also today I wanted to do 
some test on issue! datatype, and get strange results. Like doing:

i: #
insert i "abc"


If low level series handling like this has bugs, then I'm very concerned.
Henrik, when I made Canvas RPaint, you helped a lot with testing. 
And I didn't move ahead, before everything worked completely. That's 
the way to do large projects.
Henrik
8-Apr-2009
[12681]
I'm not sure I understand this concern. Clearly there is a bug, and 
Carl usually fixes those, but only if they are reported to Curecode.
Anton
8-Apr-2009
[12682]
It looks like the issue type's new unicode (16bit?) internal representation 
isn't being formed or molded correctly yet.
Geomol
8-Apr-2009
[12683x2]
Yes, we can find bugs, report to Curecode. Before Curecode we did 
it in r3-alpha. It has been going on for years. And it will continue 
to years. The problem is the way, the whole project is run.
continue *for* years
Henrik
8-Apr-2009
[12685x2]
I don't understand how you expect it to be done differently.
Carl can only fix bugs so fast.
Geomol
8-Apr-2009
[12687x3]
I tried in r3-alpha to make a list of things, to be tested, with 
a hierarchy from a description from Carl. (The r3-status.r script) 
But it didn't happen the way, I had in mind.
I think, it would have less bugs, if lower levels were tested better 
before moving on. Doing it that way, you'll end up using less time 
on the whole things, before it's finished.
It would also be another situation, if it were open source. But even 
with closed source, I can think of better ways to run it, that how 
it's actually done.
Henrik
8-Apr-2009
[12690]
I don't think it would have less bugs. More bugs would have been 
exposed, but the rate of fixes would be roughly the same. We already 
have a rigorous testing system in place, only it has not been used 
much yet. I think it's because Carl is too busy designing the remaining 
subsystems.


What's important at higher level development, is not to use workarounds 
for bugs, but await proper fixes.
Geomol
8-Apr-2009
[12691]
that = than