Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
allendowney
GitHub Repository: allendowney/cpython
Path: blob/main/Modules/_decimal/README.txt
12 views
1
2
3
About
4
=====
5
6
_decimal.c is a wrapper for the libmpdec library. libmpdec is a fast C
7
library for correctly-rounded arbitrary precision decimal floating point
8
arithmetic. It is a complete implementation of Mike Cowlishaw/IBM's
9
General Decimal Arithmetic Specification.
10
11
12
Build process for the module
13
============================
14
15
As usual, the build process for _decimal.so is driven by setup.py in the top
16
level directory. setup.py autodetects the following build configurations:
17
18
1) x64 - 64-bit Python, x86_64 processor (AMD, Intel)
19
20
2) uint128 - 64-bit Python, compiler provides __uint128_t (gcc)
21
22
3) ansi64 - 64-bit Python, ANSI C
23
24
4) ppro - 32-bit Python, x86 CPU, PentiumPro or later
25
26
5) ansi32 - 32-bit Python, ANSI C
27
28
6) ansi-legacy - 32-bit Python, compiler without uint64_t
29
30
7) universal - Mac OS only (multi-arch)
31
32
33
It is possible to override autodetection by exporting:
34
35
PYTHON_DECIMAL_WITH_MACHINE=value, where value is one of the above options.
36
37
38
NOTE
39
====
40
41
decimal.so is not built from a static libmpdec.a since doing so led to
42
failures on AIX (user report) and Windows (mixing static and dynamic CRTs
43
causes locale problems and more).
44
45
46
47
48