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

World: r3wp

[!REBOL3 Proposals] For discussion of feature proposals

Maxim
27-Jan-2011
[840x6]
(that was supposed to be :-P)
anyway, I really think that we should accumulate all of the series 
functions we are using (even the more obscure ones) and make a big 
standard series handler module in R3.  it helps people who are learning 
REBOL since they don't have to figure out as much how to build these 
(somethimes non-obvious to implement) funcs.
this module could even be an internal delayed load extension... which 
can include some functions in C and others in REBOL mezz within the 
extension's module.
steeve, I think I was using SWAP for some sort of sorting using the 
/part refinement.
hehe I just discovered that SWAP is already part of R2 and R3   :-)
though its missing a few refinements to make it really usefull.
Ladislav
27-Jan-2011
[846]
Steeve: "faster, but not GC safe" - in some nonstandard sense?
Steeve
27-Jan-2011
[847x2]
hum yeah, just to say, that lof of memory is allocated.
I know most of peoples don't bother.
Maxim
27-Jan-2011
[849]
I bother a lot  ;-)
Steeve
27-Jan-2011
[850]
But doing a sorting algorithm without any clue about memory alocations; 
is just ... clueless ;-)
Maxim
27-Jan-2011
[851]
well, I do now...
Steeve
27-Jan-2011
[852x3]
yeah GLASS has some leakages :-)
but not only GLASS, we have the same wory in any GUI engine
several tens of megabytes to just display a simple GUI pisses me 
off
Maxim
27-Jan-2011
[855]
its mostly that liquid caches a lot of things for data, so I'm now 
doing all I can for the processes to hit the GC less and less.
the reason is because it increases performance A LOT.
Steeve
27-Jan-2011
[856x2]
I know, it will better Max
the issue comes from the internal data model used by Rebol
Maxim
27-Jan-2011
[858]
In the next release of glass, in the TO DO file, I list a few measurse 
to increase performance and decrease ram use by concentrating on 
using as much persistent data than throw away recycling.  but that 
means a complete overhaul of liquid and glob (the rendering engine 
over liquid).
Steeve
27-Jan-2011
[859]
128 bit for a value slot is hurts a lot in some cases
Maxim
27-Jan-2011
[860x4]
yes.. that grows ram quickly.    but the biggest memory mongering 
in REBOL is the binding.
(by far)
liquid uses class, so its about 100-200 times less memory intensive 
than it would be otherwise.
and this can scale to 400 times faster when ram grows above 400MB 
(the GC is obviously exponentially slower)
Steeve
27-Jan-2011
[864]
I tried your demos with intensive recycles, but the only gain was 
3 MB among 30+ MB
Maxim
27-Jan-2011
[865x2]
I've done very little actual optimisation in liquid cause it works 
well and the lazyness is very efficient.  the lazyness actually helps 
a lot for GC because a lot of the data is never recomputed, its reused. 
 though because I'm only using one layer, the root frames end up 
composing the entire display a few times.
with 3 layers, I should bring that down a lot.  I'll also be rendering 
on a bitmap directly, enabling clipped region rendering, using only 
a widget's new drawing instead of the whole scene.
Steeve
27-Jan-2011
[867x2]
the rendering could be faster, but on contrary, more you use layers 
more you  should consume graphic memory
a layer = an object/gob
Maxim
27-Jan-2011
[869]
no, layers are just draw blocks.  each one applied at different optimised 
times.
Steeve
27-Jan-2011
[870x2]
?
Ok, if you use only one object/gob then the whole thing is rendered 
each time
Maxim
27-Jan-2011
[872x3]
each layer creates a tiny object for every widget, but the size of 
the draw blocks is immense, so it will save memory in the end.  if 
we have 10 objects storing  10000 items 10 times 

vs 10 storing parts of those 10000 objects 10 times the memory saving 
should be significant.
its like 10000 * 10 vs 100 * 10.   the bigger the scene, the bigger 
the savings.
and then I can just render 3 of those at a time, so instead of rendering 
10000 times I can just render 100... in rendering that will help 
too.
TomBon
27-Jan-2011
[875]
maxim, do you plan to add more widgets to glass?
Steeve
27-Jan-2011
[876]
Ok for the rebol side, but the graphic engine will have to render 
the whole scene each time. It could ne slow in some cases
Maxim
27-Jan-2011
[877]
Tom, I'm working on the most advanced text editing widget you've 
ever used right now.
TomBon
27-Jan-2011
[878x2]
great! important one. something linke treeview, ribbons etc.?
looks like esp. treeviews are quite difficult?
Maxim
27-Jan-2011
[880x2]
steeve, with layers, I split up the rendering into different things. 
  bg/fg/interactive.  and I don't have to render the bg all the time, 
only on resize. 

I'll also be able to render just a single widget directly on a bitmap, 
using AGG clipping to that widget.
I just realized where really in the wrong group ;-)
Andreas
27-Jan-2011
[882x3]
given that the default-extension in R3 is currently %.reb, are we 
actually supposed to use this?
or is it likely that this will be switched to %.r3 anytime soon?
(given that most people currently seem to use either %.r3 or %.r)
BrianH
28-Jan-2011
[885x3]
No, you're not really supposed to use .reb, you're supposed to change 
the setting to what you were going to use anyways.
That's why the setting is .reb: There is no consensus on what extension 
to use, so the setting is set to something noone uses.
See http://issue.cc/r3/1573for remove-duplicates and the reason 
it's not as good an idea as you might think. It turns out that the 
set functions have to allocate a new series to do their work (for 
series larger than trivial size), even if they were changed to modify 
in place. So you can't avoid the allocation; might as well benefit 
from it.
Maxim
28-Jan-2011
[888]
its a good idea, because I can't copy the series, its linked in many 
places.
BrianH
28-Jan-2011
[889]
Look a the proposal in that ticket. It works the same as yours but 
faster.