| |
| |
| About |
| ===== |
| |
| _decimal.c is a wrapper for the libmpdec library. libmpdec is a fast C |
| library for correctly-rounded arbitrary precision decimal floating point |
| arithmetic. It is a complete implementation of Mike Cowlishaw/IBM's |
| General Decimal Arithmetic Specification. |
| |
| |
| Build process for the module |
| ============================ |
| |
| As usual, the build process for _decimal.so is driven by setup.py in the top |
| level directory. setup.py autodetects the following build configurations: |
| |
| 1) x64 - 64-bit Python, x86_64 processor (AMD, Intel) |
| |
| 2) uint128 - 64-bit Python, compiler provides __uint128_t (gcc) |
| |
| 3) ansi64 - 64-bit Python, ANSI C |
| |
| 4) ppro - 32-bit Python, x86 CPU, PentiumPro or later |
| |
| 5) ansi32 - 32-bit Python, ANSI C |
| |
| 6) ansi-legacy - 32-bit Python, compiler without uint64_t |
| |
| 7) universal - Mac OS only (multi-arch) |
| |
| |
| It is possible to override autodetection by exporting: |
| |
| PYTHON_DECIMAL_WITH_MACHINE=value, where value is one of the above options. |
| |
| |
| NOTE |
| ==== |
| |
| decimal.so is not built from a static libmpdec.a since doing so led to |
| failures on AIX (user report) and Windows (mixing static and dynamic CRTs |
| causes locale problems and more). |
| |
| |
| |