Joel:

> > ... I've been offline for most of a week up in the hills ...  
>  Welcome back!  I'm jealous!  ;-)
I'm being punished for it now by having to reinstall everything on the 
machine from the opsys upwards. I guess it got jealous too and trashed itself.

>  > ... If you take this object...
>  > myob: make object! [
>  >  var1: 0
>  >  var2: 10
>  >  print ["object initialized"]
>  >  func1: [] [print "func 1 called"]
>  >  ]
>  > 
>  > ...the two var assignments and the print statement will be
>  > executed as part of the object initialization.
 
>  But not when one uses MYOB as a prototype, as in
      otherob: make myob

There's some oddity going on here -- no doubt explained in the core manual 
(which I didn't have backed up, and haven't yet redownloaded). The 
"initialization" code gets executed and then stripped out as part of building 
the object. The result of making an object is a series of assignments only, 
as this example shows:

  myobj1: make object! [
    var1: []
    print "initialize"
    do [append var1 now/precise]
    func1: [] [print "func1"]
   ]
  probe myobj1   
  myobj2: make myobj1 []
  probe myobj2 
    
  
The 'Do and 'Print are executed during
  myobj1: make object! [...]
but do not survive into the object itself. So that code does not get executed 
in
  myobj2: make myobj1 []

That wasn't what I was expecting to see -- so thanks for pointing it out. 
There's no obvious workaround that I can see.

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

Reply via email to