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

World: r3wp

[!REBOL3-OLD1]

Maxim
13-Jun-2009
[15490x2]
well , so much for R3fying liquid.  just stumbled upon a bug in make 
object that prevents liquid from working in R3.
I am not using the 'self attribute but its the same bug.

http://curecode.org/rebol3/ticket.rsp?id=802&cursor=35
I was finally able to work around the bug.  :-)
so convertion can continue for now


but the workaround will become impossible to apply at some point. 
its too low-level a problem to be properly addressed in every single 
opportunity... and its an ugly fix.
Ladislav
13-Jun-2009
[15492x2]
hmm, since it is about the deep copy, you can always replace it by 
doing it on your own
(but it may be "expensive", i.e. time-consuming)
Maxim
13-Jun-2009
[15494x2]
Why is it deep copying an object within an object?  it shouldn't.
it should only deep copy series... no?
Ladislav
13-Jun-2009
[15496]
that is a change in R3: copy/deep now copies objects too. I am not 
sure, what was the reason for it, though, maybe we should ask in 
R3 chat?
Maxim
13-Jun-2009
[15497x2]
WHAT THE FUCK!
If that doesn't change, unfortunately, I'll never use R3.
Ladislav
13-Jun-2009
[15499x2]
...or, you could raise that question in CureCode
...or in both places (Carthaginem esse delendam)
Maxim
13-Jun-2009
[15501x3]
I definitely will, I didn't realize the /deep until you posted your 
first comment above.
I'll restate the above... 

if make object doesn't switch or allow copy not being deep , I'll 
never be able to use R3.  I already hated (but understood the reason 
behind) the series copy, but this is ridiculous.
objects aren't payload, they are contexts.
Ladislav
13-Jun-2009
[15504]
can you show a simple example of the behaviour you dislike? - just 
to make sure it cannot be circumvented easily
Maxim
13-Jun-2009
[15505x2]
ladislav, I have object which contain 150 interconnected objects.
and multiple depths
Ladislav
13-Jun-2009
[15507]
aha, so, a kind of "general graph"
Maxim
13-Jun-2009
[15508x4]
copying making a new instance of the master class cannot imply duplicating 
all of the internals which have to be unique... it makes no sense.
graphs of graphs.
just the series copying makes countless duplication of data already... 
at least if there was an option but there isn't... that is my problem.
right now I depend on inner objects being shared in every single 
serious application I write.
Ladislav
13-Jun-2009
[15512]
so, is this a simle example of the behaviour you dislike?

>> o: make object! []
== make object! [
]
>> p: make object! [x: o]
== make object! [
    x: make object! [
    ]
]
>> q: make p []
== make object! [
    x: make object! [
    ]
]
>> same? q/x p/x
== false
Maxim
13-Jun-2009
[15513x3]
yep.
I don't even understand why you'd want to do so... its exactly like 
forcing a reduce everytime you copied a block.
I mean.. it being the default in make.... I can see where copy/deep 
on objects can be usefull, but not as the only way to create new 
instances of objects.
Ladislav
13-Jun-2009
[15516]
yes, I preferred the R2 behaviour too
Maxim
13-Jun-2009
[15517]
I prefered the R1 even more.
Ladislav
13-Jun-2009
[15518]
I don't remember how R1 handled objects
Maxim
13-Jun-2009
[15519x4]
it didn't copy anything.
they where identical clones, within only binding switched to new 
context.
all series data was shared... 
but its easy to copy on demand... its impossible to "uncopy"


the reason for the change was essentially that it made VID easier 
to use.
people didn't understand why changing one string would affect many 
faces.


to some degree, that side-effect is still there though...  fonts, 
para, edge, are now still shared accross all face of the same style, 
which makes a lot of sense.
Gregg
13-Jun-2009
[15523]
I also vote for the module system to support the ability to restrict 
what you import, and SLiM's ability to rename words on import (and 
prefix them) is very nice.
BrianH
14-Jun-2009
[15524]
Maxim, when I suggested isolate: true I didn't understand what you 
were asking for. Based on your bug ticket it doesn't apply.
Maxim
14-Jun-2009
[15525]
it should be documented though.
BrianH
14-Jun-2009
[15526]
It is documented - it just does the opposite of what you thought 
it does.,
Maxim
14-Jun-2009
[15527]
where ...  its not here: http://rebol.com/r3/docs/concepts/modules-defining.html
BrianH
14-Jun-2009
[15528x3]
It is exactly the same as IMPORT/isolate.
I reviewed and put comments in your vprint tickets. In both cases 
the bug is caused by code *in* %vprint.r3, not the code calling it.
I would love to fix the bugs, or figure ouut what they are if they 
are caused by native code, but without the source to vprint.r3 I 
can't.
Maxim
14-Jun-2009
[15531x3]
I don't understand what this means... "Wrong errors get the severity 
"text" unless the specific error implies a potential security hole. 
"
brian... if I do vprint in the main app, the functions work.
actually, when I do the script in the module, they work in the main 
app but not in the module.
BrianH
14-Jun-2009
[15534x2]
The severity "text" is just an indication of the type of bug. Severity 
is not priority. Generating the wrong error is marked as text throughout.
In some cases the particular bug generated indicates a lack of bounds 
checking, and that is considered bad. However, it is the lack of 
bounds checking that makes it bad, not generating the wrong error.
Maxim
14-Jun-2009
[15536]
why does DOing the exact same script, generate the proper error in 
the main app and generate a bogus error when DOne from a module... 
that is the problem.
BrianH
14-Jun-2009
[15537]
About bug#928, couuld you at least post the header of %vprint.r3? 
We can't diagnose the problem without at least that.
Maxim
14-Jun-2009
[15538x2]
I can't write a module if every syntax error becomes a bogus undefined 
error when I try to use it.
posted on curecode... vprint isn't a module anymore... its just a 
normal script defining words, not even within a context... just simple 
 vprint: func [args][body]