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

World: r3wp

[RAMBO] The REBOL bug and enhancement database

[unknown: 5]
25-Nov-2006
[2248x2]
Select is by far more efficient to use for single choices.
What I found interesting with stats/evals is that "block: copy []" 
is more efficient than "block: make block []"  I would not have expected 
that.
Chris
25-Nov-2006
[2250x3]
Only issue here is that it passes over empty values.  switch/default 
[1 []][print "one"]
Try this:
switch: func [value cases /default case][
    default: make block! []
    while [cases: find/tail cases value][
        either cases: find cases block! [
            case: append default first cases
        ][break]
    ]
    do case
]
[unknown: 5]
25-Nov-2006
[2253]
mine doesn't skip over the empty value it gives an error on it - 
which is actually useful if you ask me - I don't see any purpose 
to have an empty case passed to the switch - this way we know if 
we coded something incorrectly.
Chris
25-Nov-2006
[2254]
It's an issue if you're building a script incrementally and want 
an empty placeholder...
[unknown: 5]
25-Nov-2006
[2255x9]
Oh I see the error you talking about
not error rather the skip
yeah that isn't good
I'd rather have an error in that case
actually yours skips over it to
no it doesn't.  I like yours Chris
That is the approach I think we should take with Switch.
I would only suggest instead of using the make block! that you use 
 'copy [].
I saw the latest 2.7.2 notes - good job everyone.  Looks like switch 
might be a dead issue for now since the previous changes look like 
they were implemented.
Anton
25-Nov-2006
[2264]
Yes, what is the reasoning behind using  MAKE BLOCK! []  instead 
of  COPY []  ?  It appears to me that COPY evaluates faster.
Chris
25-Nov-2006
[2265]
No reason really, it was the first method that came to mind.
Anton
25-Nov-2006
[2266]
COPY looks about 12% faster (for allocating empty blocks).
Chris
25-Nov-2006
[2267]
; I guess this is moot, but a slight variation of my prior 'switch:
switch: func [[throw] value cases /default case][
    default: copy [] 
    while [
        all [
            cases: find/tail cases value 
            cases: find cases block!
        ]
    ][case: append default first cases]
    do case
]
Maxim
25-Nov-2006
[2268x3]
I know this rollback alot of lines, but I always marvel at  how Carl 
can reduce the size of code as he does.  He's been meditating about 
REBOL (throgh all of ancestors) for soooo long, it seems he can speak 
in rebol, "natively"  ;-)
unless is a nice addition to standard rebol, I know use it alll the 
time.
Paul, the interim releases are meant as "please test this" by all 
accounts.  IIRC view 1.3 had a few rollback based on user feedback 
of new features wreaking havoc on too many stuff.
[unknown: 5]
25-Nov-2006
[2271]
So do we want to approach switch then as being /all by default?  
To me it seems to make much more sense and I liked Chris's implentation 
of that switch.
Gabriele
26-Nov-2006
[2272]
switch is now native, which allows avoiding the allocation/copying 
(because the native does not have the BREAK problem)
Anton
26-Nov-2006
[2273]
Which version is it most similar to ?
[unknown: 5]
26-Nov-2006
[2274]
I believe Gabriele's.
Maxim
26-Nov-2006
[2275]
in rambo it sais part of 2.7 release... I guess its Carl's reduced 
version?
Henrik
26-Nov-2006
[2276]
anton, do you remember this one:


view layout [text "Push and drag out. The highlight should go away 
when the mouse exits, but it doesn't." tog "Test"]


I remember you talking about that you made a fix for that, which 
didn't work. Do you think we could make a proper fix for View 2.7.x?
Gabriele
26-Nov-2006
[2277]
max, since it is native, probably none of them. it has the same interface 
of the proposals, which is what counts.
[unknown: 5]
26-Nov-2006
[2278]
Yeah and now that it is native it is faster than select for single 
selections.
Anton
26-Nov-2006
[2279x4]
Henrik, here's a quick 5-minute patch (not well tested).
body: second get in svv/vid-styles/tog/feel 'engage 
insert body bind bind [
	if action = 'away [over face false event]
	if action = 'over [over face true event]
] svv/vid-styles/tog/feel body/4
view center-face layout [tog "hello"]
Essentially, the ENGAGE 'away and 'over events are called when dragging 
off, and back onto, the face, and I redirect the events to the existing 
OVER function, which normally doesn't get events with the mouse pressed.
I don't really like that hover state anyway. In my style-gallery.r 
I'm aiming to use a similar highlight to indicate the focused state 
of the btn or tog.
Gabriele
27-Nov-2006
[2283]
Max, about UNC paths: the only problem with REBOL's way of (not) 
supporting them is when your hostname is only one letter long. do 
you see any other problems?
Graham
27-Nov-2006
[2284x2]
How does Carl decide what goes native and what does?
Why switch, and not case ?
Pekr
27-Nov-2006
[2286]
append got native too :-) well, imo if you use something often, in 
mezzanine level, then it could be brought to native level? Imo it 
could be even profilet, to know if the speed gain is there or not, 
no?
Rebolek
27-Nov-2006
[2287]
I don't think it's very wise to implement 'switch native in 2.7 when 
it can broke old code. Save it for 3.0, why not, but why breaking 
the compatibility, when it's not necesary?
Henrik
27-Nov-2006
[2288]
perhaps it's a sneaky way of testing R3 code? :-)
Graham
27-Nov-2006
[2289]
you can always redefine it back again.
Pekr
27-Nov-2006
[2290x2]
I am with Rebolek here - 2.x family should stay as separate branch, 
usable in what it offers, no new experiments.
but maybe compatibility issue here is not a problem?
Rebolek
27-Nov-2006
[2292]
Pekr: older switch evaluates values , newer does not 
>>b: [print "!"] switch 1 [1 b]
prints "!" in older versions, returns none! in 2.7.2
Pekr
27-Nov-2006
[2293]
that is rather big change in behavior, no? But it was probably discussed 
here enough, so that 2.7.2 is kind of consensus of developers opinion?
Rebolek
27-Nov-2006
[2294]
yes it was discussed,
Henrik
27-Nov-2006
[2295x3]
anton, should we rambo it as it is?
anton, (about your patch)
anton, I tried TOGs, BTNs and overlapping TOGs and they all work 
without this problem now. looks OK to me.