On 10/7/05, Phillip J. Eby <[EMAIL PROTECTED]> wrote: > At 07:17 PM 10/7/2005 -0600, Adam Olsen wrote: > >On 10/7/05, Phillip J. Eby <[EMAIL PROTECTED]> wrote: > > > Note that implementing a root-based GC for Python is non-trivial, since > > > extension modules can store pointers to PyObjects anywhere they > > > like. Further, many Python objects don't even support being tracked by > > > the > > > current cycle collector. > > > > > > So, changing this would probably require a lot of C extensions to be > > > rewritten to support the needed API changes for the new garbage collection > > > strategy. > > > >They only need to be rewritten if you want them to provide an > >immutable type that can be transferred between sandboxes. > > No. You're missing my point. If they are able to *reference* these > objects, then the garbage collector has to know about it, or else it can't > know when to reclaim them. Ergo, these objects will leak, or else > extensions will crash when they refer to the deallocated memory. > > In other words, you can't handwave the whole problem away by assuming "a > garbage collector". The garbage collector has to actually be able to work, > and you haven't specified *how* it can work without changing the C API.
Unfortunately the rammifications of your original statement didn't set in until well after I sent my reply. You are right, it does make it impossible without changing the C API, so that much of the idea is dead. I wonder if it would be possible to use a wrapper around the immutable type instead.. something to ponder anyway. > >I was aware that weakrefs needed some special handling (I just forgot > >to mention it), but I didn't know it was used by subclassing. > >Unfortunately I don't know what purpose it serves so I can't > >contemplate how to deal with it. > > It allows changes to a supertype's C-level slots to propagate to subclasses. I see. Well, I would have required the supertype to be immutable, so there couldn't be any changes to the C-level slots. -- Adam Olsen, aka Rhamphoryncus _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com