Author: Alex Gaynor <alex.gay...@gmail.com> Branch: Changeset: r61525:9d6c61b0172b Date: 2013-02-20 21:47 -0800 http://bitbucket.org/pypy/pypy/changeset/9d6c61b0172b/
Log: Merged in modcloth/pypy/rlib-doc-rpython-refs (pull request #125) Updating refs in rlib docs for files moved into rpython diff --git a/pypy/doc/rlib.rst b/pypy/doc/rlib.rst --- a/pypy/doc/rlib.rst +++ b/pypy/doc/rlib.rst @@ -7,18 +7,18 @@ .. contents:: -This page lists some of the modules in `pypy/rlib`_ together with some hints +This page lists some of the modules in `rpython/rlib`_ together with some hints for what they can be used for. The modules here will make up some general library useful for RPython programs (since most of the standard library modules are not RPython). Most of these modules are somewhat rough still and are likely to change at some point. Usually it is useful to look at the tests in -`pypy/rlib/test`_ to get an impression of how to use a module. +`rpython/rlib/test`_ to get an impression of how to use a module. ``listsort`` ============ -The `pypy/rlib/listsort.py`_ module contains an implementation of the timsort sorting algorithm +The `rpython/rlib/listsort.py`_ module contains an implementation of the timsort sorting algorithm (the sort method of lists is not RPython). To use it, subclass from the ``listsort.TimSort`` class and override the ``lt`` method to change the comparison behaviour. The constructor of ``TimSort`` takes a list as an @@ -30,7 +30,7 @@ ``nonconst`` ============ -The `pypy/rlib/nonconst.py`_ module is useful mostly for tests. The `flow object space`_ and +The `rpython/rlib/nonconst.py`_ module is useful mostly for tests. The `flow object space`_ and the `annotator`_ do quite some constant folding, which is sometimes not desired in a test. To prevent constant folding on a certain value, use the ``NonConst`` class. The constructor of ``NonConst`` takes an arbitrary value. The instance of @@ -44,7 +44,7 @@ ``objectmodel`` =============== -The `pypy/rlib/objectmodel.py`_ module is a mixed bag of various functionality. Some of the +The `rpython/rlib/objectmodel.py`_ module is a mixed bag of various functionality. Some of the more useful ones are: ``ComputedIntSymbolic``: @@ -94,7 +94,7 @@ ``rarithmetic`` =============== -The `pypy/rlib/rarithmetic.py`_ module contains functionality to handle the small differences +The `rpython/rlib/rarithmetic.py`_ module contains functionality to handle the small differences in the behaviour of arithmetic code in regular Python and RPython code. Most of them are already described in the `coding guide`_ @@ -104,7 +104,7 @@ ``rbigint`` =========== -The `pypy/rlib/rbigint.py`_ module contains a full RPython implementation of the Python ``long`` +The `rpython/rlib/rbigint.py`_ module contains a full RPython implementation of the Python ``long`` type (which itself is not supported in RPython). The ``rbigint`` class contains that implementation. To construct ``rbigint`` instances use the static methods ``fromint``, ``frombool``, ``fromfloat`` and ``fromdecimalstr``. To convert back @@ -118,7 +118,7 @@ ``rrandom`` =========== -The `pypy/rlib/rrandom.py`_ module contains an implementation of the mersenne twister random +The `rpython/rlib/rrandom.py`_ module contains an implementation of the mersenne twister random number generator. It contains one class ``Random`` which most importantly has a ``random`` method which returns a pseudo-random floating point number between 0.0 and 1.0. @@ -126,7 +126,7 @@ ``rsocket`` =========== -The `pypy/rlib/rsocket.py`_ module contains an RPython implementation of the functionality of +The `rpython/rlib/rsocket.py`_ module contains an RPython implementation of the functionality of the socket standard library with a slightly different interface. The difficulty with the Python socket API is that addresses are not "well-typed" objects: depending on the address family they are tuples, or strings, and @@ -137,7 +137,7 @@ ``streamio`` ============ -The `pypy/rlib/streamio.py`_ contains an RPython stream I/O implementation (which was started +The `rpython/rlib/streamio.py`_ contains an RPython stream I/O implementation (which was started by Guido van Rossum as `sio.py`_ in the CPython sandbox as a prototype for the upcoming new file implementation in Python 3000). @@ -146,7 +146,7 @@ ``unroll`` ========== -The `pypy/rlib/unroll.py`_ module most importantly contains the function ``unrolling_iterable`` +The `rpython/rlib/unroll.py`_ module most importantly contains the function ``unrolling_iterable`` which wraps an iterator. Looping over the iterator in RPython code will not produce a loop in the resulting flow graph but will unroll the loop instead. @@ -154,7 +154,7 @@ ``parsing`` =========== -The `pypy/rlib/parsing/`_ module is a still in-development module to generate tokenizers and +The `rpython/rlib/parsing/`_ module is a still in-development module to generate tokenizers and parsers in RPython. It is still highly experimental and only really used by the `Prolog interpreter`_ (although in slightly non-standard ways). The easiest way to specify a tokenizer/grammar is to write it down using regular expressions and @@ -204,7 +204,7 @@ anything except a. To parse a regular expression and to get a matcher for it, you can use the -function ``make_runner(s)`` in the ``pypy.rlib.parsing.regexparse`` module. It +function ``make_runner(s)`` in the ``rpython.rlib.parsing.regexparse`` module. It returns a object with a ``recognize(input)`` method that returns True or False depending on whether ``input`` matches the string or not. @@ -213,7 +213,7 @@ EBNF ---- -To describe a tokenizer and a grammar the ``pypy.rlib.parsing.ebnfparse`` +To describe a tokenizer and a grammar the ``rpython.rlib.parsing.ebnfparse`` defines a syntax for doing that. The syntax file contains a sequence or rules. Every rule either describes a @@ -295,7 +295,7 @@ The parsing process builds up a tree consisting of instances of ``Symbol`` and ``Nonterminal``, the former corresponding to tokens, the latter to nonterminal -symbols. Both classes live in the `pypy/rlib/parsing/tree.py`_ module. You can use +symbols. Both classes live in the `rpython/rlib/parsing/tree.py`_ module. You can use the ``view()`` method ``Nonterminal`` instances to get a pygame view of the parse tree. @@ -310,7 +310,7 @@ ++++++++ To write tree visitors for the parse trees that are RPython, there is a special -baseclass ``RPythonVisitor`` in `pypy/rlib/parsing/tree.py`_ to use. If your +baseclass ``RPythonVisitor`` in `rpython/rlib/parsing/tree.py`_ to use. If your class uses this, it will grow a ``dispatch(node)`` method, that calls an appropriate ``visit_<symbol>`` method, depending on the ``node`` argument. Here the <symbol> is replaced by the ``symbol`` attribute of the visited node. _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit