No registered users in community xowiki
in last 10 minutes
in last 10 minutes
Re: [Xotcl] Testing for execution inside object
From: Kristoffer Lawson <setok_at_fishpool.com>
Date: Tue, 3 Oct 2006 17:43:49 +0300
On 3 Oct 2006, at 14:55, Gustaf Neumann wrote:
> Kristoffer Lawson schrieb:
>> I need to know if the current procedural context is inside a
>> method (isntproc, proc, whatever) or not.
> can you explain in more detail, what the problem is?
> Note, that one can calls tcl procs from within xotcl methods, one
> can have evals, uplevels, etc.
I have a debug library that automatically displays information about
the proc or method in which it was called, to get the context for the
information. I want to check that if I'm running in an XOTcl method,
I also want to display the class for it.
>> What is the best way to do this? I used [self] to check by
>> catching the error, but that doesn't work particularly well if
>> another package happens to define the command [self].
> use ::xotcl::self
Good idea.
> "self" can be used to check whether the xotcl callstack is non-empty.
Yes, but only by wrapping it in a [catch].
> without promising to much, a sucommand"ismethod" for "self"
> retuning 0 or 1 depending whether the
> current stackframe is an xotcl method should be doable with little
> effort.
Worth considering. It's not perhaps high-priority, but might make it
neater.
/ http://www.fishpool.com/~setok/
Date: Tue, 3 Oct 2006 17:43:49 +0300
On 3 Oct 2006, at 14:55, Gustaf Neumann wrote:
> Kristoffer Lawson schrieb:
>> I need to know if the current procedural context is inside a
>> method (isntproc, proc, whatever) or not.
> can you explain in more detail, what the problem is?
> Note, that one can calls tcl procs from within xotcl methods, one
> can have evals, uplevels, etc.
I have a debug library that automatically displays information about
the proc or method in which it was called, to get the context for the
information. I want to check that if I'm running in an XOTcl method,
I also want to display the class for it.
>> What is the best way to do this? I used [self] to check by
>> catching the error, but that doesn't work particularly well if
>> another package happens to define the command [self].
> use ::xotcl::self
Good idea.
> "self" can be used to check whether the xotcl callstack is non-empty.
Yes, but only by wrapping it in a [catch].
> without promising to much, a sucommand"ismethod" for "self"
> retuning 0 or 1 depending whether the
> current stackframe is an xotcl method should be doable with little
> effort.
Worth considering. It's not perhaps high-priority, but might make it
neater.
/ http://www.fishpool.com/~setok/