好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Nicolas Lehuen’s pytst is a C++ ternary search tre

Nicolas Lehuen’s pytst is a C++ ternary search tree implementation with a Python interface

Index of /wp-content/uploads/oldies/download/pytst

Running pytst 1.15 on a 64-bit platform

by Thomas Brox R?st on January 25, 2009
in Python , pytst

Share Your Thoughts

Update: The latest version, 1.17, compiles on 64-bit platforms out of the box, so the patch below is no longer necessary.

Nicolas Lehuen’s pytst is a C++ ternary search tree implementation with a Python interface. It’s an excellent tool—and it is also really, really fast.

Unfortunately version 1.15 doesn’t compile on 64-bit platforms, giving the following error messages:

view source print ?

01. pythonTST.h:178: error: cannot convert 'int*' to 'Py_ssize_t*' for argument '3'

02. to 'int PyString_AsStringAndSize(PyObject*, char**, Py_ssize_t*)'

03. tst_wrap.cxx: In function 'PyObject* _wrap__TST_walk__SWIG_1(PyObject*, int, PyO

04. bject**)':

05. tst_wrap.cxx:3175: error: cannot convert 'int*' to 'Py_ssize_t*' for argument '3

06. ' to 'int PyString_AsStringAndSize(PyObject*, char**, Py_ssize_t*)'

07. tst_wrap.cxx: In function 'PyObject* _wrap__TST_close_match(PyObject*, PyObject*

08. )':

09. tst_wrap.cxx:3250: error: cannot convert 'int*' to 'Py_ssize_t*' for argument '3

10. ' to 'int PyString_AsStringAndSize(PyObject*, char**, Py_ssize_t*)'

11. tst_wrap.cxx: In function 'PyObject* _wrap__TST_prefix_match(PyObject*, PyObject

12. *)':

13. [...and so on...]

Until Nicolas releases an updated version, here is the quick fix:

view source print ?

1. cp pythonTST.h pythonTST.h.orig

2. cp tst_wrap.cxx tst_wrap.cxx.orig

3. sed - r 's/int size/Py_ssize_t size/' < tst_wrap.cxx.orig > tst_wrap.cxx

4. sed - r 's/int length/Py_ssize_t length/' < pythonTST.h.orig > tmpfile

5. sed - r 's/sizeof\(int\)/sizeof(long)/' < tmpfile > pythonTST.h

Run these commands from the pytst source directory and you should be all set. I’m not sure if this a fully satisfactory solution, but at least this will get the test suite running again.




查看更多关于Nicolas Lehuen’s pytst is a C++ ternary search tre的详细内容...

  阅读:35次