[pypy-commit] pypy default: Start writing a doc

fijal noreply at buildbot.pypy.org
Fri Mar 23 15:48:18 CET 2012


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: 
Changeset: r53941:97c883fd0fd7
Date: 2012-03-23 15:30 +0200
http://bitbucket.org/pypy/pypy/changeset/97c883fd0fd7/

Log:	Start writing a doc

diff --git a/pypy/doc/you-want-to-help.rst b/pypy/doc/you-want-to-help.rst
new file mode 100644
--- /dev/null
+++ b/pypy/doc/you-want-to-help.rst
@@ -0,0 +1,68 @@
+
+You want to help with PyPy, now what?
+=====================================
+
+PyPy is a very large project that has a reputation of being hard to dive into.
+Some of this fame is warranted, some of it is purely accidental. There are three
+important lessons that everyone willing to contribute should learn:
+
+* PyPy has layers. There are many pieces of architecture that are very well
+  separated from each other. More about this below, but often the manifestation
+  of this is that things are at a different layer than you would expect them
+  to be. For example if you are looking for the JIT implementation, you will
+  not find it in the implementation of the Python programming language.
+
+* Because of the above, we are very serious about Test Driven Development.
+  It's not only what we believe in, but also that PyPy's architecture is
+  working very well with TDD in mind and not so well without it. Often
+  the development means progressing in an unrelated corner, one unittest
+  at a time and then flipping a giant switch. It's worth repeating - PyPy
+  approach is great if you do TDD, not so great otherwise.
+
+* PyPy uses an entirely different set of tools - most of them included
+  in the PyPy repository. There is no Makefile, nor autoconf. More below
+
+Architecture
+============
+
+PyPy has layers. The 100 mile view:
+
+* `RPython`_ is a language in which we write interpreter in PyPy. Not the entire
+  PyPy project is written in RPython, only parts that are compiled in
+  the translation process. The interesting point is that RPython has no parser,
+  it's compiled from the live python objects, which make it possible to do
+  all kinds of metaprogramming during import time. In short, Python is a meta
+  programming language for RPython.
+
+  RPython standard library is to be found in ``rlib`` subdirectory.
+
+.. _`RPython`: coding-guide.html#RPython
+
+* Translation toolchain - this is the part that takes care about translating
+  RPython to flow graphs and then to C. There is more in `architecture`_
+  document written about it.
+
+  It mostly lives in ``rpython``, ``annotator`` and ``objspace/flow``.
+
+.. _`architecture`: architecture.html 
+
+* Python Interpreter
+
+  xxx
+
+* Python modules
+
+  xxx
+
+* JIT
+
+  xxx
+
+* Garbage Collectors
+
+  xxx
+
+Toolset
+=======
+
+xxx


More information about the pypy-commit mailing list