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

World: r3wp

[!REBOL2 Releases] Discuss 2.x releases

Steeve
14-May-2010
[1657x2]
yep, no need for additional var.

all [b: find series var b: index? b]
oups, not what you'he done
Ladislav
14-May-2010
[1659]
indeed, I just meant:

b: either b: find series var [index? b] [default]
Anton
14-May-2010
[1660]
I'm pretty sure I'd be ok with  NONE == INDEX? NONE
BrianH
14-May-2010
[1661]
That kind of change is not going into R2 - it's not backwards-compatible. 
Try R3.
Gregg
14-May-2010
[1662]
But it's easy enough to create a safe INDEX? function. I think Gabriele 
calls his INDEX?? and I borrowed it from him.
Graham
14-May-2010
[1663x4]
that's another issue .. how to easily redefine words
that also invoke the original word ....
index?: func [  [ series! | none! ]
][
	either series [ index? series ][
		none
	]
]

would likely cause a stqack overflow
[ series! none! ]
Gabriele
15-May-2010
[1667]
Gregg, I don't remember that, so maybe it was from someone else.
BrianH
15-May-2010
[1668x2]
Gregg, the problem is that the changed INDEX? would have the possibility 
of returning data that is not an integer. Most R2 code doesn't screen 
for that, so changing INDEX? in this way would lead to data corruption 
in existing code. Remember, compatibility with existing code is the 
highest priority in the further development of R2. Incompatible changes 
are reserved for R3 *only* - we try to not make them in R2, on principle.
Defining a new function with a different name is a good way around 
that problem :)
Graham
15-May-2010
[1670]
Or, adding a refinement
BrianH
15-May-2010
[1671]
Adding refinements to low-level natives can double their overhead 
for each refinement - more for mezzanines. Not a good idea.
Graham
15-May-2010
[1672x2]
So, how can we redefine old words without causing a stack overflow?
Current r2 code would be using an error handler to see if index? 
threw an error ... not a biggie
BrianH
15-May-2010
[1674]
Use a local reference to the old function, then call through the 
reference. You can do this with a private variable, or composing 
the code block of the new function to have a direct reference to 
the old function value. That last method can be awkward with functions 
called with refinements, but it can be done; the private variable 
metod is less awkward.
Graham
15-May-2010
[1675]
example?
BrianH
15-May-2010
[1676x2]
Yes, but current R2 code would be depending on that error to trigger 
the code in the error handler, rather than just propagating the error 
to where it would do more damage. Error handling code is there for 
a reason.
use [idx?] [
idx?: :index?
index?: func [series [ series! | none! ]] [
	either series [ idx? series ][none]
]
]
Graham
15-May-2010
[1678]
that looks untested to me
BrianH
15-May-2010
[1679x2]
You wanted an example. I just converted your code to a style that 
wouldn't have a stack overflow.
The | was in your original code :)
Graham
15-May-2010
[1681]
I amended it !
BrianH
15-May-2010
[1682x2]
:)
That's not the part that was changed though: a private variable was 
added to refer to the old function. This deals with the stack overflow.
Graham
15-May-2010
[1684]
Brian ... has anyone looked at the network protocol enhancements 
...
Gregg
16-May-2010
[1685]
Gabriele, maybe Cyphre then. I just remember, or think I remember, 
that I didn't come up with it.
Graham
16-May-2010
[1686]
using Brian's trick means you don't have to rename it!
Gregg
16-May-2010
[1687x2]
Yes, but having a none-afe version with a different name allows you 
to choose.
none-safe
Graham
23-May-2010
[1689x2]
Has the 2.7.8 project died ?
or gone into hibernation?
GiuseppeC
24-May-2010
[1691]
You are asking too much ! :-)
Graham
24-May-2010
[1692]
asking anything is too much :(
Maxim
25-May-2010
[1693]
no there are a lot of mezzanines in dev chat ready for the 2.7.8. 
  AFAIK, Carl either works on R3 or R2. not both... right now, he 
is working on R3 so until we get another big release (the one with 
extracted view) I would't bet on a 2.7.8.


though I have been using a few of the functions with dev chat which 
Brian coded for R2/forward.
GiuseppeC
25-May-2010
[1694]
This the price/benefit of one man work on REBOL/Core.
Maxim
25-May-2010
[1695]
its also possible that with the AGG fixes done or pending, we might 
get a 2.7.8 beta which has current mezz code and the bigger native 
changes pushed to a 2.7.9 release... but I'm just throwing a guess 
in the air.
GiuseppeC
25-May-2010
[1696]
However, I am not dissatisflied. I apreciate the amount of work done 
and every release is a gift to the community. Long life to Carl !
Steeve
25-May-2010
[1697]
It's my problem too, when I drink a little to much , I like everyone.
Pekr
25-May-2010
[1698]
Steeve :-))
GiuseppeC
25-May-2010
[1699]
I am happy without any drugs. I am optimistic, it's my fault !
ICarii
25-May-2010
[1700]
is there the possibility of getting R3 AGG Richtext dialect backported 
to R2 - it would make a huge difference for gui development and text 
rendering?
Oldes
25-May-2010
[1701]
I don't think it's easily possible as the R3 richtext is based on 
GOB system.
ICarii
25-May-2010
[1702x3]
its independent of gobs as you can use it inside draw already - eg:

text 100x100 [font "Arial" size 20 240.240.0 "this is some text" 
255.0.0 "this is some more text"]
which is vastly superior to the text handling in R2 draw
of course parts of the R3 text handling like text clip zones are 
still broken..
Henrik
26-May-2010
[1705]
I asked Cyphre about his demo from 2005. It might be possible to 
do, but it's a fair amount of work.
PeterWood
26-May-2010
[1706]
I have come across a strange problem with View 2.7.7 on Mac OS X. 
If I load a library, run a function from the library and then put 
the machine into sleep mode, Rebol crashes with a Floating Point 
Exception when the machine wakes up. Here is ahte console session:

>> mylib: load/library %Code/Pascal/libtestlib.dylib
>> add1: make routine! [a[int] return: [int]] mylib "myfunc" 
>> add1 12
== 13
>> Floating point exception


I compiled and tested the library under Windows, put the machine 
to sleep, no problem when it woke up. (I was running Windows as a 
Virtual Box VM).

Any suggestions?