World: r3wp
[!REBOL3-OLD1]
older newer | first last |
shadwolf 27-May-2009 [14434x3] | i think i will do that anyway since it's so usual way to handle chatting |
i just hope memory will not explode lol | |
i will do a treeview with the server name as root and as leaf channel name you entered clickin on root you have the server messages displayed clicking on leaf you have the channel displayed | |
Steeve 27-May-2009 [14437] | Wow, reduce/into, compose/into at least... Great improvement ! |
Maxim 27-May-2009 [14438x2] | yes that is major ! |
thanks Brian! | |
BrianH 28-May-2009 [14440] | I've been waiting for this siince last year. I posted a comment about usage :) |
Graham 28-May-2009 [14441] | retro-fittable to R2 ? |
BrianH 28-May-2009 [14442x3] | We'll see. Native changes to R2 are not as easy as mezzanine changes. This one doesn't seem to depend on new R3 structures, but... |
R2 is not really in new-native-feature mode for the forseeable future, but we'll see what can be backported. | |
Changes in individual functions are more likely than changes in types or data structures. | |
Steeve 28-May-2009 [14445x5] | it's curious that Carl is not aware of the "chaining" use of INSERT !!!! |
If we don't have the "chaining" behavior with reduce/into, then we will lost some speed in loops (because of the need to update the index of the serie separatly after each iteration). | |
Curious objection from Carl (The users may be unable to understand how to use it) Uh ????? | |
i want some proofs that we actually use "chaining" insertions ? I can send him some dozen of old scripts if he wants... :-) | |
*he wants | |
BrianH 28-May-2009 [14450x2] | He's aware of the value of chaining, but is wary of the "bug" reports he already gets about INSERT. Apparently there is some tiny amount of overhead too, which for a function as low-level as REDUCE might matter. "Penny wise, pound foolish" - I'm trying to convince him otherwise. |
We can save much more overhead by replacing chained inserts in the mezzanines. COMPOSE/into will have massive impact :) | |
Steeve 28-May-2009 [14452] | Actually, the first optimization i do in my scripts which need speed and low memory usage, is to remove all the reduce and compose usage. It's always the first thing i do |
BrianH 28-May-2009 [14453] | Now, you will be replacing REDUCE and COMPOSE with REDUCE/into and COMPOSE/into and preallocated or reused buffers :) |
Maxim 28-May-2009 [14454x3] | but this optimization isn't always possible. when nests are deep and composes are chained within each other, you can't just chain insert and remain sane ;-) |
with liquid-paint, this would have MASSIVE impact. | |
although liquid-paint is already much faster than AGG and lazy so the gains might not be as noticeable, but still I can't wait to have time to try and port my stuff to R3, it does seem to be much more series stable, by all accounts. | |
BrianH 28-May-2009 [14457] | Nested REDUCE and COMPOSE is not that common outside of code generation and nested data structure creation. I do that a lot, but I write my own mezzanines and some of them compile internally. I can think of many mezzanines that could be sped up with /into. |
Steeve 28-May-2009 [14458x2] | See this line of code i do to rebuild a draw block in area-tc (it's called thousand times when the style is scrolled) out-style: insert insert insert insert insert insert insert insert out-style 'pen color/2 'fill-pen color/2 'box as-pair abs-x 7 as-pair (f/x * length? str) + abs-x 7 + f/y 3 Insane ;-) |
it's slower than a reduce, but it's save memory, a lot. | |
BrianH 28-May-2009 [14460x2] | Seriously, post that code to the blog comments right away, with the COMPOSE/into equivalent. We need examples. |
Actually, I''d use REDUCE/into for that one - too few lit-words. | |
Steeve 28-May-2009 [14462x2] | yep |
Actually, i'd do a test and choose the faster ;-) | |
BrianH 28-May-2009 [14464] | out-style: reduce/into ['pen color/2 'fill-pen color/2 'box as-pair abs-x 7 as-pair (f/x * length? str) + abs-x 7 + f/y 3] out-style |
Steeve 28-May-2009 [14465] | *est |
BrianH 28-May-2009 [14466] | The REDUCE/into should be about as fast as REDUCE, but with less overhead. |
Steeve 28-May-2009 [14467] | i talked about REDUCE vs COMPOSE |
Maxim 28-May-2009 [14468] | but you insert example is just a chain... it gets insane when you also have offsets, cause you want to insert into sub-blocks ;-) |
BrianH 28-May-2009 [14469] | Yeah, REDUCE/into and COMPOSE/into were designed to replace chained inserts or appends. They're pretty common in optimal code. |
Maxim 28-May-2009 [14470] | yes steeve, please do post your chained insert example vs brian's reduce/into example |
Steeve 28-May-2009 [14471x2] | ok ok, don't push me, i go ;-) |
done | |
BrianH 28-May-2009 [14473] | Cool :) Though now I wish I had word-wrapped my version :( |
Steeve 28-May-2009 [14474] | yep, i saw that but too late |
Pavel 28-May-2009 [14475] | Steeve I've just read the changes to A55 released today. It seems write/port errors patched. So Block sheme can be upgraded for quicker file updates? |
Pekr 28-May-2009 [14476] | 51 fixes/enhancements, unbelievable this happens in the REBOL land :-) |
Henrik 28-May-2009 [14477] | perhaps it's a bit too many fixes for one release. one part of chat is mysteriously broken right now. |
Pekr 28-May-2009 [14478] | Henrik - I just use: chat .... n .... lm :-) |
Henrik 28-May-2009 [14479] | oh, 'lm has been updated. Nice. |
Pekr 28-May-2009 [14480] | ah, load-plugin .... what a bad name once again. Why load or import does not handle it internally? ('import is used in the blog article) |
BrianH 28-May-2009 [14481x2] | That sounds like an internal function that hasn't been put in a module yet. There is a similar function MAKE-MODULE. |
You don't call make-module - MAKE calls it. | |
Pekr 28-May-2009 [14483] | Good thing is, that Carl asked us to not use plugins yet, which might mean, that the code is already in there :-) |
older newer | first last |