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.