Hey I'd like to know if the proposed numpy projects list at https://bitbucket.org/pypy/extradoc/src/extradoc/planning/micronumpy.txt is still up to date, and if so what is meant by "a good sort function." If it's just a matter of implementing a known good algorithm, that seems like a good way to start contributing to pypy. The advice on http://doc.pypy.org/en/latest/project-ideas.html suggested posting this question to #pypy on IRC, which I attempted to do through http://webchat.freenode.net/ but I never got a response. It was my first time trying to communicate over IRC, so I'm not sure if I did something incorrectly while trying to join the channel (I saw buildbot messages but no one else speaking) or if the lack of activity was simply due to time difference (I'm on USA east coast time, while I'm aware that much of the pypy-dev community is located in Europe). Any help with either the original question or joining the IRC discussion would be greatly appreciated :) -- Steven Jackson
On Tue, Jan 20, 2015 at 4:57 PM, Steven Jackson <stevenjackson121@gmail.com> wrote:
Hey I'd like to know if the proposed numpy projects list at https://bitbucket.org/pypy/extradoc/src/extradoc/planning/micronumpy.txt is still up to date, and if so what is meant by "a good sort function." If it's just a matter of implementing a known good algorithm, that seems like a good way to start contributing to pypy.
As far as sorting in python goes, you might find http://stromberg.dnsalias.org/svn/sorts/compare/trunk/ interesting. It includes a pure-python version of timsort, among others. I'm guessing either timsort or funnelsort would be best on pypy because of their locality of reference.
Hi Dan, On 21 January 2015 at 03:19, Dan Stromberg <drsalists@gmail.com> wrote:
It includes a pure-python version of timsort, among others.
There is one in PyPy too. Kind of obvious, in fact: we need one for implementing `list.sort()`. I think the original question was instead very numpy-specific: it refers, I guess, to some sorting that you do on numpy arrays. I guess (but I have no real clue) that timsort is not considered good for that purpose. Otherwise, it would be written in the planning file: "plug our existing timsort into numpy". A bientôt, Armin.
On 21/01/2015 2:57 AM, Steven Jackson wrote:
Hey I'd like to know if the proposed numpy projects list at https://bitbucket.org/pypy/extradoc/src/extradoc/planning/micronumpy.txt is still up to date, and if so what is meant by "a good sort function." If it's just a matter of implementing a known good algorithm, that seems like a good way to start contributing to pypy.
The advice on http://doc.pypy.org/en/latest/project-ideas.html suggested posting this question to #pypy on IRC, which I attempted to do through http://webchat.freenode.net/ but I never got a response. It was my first time trying to communicate over IRC, so I'm not sure if I did something incorrectly while trying to join the channel (I saw buildbot messages but no one else speaking) or if the lack of activity was simply due to time difference (I'm on USA east coast time, while I'm aware that much of the pypy-dev community is located in Europe).
Any help with either the original question or joining the IRC discussion would be greatly appreciated :)
-- Steven Jackson
_______________________________________________
The list is not really up to date, IRC is a good place to get more info but it is a low-activity channel with most devs online during European day-evening, and not every day. As for sort, we have implemented only timsort for ndarrays of numeric types, not record arrays. Numpy supports ‘quicksort’, ‘mergesort’, and ‘heapsort’, timsort is not supported. So to be numpy-compatible we should maybe support the other kinds, and support sorting record arrays. It would be great to get more people involved in pypy-numpy. Matti
Thank you for your responses; I'm pretty sure I can do quicksort, mergesort, and heapsort. :) Also, I did see responses starting in the minute after I decided to send an email, so I think I'm good on the IRC front. Am I right in assuming that I should checkout "default," make my own branch, write failing test cases, make the test cases succeed (occasionally merging in default) and then... actually i don't know what then. Commit? Pull request? I've never worked on a large project under version control and "Getting Started Developing with Pypy" "How to contribute to Pypy" and "You want to help with Pypy, now what?" all seem to assume prior knowledge about version control in general. Can anyone point me to a resource that can help me understand the development cycle? On Wed, Jan 21, 2015 at 5:18 AM, Matti Picus <matti.picus@gmail.com> wrote:
On 21/01/2015 2:57 AM, Steven Jackson wrote:
Hey I'd like to know if the proposed numpy projects list at https://bitbucket.org/pypy/extradoc/src/extradoc/planning/micronumpy.txt is still up to date, and if so what is meant by "a good sort function." If it's just a matter of implementing a known good algorithm, that seems like a good way to start contributing to pypy.
The advice on http://doc.pypy.org/en/latest/project-ideas.html suggested posting this question to #pypy on IRC, which I attempted to do through http://webchat.freenode.net/ but I never got a response. It was my first time trying to communicate over IRC, so I'm not sure if I did something incorrectly while trying to join the channel (I saw buildbot messages but no one else speaking) or if the lack of activity was simply due to time difference (I'm on USA east coast time, while I'm aware that much of the pypy-dev community is located in Europe).
Any help with either the original question or joining the IRC discussion would be greatly appreciated :)
-- Steven Jackson
_______________________________________________
The list is not really up to date, IRC is a good place to get more info
but it is a low-activity channel with most devs online during European day-evening, and not every day. As for sort, we have implemented only timsort for ndarrays of numeric types, not record arrays. Numpy supports ‘quicksort’, ‘mergesort’, and ‘heapsort’, timsort is not supported. So to be numpy-compatible we should maybe support the other kinds, and support sorting record arrays. It would be great to get more people involved in pypy-numpy. Matti
-- Steven Jackson
Hi Steven, On 21 January 2015 at 13:00, Steven Jackson <stevenjackson121@gmail.com> wrote:
Am I right in assuming that I should checkout "default," make my own branch, write failing test cases, make the test cases succeed (occasionally merging in default) and then...
Yes, you're right up to here :-) The point is that you should commit often, in your own branch; by "often" I mean for example after you have added one or a few tests, after you fixed one of them, and so on. In more details, what you should do is make an account on bitbucket, then go to https://bitbucket.org/pypy/pypy/ and click "fork" (left icons). You get a fork of the repository, e.g. in https://bitbucket.org/yourname/pypy. Then you clone that locally (it takes time) with "hg clone https://bitbucket.org/yourname/pypy". Make a branch with e.g. "hg branch numpy-sorting". Edit stuff, and "hg commit" regularly; a one-line checkin message is fine. Remember to do "hg push" to publish your commits back to https://bitbucket.org/yourname/pypy, which you should do regularly too, e.g. after every commit or group of commits. The final step is to open a pull request, so that we know that you'd like to merge that branch back to the original pypy/pypy repo (which can also be done several times if you have interesting intermediate states). And if at this point you feel safe working with "hg", we can give you access to pypy/pypy where you can directly push your work; if it is done in branches there is no risk to break stuff and we can still review the branches you want to merge. A bientôt, Armin.
participants (4)
-
Armin Rigo
-
Dan Stromberg
-
Matti Picus
-
Steven Jackson