[Python-Dev] Last chance! (was: Does anybody really use frame->f_tstate ?)

Christian Tismer tismer at tismer.com
Fri Dec 19 04:32:37 EST 2003

Dear Python community,

since I didn't get *any* reply to this request,
either the request was bad or there is really
nobody using f_tstate in a way that makes it
urgent to keep.
I will wait a few hours and then make the change
to Stackless, and I'd like to propose to do the
same to the Python core.

Christian Tismer wrote:
> Hi colleagues,
> this is my second attempt to get rid of the f_tstate field
> in frames. I need to find every user of this field.
> What am I talking about?
> Well, Python always has a thread state variable which
> is a unique handle to the current thread. This variable
> is accessed in many places, and there exists a fast macro
> to get at it.
> Every executing Python frame also gets a copy on creation.
> In some cases, this frame->f_tstate field is used,
> in other cases the current tstate variable is used.
> If this sounds foreign to you, please stop reading here.
> -------------------------------------------------------------
> I would like to get rid of the frame->f_tstate, and I'm trying
> to find out if there is a need for it. I don't need it,
> for Stackless, it is the opposite, it disturbs.
> There was a small thread about this in June this year, where
> Guido convinced me that it is possible to create a traceback
> on a frame that comes from a different thread.
> http://mail.python.org/pipermail/python-dev/2003-June/036254.html
> Ok, this is in fact possible, although I don't think
> anybody has a need for this.
> My question to all extension writers is this:
> If you use frame->f_tstate at all, do you use it just
> because it is handy, or do you want to use it for
> some other purpose?
> One purpose could be that you really want to create a traceback
> on a different than the current thread. I have never seen this,
> but who knows, so that's why I'm asking the Python world.
> In most cases, a traceback will be created on a frame
> that is currently processd or just has been processed.
> Accessing a frame of a different thread that is being processed
> might make sense for special debugger cases.
> My proposal is
> --------------
> a) change semantics of PytraceBack_Here to use the current tstate.
> b) if such a special purpose exists, create a new function for it.
> c) if urgent, different needs exist to keep f_tstate,
>    then let's forget about this proposal.
> Especially for Stackless, I'd be keen of getting rid of this.
> thanks for input -- chris

Christian Tismer             :^)   <mailto:tismer at tismer.com>
Mission Impossible 5oftware  :     Have a break! Take a ride on Python's
Johannes-Niemeyer-Weg 9a     :    *Starship* http://starship.python.net/
14109 Berlin                 :     PGP key -> http://wwwkeys.pgp.net/
work +49 30 89 09 53 34  home +49 30 802 86 56  mobile +49 173 24 18 776
PGP 0x57F3BF04       9064 F4E1 D754 C2FF 1619  305B C09C 5A3B 57F3 BF04
      whom do you want to sponsor today?   http://www.stackless.com/

More information about the Python-Dev mailing list