-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I'm actively working porting current bsddb code to python 3.0. The work is going fine. Current code compiles in both Python 2.[3-6] and 3.0. I have some issues with module initialization:
""" [EMAIL PROTECTED] bsddb3]$ python3.0 Python 3.0b2 (r30b2:65080, Jul 19 2008, 03:39:09) [GCC 4.2.3] on sunos5 Type "help", "copyright", "credits" or "license" for more information. |>> import _pybsddb Traceback (most recent call last): ~ File "<string>", line 1, in <module> ImportError: __build_class__ not found Fatal Python error: can't initialize module _bsddb Abort (core dumped) """ Help welcomed :). I was going to commit current (in flux) bsddb code, hoping you were able to help me with this error, but I see a lot of work there. The 3.0 bsddb branch has evolved at its own, without porting a huge number of patches available in bsddb code in 2.6. The new code has grown buffer protocol, for example, but it is based in an old codebase. My intention as maintainer of pybsddb is to keep an unified sourcecode for Python 2.x y 3.x branches. The C sourcecode should be a single file (with some ugly conditional compilations, I know), and Python code would be maintained as 2.x and ported to 3.x automagically via 2to3. At least for the time being. Current bsddb code in 3.0 branch has new features like buffers, but it is based in an old bsddb codebase. What can we do?. I've picked some selected patches from 3.0 code fork, bit I rather prefer to delay the buffer protocol until having a functional library for 3.0. Anybody is able to compile current bsddb in 3.0 svn?. May I overwrite current version with my own one, updated with your patches (except the buffer code; I rather prefer to delay that)?. This lib is huge and fairly complex for a binding. The testsuite has more than 300 testcases, and growing. Keeping an unified codebase (for python 2.x and 3.0) seems to be the only way to garantee quality and avoid divergence. I'm asking for module ownership, to be able to meet 3.0 deadline with an stable and complete product. For example, current 3.0 code has no replication or distributed transactions support, while 2.6 has. So I'm asking your permission to: 1. Take your (valuable) current patches in 3.0. 2. Replace current code with my own one + your patches. The Buffer protocol will be out at this time. It will be evaluated when the binding is ready for 3.0. Time constrains and my aim to keep an unified codebase precludes its inclusion, *for now*. This will change in the future, of course. 3. The canonical sourcecode would be the 2.6 version. The C code in 3.0 should be identical. The Python code in 3.0 would be a direct translation via 2to3. So, patches should go to 2.6. I will keep 2.6 and 3.0 in sync. I acknowledge that some people would like to remove bsddb from the standard lib, arguing it is a maintenance nightmare. I consider, then, that the right thing to do would be to (fully) delegate this code to me, a guy motivated, with deep knowledge on this technology and that uses this code everyday. You will be relieved of maintain it, while keeping this extremely powerful tool in the stdlib. Any linux distro includes Berkeley DB. With this lib in Python, everyone has a powerful ACID+replication+distributed transaction system scalable to petabytes without any extra download&install. That fact is very valuable. Do not drop this advantage!. Thanks for your confidence. PS: I need help with the "ImportError: __build_class__ not found" thing. You can look at the code at svn://svn.argo.es/jcea/pybsddb/trunk/Modules , revision 523. This code compiles under Python 2.[3-6] and 3.0. Under 2.6 it pases all the 303 tests. On 3.0 it compiles, but fails to import, with the given error. Any idea?. - -- Jesus Cea Avion _/_/ _/_/_/ _/_/_/ [EMAIL PROTECTED] - http://www.jcea.es/ _/_/ _/_/ _/_/ _/_/ _/_/ jabber / xmpp:[EMAIL PROTECTED] _/_/ _/_/ _/_/_/_/_/ . _/_/ _/_/ _/_/ _/_/ _/_/ "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/ "El amor es poner tu felicidad en la felicidad de otro" - Leibniz -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.8 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBSIGfAplgi5GaxT1NAQLwfgP9EPFmX54XbZaC7h6qfPldNZ84YpbMA7MR lD/CnzRaep5yfHnk1N3JRGbO14lCajYbyvjWQ3LdH5upocNplxUbn5Uog4inQpty U8oVMMcWh1KzQvLAqk4nWuD9veGMKlGR9i4mOlN65Jfv4H0+gJmx+Y0xAI8E01b9 oUSQppoaKYM= =oFI5 -----END PGP SIGNATURE----- _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com