[Python-Dev] ob_refcnt access

Mark Hammond MHammond at skippinet.com.au
Mon Jun 28 06:29:29 CEST 1999


> > yes I'm happy - chris
>
> You should be!  So how come nobody else is <wink/frown>?

Im a little unhappy as this will break the Active Debugging stuff - ie, the
ability for Python, Java, Perl, VBScript etc to all exist in the same
process, each calling each other, and each being debuggable (makes a
_great_ demo :-)

Im not _really_ unhappy, Im just throwing this in as an FYI.

The Active Debugging interfaces need some way of sorting a call stack.  As
many languages may be participating in a debugging session, there is no
implicit ordering available.  Inter-language calls are not made via the
debugger, so it has no chance to intercept.

So the solution MS came up with was, surprise surprise, the machine stack!
:-)  The assumption is that all languages will make _some_ use of the
stack, so they ask a language to report its "stack base address" and "stack
size".  Using this information, the debugger sorts into the correct call
sequence.

Indeed, getting this information (even the half of it I did manage :-) was
painful, and hard to get right.

Ahh, the joys of bleeding-edge technologies :-)

> Let's fire some imagination here:  without the stinkin' C
> stack snaking its

I tried, and look what happened :-)  Seriously, some if this stuff would be
way cool.

Bit I also understand completely the silence on this issue.  When the
thread started, there was much discussion about exactly what the hell these
continuation/coroutine thingies even were.  However, there were precious
few real-world examples where they could be used.  A few acedemic,
theoretical places, but the only real contender I have seen brought up was
Medusa.  There were certainly no clear examples of "as soon as we have
this, I could change abc to take advantage, and this would give us the very
cool xyz"

So, if anyone else if feeling at all like me about this issue, they are
feeling all warm and fuzzy knowing that a few smart people are giving us
the facility to do something we hope we never, ever have to do. :-)

Mark.





More information about the Python-Dev mailing list