ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> tcl-core
tcl-core
Re: [TCLCORE] Pre-CFV: TIP#257
by Daniel A. Steffen other posts by this author
May 6 2008 3:54PM messages near this date
Re: [TCLCORE] Pre-CFV: TIP#257 | Re: [TCLCORE] Pre-CFV: TIP#257
Hi Donal,

On 07/05/2008, at 0:11, Donal K. Fellows wrote:

>  Destructors are run before the object command actually gets deleted; I
>  just checked! Since this is deep inside the complex mess that is  
>  traces,
>  I couldn't tell from what I remembered of the code. Thus, if a class
>  destructor (well, metaclass destructor I suppose) detaches the
>  subclasses and instances, they'll survive. That is to say, you can
>  change the current behaviour entirely through writing Tcl code. I hope
>  that does the trick for you. :-)

cool! yes, that will do it, thanks!

How do I create a metaclass destructor though (without going through  
the root oo::object destructor as in my example)? wouldn't I need  
self.destructor? (or maybe I'm getting (meta)confused given the hour ;-)

BTW, when I was trying to replicate in TclOO the destructor logging  
via mixin I used with XOTcl, I ran into the following:
   % oo::class create L { destructor {puts "  [self] destroyed"; next}}
   % oo::define oo::object mixin L
   may not mix a class into itself
       while executing
   "oo::define oo::object mixin L"

this appears to be triggered by the fact that L is a subclass of the  
class to be mixed into (i.e. oo::object).
maybe mixing into oo::object needs to be made an exception for the  
TclOOIsReachable() check in TclOODefineMixinObjCmd()?

when mixing L into oo:class instead, the mixed-in destructor did not  
get called at class destruction, is it not possible to mixin  
destructors?

Cheers,

Daniel

-- 
** Daniel A. Steffen                   **
** <mailto:das@[...].net>   **



-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Tcl-Core mailing list
Tcl-Core@[...].net
https://lists.sourceforge.net/lists/listinfo/tcl-core
Thread:
Twylite
Will Duquette
Kevin Kenny
Kevin Kenny
Will Duquette
Arnulf Wiedemann
Will Duquette
Kevin Kenny
Donal K. Fellows
Twylite
Larry W. Virden
Twylite
Gustaf Neumann
Larry McVoy
Gerald W. Lester
Vasiljevic Zoran
Larry McVoy
Gerald W. Lester
Larry McVoy
Tomasz Kosiak
Gustaf Neumann
Donal K. Fellows
Daniel A. Steffen
Donal K. Fellows
Daniel A. Steffen
Donal K. Fellows
Donal K. Fellows
Daniel A. Steffen
Gerald W. Lester
Vasiljevic Zoran
Arnulf Wiedemann
Tom Krehbiel
Vasiljevic Zoran
Donal K. Fellows
Gustaf Neumann
Brian Griffin
Gustaf Neumann
Donal K. Fellows
Gustaf Neumann
Kristoffer Lawson
Daniel A. Steffen
Twylite
Donal K. Fellows
Will Duquette
Donal K. Fellows
Will Duquette
Arnulf Wiedemann
dgp
Donal K. Fellows
Arnulf Wiedemann
Twylite
Will Duquette
Twylite
Donal K. Fellows
Stefan Sobernig
Donal K. Fellows
Stefan Sobernig

Privacy Policy | Email Opt-out | Feedback | Syndication
© 2004 ActiveState, a division of Sophos All rights reserved