[pypy-svn] r16701 - pypy/release/0.7.x/pypy/doc

cfbolz at codespeak.net cfbolz at codespeak.net
Fri Aug 26 22:44:36 CEST 2005


Author: cfbolz
Date: Fri Aug 26 22:44:34 2005
New Revision: 16701

Modified:
   pypy/release/0.7.x/pypy/doc/_ref.txt
   pypy/release/0.7.x/pypy/doc/getting-started.txt
Log:
update and improve a bit the getting-started document: changed release version
to 0.7.0, added instructions on how to translate your own PyPy version


Modified: pypy/release/0.7.x/pypy/doc/_ref.txt
==============================================================================
--- pypy/release/0.7.x/pypy/doc/_ref.txt	(original)
+++ pypy/release/0.7.x/pypy/doc/_ref.txt	Fri Aug 26 22:44:34 2005
@@ -51,4 +51,7 @@
 .. _`translator/c/`: ../../pypy/translator/c
 .. _`translator/java/`: ../../pypy/translator/java
 .. _`translator/llvm/`: ../../pypy/translator/llvm
-.. _`translator/tool/`: ../../pypy/translator/tool
\ No newline at end of file
+.. _`translator/tool/`: ../../pypy/translator/too
+.. _`pypy/rpython`: ../../pypy/rpython
+.. _`pypy/rpython/rtyper.py`: ../../pypy/rpython/rtyper.py
+.. _`pypy/rpython/lltype.py`: ../../pypy/rpython/lltype.py

Modified: pypy/release/0.7.x/pypy/doc/getting-started.txt
==============================================================================
--- pypy/release/0.7.x/pypy/doc/getting-started.txt	(original)
+++ pypy/release/0.7.x/pypy/doc/getting-started.txt	Fri Aug 26 22:44:34 2005
@@ -10,22 +10,19 @@
 Just the facts 
 ============== 
 
-getting & running the PyPy 0.6.1 release 
+getting & running the PyPy 0.7 release 
 -----------------------------------------
 
-    Note that the 0.6 release was broken and 
-    thus you find only the 0.6.1 release here. 
-
 Download one of the following release files and unpack it: 
 
-*pypy-0.6.1 (05/21/2005)*
+*pypy-0.7
     
-  * download one of `pypy-0.6.1.tar.bz2`_, `pypy-0.6.1.tar.gz`_ or
-    `pypy-0.6.1.zip`_ (windows line-endings) and unpack it 
+  * download one of `pypy-0.7.0.tar.bz2`_, `pypy-0.7.0.tar.gz`_ or
+    `pypy-0.7.0.zip`_ (windows line-endings) and unpack it 
     
-  * alternatively run ``svn co http://codespeak.net/svn/pypy/release/0.6.1 pypy-0.6.1`` 
+  * alternatively run ``svn co http://codespeak.net/svn/pypy/release/0.7.0 pypy-0.7.0`` 
 
-then change to the ``pypy-0.6.1`` directory
+then change to the ``pypy-0.7.0`` directory
 and execute the following command line:: 
 
     python pypy/bin/py.py 
@@ -41,9 +38,9 @@
 for guidance on how to continue. 
 
 .. _`90% of CPythons core language regression tests`: http://codespeak.net/~hpk/pypy-testresult/ 
-.. _`pypy-0.6.1.tar.bz2`: http://codespeak.net/download/pypy/pypy-0.6.1.tar.bz2
-.. _`pypy-0.6.1.zip`: http://codespeak.net/download/pypy/pypy-0.6.1.zip
-.. _`pypy-0.6.1.tar.gz`: http://codespeak.net/download/pypy/pypy-0.6.1.tar.gz
+.. _`pypy-0.7.0.tar.bz2`: http://codespeak.net/download/pypy/pypy-0.7.0.tar.bz2
+.. _`pypy-0.7.0.zip`: http://codespeak.net/download/pypy/pypy-0.7.0.zip
+.. _`pypy-0.7.0.tar.gz`: http://codespeak.net/download/pypy/pypy-0.7.0.tar.gz
 
 Svn-check out & run the latest PyPy as a two-liner
 --------------------------------------------------
@@ -346,25 +343,26 @@
    >>> f = t.ccompile()
 
 The first command replaces operations with variables of types that are
-avaiable in C (e.g. int) with low level versions. This can be ommited if no
-annotation (see last subsection) has been performed.
+avaiable in C (e.g. int) with low level versions. This can also be ommited
+although it is not recommended.
 
 
 translating the flow graph to LLVM code
 +++++++++++++++++++++++++++++++++++++++
 
 If you feel adventureous (and have `LLVM installed`_ and on your path) you can
-also try to compile the graph with LLVM. This is still quite experimental
-and only works with some functions: One of the most visible restriction is
-that return type of the entry function has to be and int, float or bool. To
-try it do::
+also try to compile the graph with LLVM_ (low level virtual machine). This
+works nearly as well as for the c backend. There is a restriction, though: The
+return type and the arguments of the entry function has to be an int, float or
+bool. To try it do:: 
 
    >>> print t.llvm()
    >>> f = t.llvmcompile(optimize=True)
    >>> f(28)
    1
 
-This works only with fully annotated graphs.
+In contrast to the C backend this works only for fully annotated and
+specialized graphs.
 
 a slightly larger example
 +++++++++++++++++++++++++
@@ -387,21 +385,37 @@
 ++++++++++++++++++++++++++++++++
 
 Not for the faint of heart nor the owner of a very old machine: you can
-run the annotator over the whole PyPy interpreter itself.  This is the
-largest and ultimate example of source that our annotator can (very
-successfully!) process::
+translate the whole of PyPy to low level C code. This is the largest and
+ultimate example of source that our translation toolchain can process::
 
     cd pypy/translator/goal
-    python translate_pypy.py -no-t -no-c
+    python translate_pypy.py
 
-Moving around is difficult because of the sheer size of the result.
-For this reason, the debugger prompt you get at the end has been
-enhanced with commands to facilitate locating functions and classes.
-Type ``help graphs`` for a list of the new commands.  Help is also
+This whole process will take some time and quite a lot of memory. To reduce
+the memory footprint of the translation process you can use the option
+``-t_lowmem`` With this option the whole process should be runnable on a
+machine with 512Mb of RAM. If the translation is finished running and after
+you closed the graph you will be greeted by the friendly prompt of a PyPy
+executable that is not running on top of CPython any more.
+
+Moving around in the resulting flow graph is difficult because of the sheer
+size of the result. For this reason, the debugger prompt you get at 
+the end has been enhanced with commands to facilitate locating functions and
+classes. Type ``help graphs`` for a list of the new commands.  Help is also
 available on each of these new commands.
 
 The ``translate_pypy`` script itself takes a number of options controlling
-what to translate and how.  See ``translate_pypy.py -h``.  Try out::
+what to translate and how.  See ``translate_pypy.py -h``. Some of the more
+interesting options are:
+
+   * ``-llvm``: produce code for LLVM_ instead of for C. One of the biggest
+     things not working there is threading.
+
+   * ``-boehm``: use the `Boehm-Demers-Weiser garbage collector`_ instead of
+     our own reference counting implementation.
+
+
+Try out::
 
     cd pypy/translator/goal
     python translate_pypy.py targetrpystone
@@ -410,7 +424,6 @@
 
     python translate_pypy.py targetrpystone2
 
-
 .. _`start reading sources`: 
 
 Where to start reading the sources
@@ -446,6 +459,12 @@
    can be inferred about a graph.  The graph "walker" that uses this is in
    `pypy/translator/annrpython.py`_.
 
+*  `pypy/rpython`_ contains the code of the RPython typer. The typer transforms
+   annotated flow graphs in a way that makes them very similar to C code so
+   that they can be easy translated. The graph transformations are controlled
+   by the stuff in `pypy/rpython/rtyper.py`_. The object model that is used can
+   be found in `pypy/rpython/lltype.py`_. For each RPython type there is a
+   file rxxxx.py that contains the low level functions needed for this type.
 
 .. _optionaltool: 
 
@@ -466,6 +485,7 @@
 
 	pygame: http://www.pygame.org/download.shtml
 
+.. _LLVM:
 .. _`LLVM installed`: 
 
 LLVM  
@@ -556,5 +576,6 @@
 .. _bug reports:            https://codespeak.net/issue/pypy-dev/
 
 .. _`directory reference`: index.html#directory-reference
+.. _`Boehm-Demers-Weiser garbage collector`: http://www.hpl.hp.com/personal/Hans_Boehm/gc/
 
 .. include:: _ref.txt



More information about the Pypy-commit mailing list