[Python-Dev] ob_refcnt access

Christian Tismer tismer at appliedbiometrics.com
Mon Jun 28 23:41:28 CEST 1999

Guido van Rossum wrote:
> > > yes I'm happy - chris
> >
> > You should be!  So how come nobody else is <wink/frown>?
> Chris and I have been through this in private, but it seems that as
> long as I don't fess up in public I'm afraid it will come back and
> I'll get pressure coming at me to endorse Chris' code.

Please let me add a few comments.

> I have no problem with the general concept (see my response to Sam's
> post of exciting examples).

This is the most worthful statement I can get.
And see below.

> But I have a problem with a megapatch like this that affects many
> places including very sensitive areas like the main loop in ceval.c.

Actually it is a rather small patch, but the implicit semantic
change is rather hefty.

> The problem is simply that I know this is very intricate code, and I
> can't accept a patch of this scale to this code before I understand
> every little detail of the patch.  I'm just too worried otherwise that
> there's a reference count bug in it that will very subtly break stuff
> and that will take forever to track down; I feel that when I finally
> have the time to actually understand the whole patch I'll be able to
> prevent that (famous last words).

I never expected to see this patch go into Python right now.
The current public version is an alpha 0.2. Meanwhile I have
0.3, with again new patches, and a completely reworked policy
of frame refcounting.
Even worse, there is a night mare of more work which I simply
had no time for. All the instance and onbect code must be
carefully changed, since they still need to call back in
a recursive way. This is hard to change until I have a better
mechanism to generate all the callbacks. For instance, I cannot
switch tasks in an __init__ at this time. Although I can
do so in regular methods. But this is all half-baked.

In other words, the danger is by far not over, but still
in the growing phase. I believe I should work on and maintain
this until I'm convinced that there are not more refcount
bugs than before, and until I have evicted every recursion
which is a serious impact. This is still months of work.

When I release the final version, I will pay $100 to the first
person who finds a refcount bug which I introduced. But not
before. I don't want to waste Guido's time, and for sure not
now with this bloody fresh code.

What I needed to know is wether I am on the right track or
if I'm wasting my time. But since I have users already,
it is no waste at all. What I really could use were some
hints about API design.

Guido, thank you for Python - chris

Christian Tismer             :^)   <mailto:tismer at appliedbiometrics.com>
Applied Biometrics GmbH      :     Have a break! Take a ride on Python's
Kaiserin-Augusta-Allee 101   :    *Starship* http://starship.python.net
10553 Berlin                 :     PGP key -> http://wwwkeys.pgp.net
PGP Fingerprint       E182 71C7 1A9D 66E9 9D15  D3CC D4D7 93E2 1FAE F6DF
     we're tired of banana software - shipped green, ripens at home

More information about the Python-Dev mailing list