[pypy-dev] what does the debug cycle look like?

Alex Gaynor alex.gaynor at gmail.com
Tue Aug 14 06:44:58 CEST 2012


On Mon, Aug 13, 2012 at 9:31 PM, Brandon Rhodes <brandon at rhodesmill.org>wrote:

> I need some help.
>
> I want to help add more numpypy goodness to PyPy, so that I can rewrite
> my PyEphem astronomy module as pure Python instead of having to always
> maintain a C extension.  I will then tell the users who are doing large
> calculations, and need extra speed, that they can run their script on
> PyPy and have it run blazing fast.
>
> My problem is that I am not sure how to start adding code to PyPy in
> such a way that I can try out my code more than once within a single
> work day, because it is taking 5+ hours to build the translator on every
> platform to which I have access.  This did not surprise me on my 2003
> Dell PowerEdge 400SC, with its 2GB of kind-of-working RAM, which wound
> up taking 5h 28m to complete the build.  But I just got finished trying
> the build on the fastest computer in the house - my wife's few-month-old
> iMac with 4GB of memory - and it actually took *longer*, finishing up a
> full 5h 53m (!) after it started.
>
> And, actually, that's not the big problem.  The big problem is that
> whereas C Python uses Make, so it only re-compiles the files I have
> changed when I am in a tight development loop, it seems that PyPy starts
> the whole translation process over again when I run it.  How does one
> actually iterate when working on part of PyPy and its libraries?
>
> Only now that it is past midnight, as I write this, do I realize that my
> subsequent builds of PyPy can be done with the PyPy interpreter itself,
> speeding things up considerably!  But even if I can bring down the build
> time to under a half-hour, I can hardly imagine doing software
> development under the constraint of such delays - what am I missing?
>
> My first feat, should it success, will be writing load() for numpypy
> since that it the first missing feature I noticed when I tried running
> my prototype "jplephem" package - my first attempt at doing heavy-duty
> astronomy in pure Python.  I had hoped to have the package run and walk
> away with a number to compare to the pure C performance, but instead I
> get the fun of contributing! :)
>
> --
> Brandon Rhodes      brandon at rhodesmill.org
> http://rhodesmill.org/brandon
> _______________________________________________
> pypy-dev mailing list
> pypy-dev at python.org
> http://mail.python.org/mailman/listinfo/pypy-dev
>

The trick is tests!  Tests can be run without translating (actually the
whole interpreter can, but we like tests :D).  Just run `pytest.py
pypy/module/numpypy/` and you're running the tests, they take like a minute
or two, which is way too long IMO, but it's
totally serviceable for iterative development.  The only reason we ever
translate is to asses the performance of something.

Alex

-- 
"I disapprove of what you say, but I will defend to the death your right to
say it." -- Evelyn Beatrice Hall (summarizing Voltaire)
"The people's good is the highest law." -- Cicero
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pypy-dev/attachments/20120813/29d0550e/attachment.html>


More information about the pypy-dev mailing list