4 ms·
There is pypy-dev discussion about the subject that starts here: http://mail.python.org/pipermail/pypy-dev/2011-April/007139.html http://mail.python.org/piperma
by fijal 14y ago
There is pypy-dev discussion about the subject that starts here: http://mail.python.org/pipermail/pypy-dev/2011-April/007139.html http://mail.python.org/pipermail/pypy-dev/2011-April/007139....
It's a long and boring read, but here you go.
As in the actual complaints, as far as I remember, but this was a bit ago:
* our versions got rejected because they perform slower on CPython (while being faster on PyPy) and because they're 'unobvious'. At the same time, the C implementation of a lot of things there is very unobvious.
* we were not allowed to use array.array module, despite being in standard library.
* you can use gmp library for C, CPython, but not PyPy via ctypes
* C can use a bad random (that's fast, but also gives a really bad distribution), while PyPy not because Python comes with a random in stdlib
* custom malloc libraries for C are fine, tuning JIT parameters per-benchmark is not.
And various complaints like this. After some discussion, Isaac just kicked us out alltogether. Overall, my personal impression of the experience was that shootout is there to showcase things that are predetermined and we're trying to attack the status quo. This is obviously very personal, I don't have any actual data to back up this claim.
- igouy 14y agoREADER BEWARE! >>our versions got rejected because they perform slower on CPython (while being faster on PyPy)<< Maciej Fijalkowski knows that I asked him to contribute a PyPy version of n-body because the written-for-CPython version failed with PyPy. Maciej Fijalkowski knows that his own PyPy version of n-body "performed slower on CPython (while being faster on PyPy)" -- AND WAS NOT REJECTED. http://mail.python.org/pipermail/pypy-dev/2011-April/007177.html http://mail.python.org/pipermail/pypy-dev/2011-April/007177.... Justify your accusation or take it back! >> you can use gmp library for C, CPython, but not PyPy via ctypes << Joe La Fata's pi-digits code worked first time on x86 and x64, on PyPy and CPython and Python3; and used ctypes to get to GMP -- AND WAS NOT REJECTED http://anonscm.debian.org/viewvc/shootout/shootout/bench/pidigits/pidigits.python3-6.python3?hideattic=0&revision=1.1&view=markup http://anonscm.debian.org/viewvc/shootout/shootout/bench/pid... Justify your accusation or take it back! >> C can use a bad random (that's fast, but also gives a really bad distribution), while PyPy not because Python comes with a random in stdlib << The fasta task uses random numbers, and every fasta program (including C and Python) implements the same random function. http://shootout.alioth.debian.org/u32/program.php?test=fasta&lang=gcc&id=4 http://shootout.alioth.debian.org/u32/program.php?test=fasta... http://shootout.alioth.debian.org/u32/program.php?test=fasta&lang=python3&id=2 http://shootout.alioth.debian.org/u32/program.php?test=fasta... Justify your accusation or take it back! ---- Tell Maciej Fijalkowski to justify his accusations!
- fijal 14y agoCool that you're linking to this mail, this shows yet another problem that I forgot about - that pypy extensions are uncool, while GCC extensions are cool (and say a custom malloc library for GCbench - after all the benchmark does not do anything, an empty malloc would do just fine).
- fijal 14y agoLook Igor -- I don't care how things are now since PyPy got kicked out anyway, so I seriously don't care any more. gmpy uses C extension, it's not using ctypes. We disagreed over a ctypes version at some point. random - indeed it got fixed (and it's too late to edit a parent if you wonder)
- igouy 14y ago>> random - indeed it got fixed << Nonsense! The fasta task has ALWAYS required ALL the programs to implement the same random function. (Use a different random function and the program output will fail the diff.)
- igouy 14y ago>> we were not allowed to use array.array module, despite being in standard library. << 2 April 2011, Joe LaFata contributed a faster for PyPy spectral-norm program. His program worked first time on x86 and x64, on PyPy and CPython and Python 3. His program was measured and published within 24 hours. from array import array http://shootout.alioth.debian.org/u32/program.php?test=spectralnorm&lang=python3&id=8 http://shootout.alioth.debian.org/u32/program.php?test=spect... Justify your accusation or take it back!
- igouy 14y ago>> gmpy uses C extension, it's not using ctypes. << import ctypes from ctypes.util import find_library _libgmp = ctypes.CDLL(find_library("gmp")) class mpz_t_struct(ctypes.Structure): _fields_ = [("mp_alloc", ctypes.c_int), ("mp_size", ctypes.c_int), ("mp_d", ctypes.c_void_p)]
- igouy 14y ago