Author: mattip <matti.pi...@gmail.com>
Branch: python-numpy
Changeset: r56707:8f807206aeb7
Date: 2012-08-11 23:46 +0300
http://bitbucket.org/pypy/pypy/changeset/8f807206aeb7/

Log:    add document

diff --git a/HOW_TO_CONTRIBUTE.txt b/HOW_TO_CONTRIBUTE.txt
new file mode 100644
--- /dev/null
+++ b/HOW_TO_CONTRIBUTE.txt
@@ -0,0 +1,39 @@
+All the numpy python code has been imported into lib_pypy/numpy,
+from a random version of numpy (git version fd15162 to be exact).
+
+pypy has a builtin module called _numpypy that provides things like
+ndarray, dtypes, ufuncs, and binfuncs.
+
+The branch will be complete when it is possible to run
+pypy -c 'import numpy;numpy.test()' and most tests pass.
+
+The strategy for completing the branch is:
+1. Set up pypy and cpython
+2. Find missing functionality or a failing test 
+3. Fix and test
+
+Currently, 'import numpy' fails, since we are missing the
+c-level multiarray module.
+
+So what we need in the short-term is to implement a python version of
+multiarray, work has been begun and it lives in lib_pypy/numpypy/multiarray.py
+
+And in more detail:
+1a. Get a recent trunk version of numpy
+1a. Install numpy into python, for extra points use virtualenv, by running 
'python setup.py install' in the numpy trunk
+1c. Get the source tree for this branch of pypy
+1d. Download a nightly build of pypy and put the binary into the source tree, 
preferably at pypy/translator/goal/pypy. Alternatively, translate pypy
+2a. Run 'pypy/translator/goal/pypy -c 'import numpy;numpy.test()'
+2b. Something will fail. Poke around to see what the missing function or 
import is supposed to do. Hint: try 
http://docs.scipy.org/doc/numpy/reference/index.html
+2c. Let us know you are planning to work on this, usually a note on IRC will 
be sufficient.
+2c. Write a test for the missing functionality. For instance, tests for 
multiarray live in lib_pypy/numpypy/test/test_multiarray.py Try to think of 
corner cases: inappropriate arguments, missing defaults, and other wierd 
combination of arguments.
+3a. Try to find where numpy implemented it and stare at that till it makes 
sense.
+3b. Write some code
+3c. Test under pypy, python, and then think again about the tests, did you 
miss a corner case? Testing is done by:
+ pypy/translator/pypy pytest.py lib_pypy/numpypy/test
+as well as
+ python pytest.py lib_pypy/numpypy/test
+3d. Rerun 2a to make sure you accomplished what you set out to do
+3e. Commit and push your changes, if you are working on a fork let us know 
what you have done.
+
+
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to