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

World: r3wp

[Core] Discuss core issues

[unknown: 5]
26-Dec-2008
[11879x2]
But the crazy thing is that the block contained the correct values 
without the  copy/deep.
Still seems to be a bug somewhere.
Steeve
26-Dec-2008
[11881]
missing a copy somewhere in your code
[unknown: 5]
26-Dec-2008
[11882x2]
I added copies and it didn't change anything so I removed them again.
Besides it works find it I didn't use the loop  to populate the block.
Steeve
26-Dec-2008
[11884]
do u use poke or change block! somewhere ?
[unknown: 5]
26-Dec-2008
[11885x2]
yes I use change
tried copy on that part also and it didnt' make a difference.
Steeve
26-Dec-2008
[11887]
hmm...
[unknown: 5]
26-Dec-2008
[11888x2]
See this works fine:

>> d: []
== []
>> insert tail d [1 [fname]]
== []
>> insert tail d [1 [fname]]
== []
>> d
== [1 [fname] 1 [fname]]
>> db/get test5 d
>> d
== [1 [1] 1 [1]]
It is when I get the 0's in the part that I  know it failed somewhere. 
 I get that only when using loop to fill the d block.
Steeve
26-Dec-2008
[11890x2]
normal, it's different blocks, walways the same bug with a missing 
copy some
...somewhere
[unknown: 5]
26-Dec-2008
[11892x3]
I copied it to death until I figured out it was in loop.
Maybe not a bug just a need to use copy/deep in loop.
Steeve, I see what you were saying.  I went ahead and fixed that 
by changing a piece of code so that the d block wasn't modified also.
BrianH
26-Dec-2008
[11895x2]
It's not a bg in loop, you are reusing the inner block [fname] where 
you shouldn't.
>> d: []
== []
>> loop 2 [append d [1 [fname]]]
== [1 [fname] 1 [fname]]
>> same? second d fourth d
== true
[unknown: 5]
26-Dec-2008
[11897]
Yeah we already determined  that.  Thanks Brian.
BrianH
26-Dec-2008
[11898]
Cool :) I couldn't tell based on the messages above.
[unknown: 5]
26-Dec-2008
[11899]
Yeah Steeve keyed in on the problem.
Davide
29-Dec-2008
[11900]
Is there a way to modify an object (adding and removing components) 
at runtime without rebuild it from scratch ?

I remember an old thread in the mailing list abut this argument, 
but I cannot find it..
Steeve
29-Dec-2008
[11901x3]
not it's impossible in R2 but doable in R3
in R3 do:   append my-object new-var
wrong, in R3: append my-object [new-var: none]
Davide
29-Dec-2008
[11904]
R3 is going to be my nightmare :-)
Steeve
29-Dec-2008
[11905]
when i need to simulate extendable objects in R2, i use blocks in 
replacement.
Davide
29-Dec-2008
[11906]
I'm trying to find a workaroud using first object , second object 
... but it doesn't seems to work
Steeve
29-Dec-2008
[11907]
it can't
Davide
29-Dec-2008
[11908x2]
I'm writing a function that  replace every set-word in a block of 
code with a compoment of an object, so I have to build the object 
in one single pass
(so every words become local for default)
Steeve
29-Dec-2008
[11910]
are there inner blocks which contain set-words too or not ?
Davide
29-Dec-2008
[11911]
yes there are
Steeve
29-Dec-2008
[11912x2]
so you can't use the construct function on the primary bock...
except if the local vars are all set in the primary one too
Davide
29-Dec-2008
[11914]
the code is an handler so it could be everything
Steeve
29-Dec-2008
[11915]
y
Davide
29-Dec-2008
[11916x2]
I'm looking in lfulc code by ladislav, the parse rule to catch the 
set-words is quite simple
lfunc
Steeve
29-Dec-2008
[11918]
you could write your handler in a context directly, it's the most 
simple thing to do
Davide
29-Dec-2008
[11919x2]
it's in a context
but the words used are still global, no ?
Steeve
29-Dec-2008
[11921x2]
not those which are scoped directly by the context
ctx: context [
a: 1
block-code: [a: a + 1]
]

a is defined local to the context ctx
Davide
29-Dec-2008
[11923x2]
I'm not sure if this can apply to my app. It's a web server so I 
have to mantain client values between session
the context is unset after single request
Steeve
29-Dec-2008
[11925]
and ??? it's not related with your previous request
Davide
29-Dec-2008
[11926]
If I change the code as:

ctx: context [
saveobj/a: 1
block-code: [saveobj/a: saveobj/a + 1]
] 

I can retain the counter between web session
Steeve
29-Dec-2008
[11927x2]
you lost your context, because you don't keep him  in memory (i don't 
know how to answer to this problem)
saveobj is not in your context