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

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

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:

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:

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 tree implementation

原文链接: https://www.cnblogs.com/lexus/archive/2011/10/04/2198916.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

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

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/33526

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 上午10:38
下一篇 2023年2月8日 上午10:39

相关推荐