summaryrefslogtreecommitdiff
path: root/README.rst
diff options
context:
space:
mode:
Diffstat (limited to 'README.rst')
-rw-r--r--README.rst30
1 files changed, 18 insertions, 12 deletions
diff --git a/README.rst b/README.rst
index 2945b19..2d082b1 100644
--- a/README.rst
+++ b/README.rst
@@ -1,27 +1,33 @@
+.. This file is included into docs/history.rst
+
.. image:: https://secure.travis-ci.org/python-greenlet/greenlet.png
:target: http://travis-ci.org/python-greenlet/greenlet
-The greenlet package is a spin-off of Stackless, a version of CPython
-that supports micro-threads called "tasklets". Tasklets run
+Greenlets are lightweight coroutines for in-process concurrent
+programming.
+
+The "greenlet" package is a spin-off of `Stackless`_, a version of
+CPython that supports micro-threads called "tasklets". Tasklets run
pseudo-concurrently (typically in a single or a few OS-level threads)
and are synchronized with data exchanges on "channels".
A "greenlet", on the other hand, is a still more primitive notion of
-micro-thread with no implicit scheduling; coroutines, in other
-words. This is useful when you want to control exactly when your code
-runs. You can build custom scheduled micro-threads on top of greenlet;
+micro-thread with no implicit scheduling; coroutines, in other words.
+This is useful when you want to control exactly when your code runs.
+You can build custom scheduled micro-threads on top of greenlet;
however, it seems that greenlets are useful on their own as a way to
make advanced control flow structures. For example, we can recreate
generators; the difference with Python's own generators is that our
generators can call nested functions and the nested functions can
-yield values too. Additionally, you don't need a "yield" keyword. See
-the example in tests/test_generator.py.
+yield values too. (Additionally, you don't need a "yield" keyword. See
+the example in `test_generator.py
+<https://github.com/python-greenlet/greenlet/blob/adca19bf1f287b3395896a8f41f3f4fd1797fdc7/src/greenlet/tests/test_generator.py#L1>`_).
-Greenlets are provided as a C extension module for the regular
-unmodified interpreter.
+Greenlets are provided as a C extension module for the regular unmodified
+interpreter.
+
+.. _`Stackless`: http://www.stackless.com
-Greenlets are lightweight coroutines for in-process concurrent
-programming.
Who is using Greenlet?
======================
@@ -45,7 +51,7 @@ The easiest way to get Greenlet is to install it with pip::
pip install greenlet
-Source code archives and windows installers are available on the
+Source code archives and binary distributions are vailable on the
python package index at https://pypi.org/project/greenlet
The source code repository is hosted on github: