summaryrefslogtreecommitdiffstats
path: root/Modules/_decimal/ISSUES.txt
blob: 7a545c2287bcf0cbc75b51ebd0fda2b15aae3a23 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56


Normal priority:
----------------

1) Add C-API importable as capsule.

2) Add --with-system-libmpdec to ./configure.

3) Use same default emin/emax on 32-bit (MAX_EMAX=425000000) and 64-bit
   (MAX_EMAX=10**18-1).

4) Order of arguments in Context().

5) Documentation.

6) quantize()
     - exp argument is misleading:
          Decimal('0.321000e+2').quantize(exp=9) -> user might expect
          that the result will have exp=9.
     - watchexp

7) Match the exception hierarchy of decimal.py:

   exceptions.ArithmeticError(exceptions.Exception)
      DecimalException
          Clamped
          DivisionByZero(DecimalException, exceptions.ZeroDivisionError)
          Inexact
              Overflow(Inexact, Rounded)
              Underflow(Inexact, Rounded, Subnormal)
          InvalidOperation
          Rounded
          Subnormal
          FloatOperation


Low priority:
-------------

1) Convert tabs (wait until commit).

2) Pre-ANSI compilers require '#' in the first column (should be done
   for the whole Python source tree if we support such compilers). (?)

3) FETCH_CURRENT_CONTEXT vs. CURRENT_CONTEXT?

4) Justify remaining uses of exit on overflow in bignum arith. Short
   answer: with correct context values the coefficients never get big
   enough for that to happen.

5) Justify remaining uses of abort() in mpdecimal: These uses are
   for debug purposes and can't be reached when the library is used
   correctly.