[Python-Dev] Numerical robustness, IEEE etc.

Brett Cannon brett at python.org
Mon Jun 19 04:58:39 CEST 2006

[skipping answering the numeric-specific questions since I am no math
expert  =) ]

On 6/15/06, Nick Maclaren <nmm1 at cus.cam.ac.uk> wrote:
> As I have posted to comp.lang.python, I am not happy with Python's
> numerical robustness - because it basically propagates the 'features'
> of IEEE 754 and (worse) C99.  Yes, it's better, but I would like to
> make it a LOT better.  I already have a more robust version of 2.4.2,
> but there are some problems, technical and political.  I should
> appreciate advice.
> 1) Should I start off by developing a testing version, to give people
> a chance to scream at me, or write a PEP?  Because I am no Python
> development expert, the former would help to educate me into its
> conventions, technical and political.

I would do both.  It is a lot easier to get something accepted when you have
working code.  But a PEP to vent possible arguments against the change along
with any backwards-compatibility issues will be needed for something as
major as changing how math works.

2) Because some people are dearly attached to the current behaviour,
> warts and all, and there is a genuine quandary of whether the 'right'
> behaviour is trap-and-diagnose, propagate-NaN or whatever-IEEE-754R-
> finally-specifies (let's ignore C99 and Java as beyond redemption),
> there might well need to be options.  These can obviously be done by
> a command-line option, an environment variable or a float method.
> There are reasons to disfavour the last, but all are possible.  Which
> is the most Pythonesque approach?
> 3) I am rather puzzled by the source control mechanism.  Are commit
> privileges needed to start a project like this in the main tree?
> Note that I am thinking of starting a test subtree only.

To work directly in Python's repository, yes, checkin privileges are
needed.  In order to get these, though, you usually either need to have been
involved in python-dev for a while and be known to the group or have someone
everyone trusts to watch over you as you do your work in a branch.

4) Is there a Python hacking document?  Specifically, if I want to
> add a new method to a built-in type, is there any guide on where to
> start?

The C API docs are at http://docs.python.org/ and there are some docs at
http://www.python.org/dev/ in terms of intro to how development for Python
tends to take place.


5) I am NOT offering to write a full floating-point emulator, though
> it would be easy enough and could provide repeatable, robust results.
> "Easy" does not mean "quick" :-(  Maybe when I retire.  Incidentally,
> experience from times of yore is that emulated floating-point would
> be fast enough that few, if any, Python users would notice.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/python-dev/attachments/20060618/b23cc1bf/attachment.html 

More information about the Python-Dev mailing list