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

World: r3wp

[Core] Discuss core issues

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
[11927x3]
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
ctx: context [
localobj: saveobj
localobj/a: 1
block-code: [localobj/a: localobj/a + 1]
]

this should work...
Davide
29-Dec-2008
[11930]
yes ! saveobj is global, so I can use it for saving values that are 
in my context . In my context values will be lost. I'm writing a 
function to change every var in my handler like "var" to "saveobj/var"
Steeve
29-Dec-2008
[11931x2]
i don't see y
i don't see your point... ctx is global too... you shoul'd not lose 
it
Davide
29-Dec-2008
[11933x2]
Yes, I'm not too clear .... I unset the handler block every request 
I get
so If I need to keep the values of the hadler I need to store them 
in a global ojb
Steeve
29-Dec-2008
[11935x2]
i think you have several problems not not necessarily linked, you 
should have a look on rebol.org, there are many web servers examples
sorry...
[unknown: 5]
29-Dec-2008
[11937]
Wow another webserver.  Does REBOL have the record in webservers?
Davide
29-Dec-2008
[11938]
thanks ! only talking about this cleared my mind, I'm thinking about 
keeping the handler in memory
[unknown: 5]
29-Dec-2008
[11939]
That is really cool Davide.
Steeve
29-Dec-2008
[11940]
surely ;-)
Davide
29-Dec-2008
[11941]
thanks paul, this is not a standard web server... it's a comet web 
server (where the browser use an endless connection)
[unknown: 5]
29-Dec-2008
[11942]
ok, very cool.
Davide
29-Dec-2008
[11943]
I'm building it to use a browser instead of view in multiuser app
The page don't need to be refreshed so It's quite fast
BrianH
29-Dec-2008
[11944x2]
You won't be able to remove fields from an object in R3, just add 
them.
C still has the record in webservers :(
PeterWood
29-Dec-2008
[11946]
Davide: Can't you do this?

>> my-object: make object! [a: 0 b: [1 2 3 4 5] c: "abcde"]

>> insert my-object/b 0                                   
 
== [1 2 3 4 5]

>> my-object/a: 1
== 1

>> probe my-object

make object! [
    a: 1
    b: [0 1 2 3 4 5]
    c: "abcde"
]

>> my-object: make my-object [d: #0123]

>> probe my-object

 make object! [
    a: 1
    b: [0 1 2 3 4 5]
    c: "abcde"
    d: 
 #0123
]
Davide
29-Dec-2008
[11947]
thanks peter that sintax is very handy ! I didn't remember that