Hi Laurent,

On Saturday, October 5, 2002, 10:13:48 PM, you wrote:

LG> Each answer seem to bring up new questions again ;)

That's good, isn't it? :-)

LG> What exactly do you mean by "loading" words without using 'load ?

This is somewhat a long story; I'll try to make it short.

>> find first system/words 'a-word
== [a-word]
>> find first system/words 'another-word
== [another-word]
>> find first system/words 'a-word-never-defined-before
== [a-word-never-defined-before]

You  see,  it looks like REBOL's SYSTEM/WORDS already contains all
possible  words.  But actually, it doesn't. They just get added by
LOAD, at the time the text you write at the console is LOADed into
REBOL, just before it is evaluated.

So:

>> load "a-different-word"
== a-different-word
>> 'a-different-word2
== a-different-word2
>> find first system/words 'a-different-word
== [a-different-word a-different-word2]

LOAD  adds  'A-DIFFERENT-WORD  to  SYSTEM/WORDS  (you see, it gets
added  before  'A-DIFFERENT-WORD2).  However, LOAD is not the only
function  that can "create" a word.

>> to-block "a block of words"
== [a block of words]

It doesn't add the words to SYSTEM/WORDS:

>> find first system/words first to-block "different-again"
== none

So  no  track  remains  about  the  fact  that  that word has been
created.  One could think of creating a context made of words that
are  not  added to SYSTEM/WORDS; this means that if you don't have
access to that context in some way (i.e. if it isn't an object, or
the  context  of a function, etc.) it is not possible to say which
words  are part of that context. As a result, you cannot reproduce
that context by simply looking at the SYSTEM.

BTW, I just found out this curious behavior:

>> find first system/words to-word "never-defined-this"
== none
>> find first system/words to-word "never-defined-this"
== [never-defined-this]

which  shows  that  using  TO-WORD  the  word gets added AFTER the
evaluation  of  that  expression.  I cannot give an explanation of
this;  it  might  be  some  kind  of  side  effect  of the current
implementation   (this   is   REBOL/View   1.2.8.3.1  3-Aug-2002);
Ladislav, Romano, do you have any ideas?

LG> I guess that by "partially" you mean "only for the context that your script(s)
LG> have knowledge of" ?

Yup, something like that. :)

LG> Would that mean that, for example, one would have to store all code and data
LG> within a single object to make sure everything he needs is correctly restored
LG> (puting aside the need to handle circular references properly) ?

That could help. However, as long as you are in control of what it
is  needed  to restore your system, you can easily do it. (I.e. if
you  know  what state your script needs, you just save it and then
restore it.)

Regards,
   Gabriele.
-- 
Gabriele Santilli <[EMAIL PROTECTED]>  --  REBOL Programmer
Amigan -- AGI L'Aquila -- REB: http://web.tiscali.it/rebol/index.r

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.

Reply via email to