Comment #30 on issue 2482 by asmeurer: Stop bundling mpmath
http://code.google.com/p/sympy/issues/detail?id=2482

I think we all have said our arguments

I actually disagree with this statement. A lot of core members of the community have not yet chimed in on this, and I would like to hear their opinions before making any final decision. Perhaps the discussion should be moved to the mailing list.

In particular, I have not given my opinion. So let me just say that I agree with Ondrej completely. I would try to keep the situation as it currently is, i.e., continue bundling mpmath. My arguments are basically the same as Ondrej's. I also have some additional ones.

First, I do not 100% agree with the statement that mpmath is stable. We have had to fix little bugs in the past three releases. Three of these actually were bugs entirely in pure mpmath. In other words, they would have shown up if the mpmath tests were run in a certain environment. I do not know how extensively Fredrik tests mpmath, but bugs have fallen through. I do know that we extensively test SymPy before every release, and quite a bit in between, which includes the mpmath tests. This kind of "free" test coverage for mpmath would essentially go away if we unbundled, as we would no longer be running the tests. This is something not only to be considered from the mpmath side, but from ours. This may sound superficial and even misplaced, but consider as an example that mpmath 0.16 is completely broken in Python 2.4 with gmpy installed, something that was not even discovered by us until just before releasing 0.7.0 (which includes 0.16). So if someone runs pure mpmath 0.16 in Python 2.4 with gmpy installed, it won't work, but if they use SymPy's mpmath there it will.

Regarding the 2to3 problem, first, I would not be so afraid of patching distribute, especially if that patch were submitted upstream. Actually, I'm not even 100% convinced that we should port to Distribute. So far, the reasons for porting have been:

1. Automatic calling of 2to3, and only on updated files
2. Marking mpmath as a dependency (if we unbundle).

The reasoning behind argument 2 is circular. It basically says that we need to unbundle mpmath so we can use distribute, which is necessary so we can mark mpmath as a required dependency. And argument 1 is not so great either, because we already are seeing deficiencies in the use_2to3 option.

Are there further reasons to port to distribute? This keeping in mind the stackoverflow answer I linked to above, which seems to state that distutils2 (or packaging as it will be called) will be the eventual standard.

On the other hand, as I just realized, distribute itself would become a dependency for SymPy (unless you don't install it). This could be done if there were enough reasons to do it, but so far I am not convinced. To me, the better solution would be to write our own bin/2to3 tool that translates sympy to sympy-py3k, automatically any files that have not changed and just copying mpmath.

I just noticed at http://packages.python.org/distribute/python3.html that you can define your own 2to3 fixers (or at least it seems to imply that). I wonder if we could just use that.

Finally, I want to ask Fredrik what the reasoning was behind making mpmath have a single code base for Python 2 and 3. Because that too would solve our problem, if mpmath did things using 2to3 (which in my opinion is the sane way).

--
You received this message because you are subscribed to the Google Groups 
"sympy-issues" group.
To post to this group, send email to sympy-issues@googlegroups.com.
To unsubscribe from this group, send email to 
sympy-issues+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sympy-issues?hl=en.

Reply via email to