The cdecimal is a fast drop-in replacement for the decimal module in Python's
standard library. Both modules provide complete implementations of the General
Decimal Arithmetic Specification.
Typical performance gains are between 30x for I/O heavy benchmarks and 80x for
numerical programs. In a database benchmark, cdecimal exhibits a speedup of
12x over decimal.py.
decimal cdecimal speedup
pi 42.75s 0.58s 74x
telco 172.19s 5.68s 30x
psycopg 3.57s 0.29s 12x
All Python versions from 2.5 up to 3.2 are supported. For the few remaining
differences, read the cdecimal documentation. cdecimal has been included in
Python-3.3.
WWW: http://www.bytereef.org/mpdecimal/index.html
cleanup: Remove expired ports:
2022-05-27 math/py-cdecimal: upstream does not support it after Python-3.2
2022-05-27 devel/py-meliae: does not build against Python-3.9
math/py-cdecimal: deprecate and mark BROKEN with Python 3.9
Note: upstream does not support it after Python-3.2, and a fast C
implementation of the decimal module (_decimal) is bundled with Python.
PR: 261870
math/py-cdecimal: limit supported python version
cdecimal3.c:657:21: error: no member named 'tp_print' in 'struct _typeobject'
return PyDict_Type.tp_print(self, fp, flags); /* GCOV_NOT_REACHED */
Relax hardcoded paths to fix build with Python 3.8.7
Since r558913 Python 3.8 incorporates BPO-42604 [1] which changed the
shared libs naming scheme. This means "EXT_SUFFIX" is now derived from
SOABI and yields with Python 3.8 to ".cpython-38.so" instead of ".so".
The affected ports strip the libaries in the "post-install" target via
hardcoded path(s) and the build fails at the end because the new extension
is not expected at this place.
Remedy the issue by adding wildcards to these paths. This should also
prepare the ports for future Python releases, which will use the new shared
libs naming scheme.
[1] https://bugs.python.org/issue42604
PR: 252057
Reported by: John Kennedy
Reviewed by: fluffy, koobs
Approved by: koobs (python)