jeremy at alum.mit.edu
Mon Sep 9 18:56:20 CEST 2002
"Jeff Sasmor" <jeff at sasmor.com> wrote in message news:<cSOe9.3024$io.1100 at nwrddc03.gnilink.net>...
> Speaking from what I understand about this subject, it's not
> simple for the Zope Corp to merely plug-in a new version of
> Python and make a release. Disregarding any issues about
> changes they might want to make that would take advantage of
> new features of Python 2.2 (and up), the underlying instrumentality
> of Zope, the ZODB (Zope Object DataBase) as it exists in Zope 2.5
> and so on, will not run under Python versions > 2.1 due to
> incompatibilities of the C extension classes with the changes made
> (in Python 2.2) regarding type-class unification.
> Obviously, there's already a version of ZODB for Python 2.2, but
> I think it's not something that one cannot just 'drop in' to a current
> version of Zope.
The issue is a little more subtle, actually. The existing version of
ZODB -- the one that ships with Zope 2.5 -- works just fine with
Python 2.3. Python works hard to be backwards compatible with C
extensions written against older versions of the C API. The current
version of ZODB uses ExtensionClass, and that compiles cleanly and
runs with Python 2.1 and up.
The only compatibility issue is that ExtensionClass types don't mix
cleanly with new-style types. But if you're not depending on
new-in-2.2 features, then you've got nothing to worry about.
Python 2.2 provides an opportunity to re-write ZODB to use new-style
types instead of ExtensionClass. The new implementation will work
cleanly with new-style types. The rewrite, dubbed ZODB4, is working,
but experimental. We're may rewrite the API completely tomorrow <0.8
You can checkout ZODB4 or Zope3 from cvs.zope.org to play with the new
We're also discussing some ZODB issues -- basic persistence and
transaction APIs -- on the persistence-sig.
More information about the Python-list