[REBOL] Re: Obscure? You be the judge!
From: nitsch-lists:netcologne at: 18-May-2002 20:02
Am Samstag, 18. Mai 2002 11:41 schrieb Gabriele Santilli:
> Hi Volker,
> On Friday, May 17, 2002, 9:49:04 PM, you wrote:
> VN> Well, make knows the numbers of words to allocate.
> But then, why binding before actually adding the new words?
semantics? lets say:
>> ctx: context[print-me: does[print ["iam" mold self]]]
>> ctx2: make ctx[mold: "oops"]
make object! [
print-me: func [print ["iam" mold self]]
this way one can create an object with basic functions, like 'print-me.
Its obvious not to redefine them.
but it is obvious too not to redefine 'mold?
> VN> i think one problem with general ability is, one can not move context
> in VN> memory without confusing all references currently?
> That can be easily solvable, by having the words and values
> referenced by the context! and the words referencing the context!
> itself (maybe with an index to the position in words/values). I
> think it is very likely to work this way already... (Remember that
> before 2.2 you could modify the block of words or the block of
> values independently...)
Well, IIRC i started around 2.2 ..
AFAIK they blocked that because adding words crashed the interpreter?
can imagine insert sees a block, thinks "ok, i resize", bang?
Or was it asymetric resizing (adding a word, bot not a value)?
Hmm, one could try to optimize by storing like
3 word word word value value value
where 3 is the offset words/1 -> values/1 .
that would save some pointer-lookups.
Carl has some tricks in this area. Remember exec-list-headers :)
but its trying to look behind the curtain.. ;)