summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrodent <rodent@pkgsrc.org>2013-12-31 17:59:08 +0000
committerrodent <rodent@pkgsrc.org>2013-12-31 17:59:08 +0000
commit26cd4ba28da9b2b59915b75ecc0966e744a4e212 (patch)
treed0e353b07780538583b5edf7766b1a36c0900b67
parentca24431a45474eed455dd87db69ffa32c9c77682 (diff)
downloadpkgsrc-26cd4ba28da9b2b59915b75ecc0966e744a4e212.tar.gz
Import py27-greenlet-0.4.1 as devel/py-greenlet. Packaged in pkgsrc-wip by
kamel.derouiche@gmail.com 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; 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. Greenlets are provided as a C extension module for the regular unmodified interpreter. Greenlets are lightweight coroutines for in-process concurrent programming.
-rw-r--r--devel/py-greenlet/DESCR19
-rw-r--r--devel/py-greenlet/Makefile18
-rw-r--r--devel/py-greenlet/PLIST4
-rw-r--r--devel/py-greenlet/distinfo5
4 files changed, 46 insertions, 0 deletions
diff --git a/devel/py-greenlet/DESCR b/devel/py-greenlet/DESCR
new file mode 100644
index 00000000000..b02f84d5bda
--- /dev/null
+++ b/devel/py-greenlet/DESCR
@@ -0,0 +1,19 @@
+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; 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.
+
+Greenlets are provided as a C extension module for the regular unmodified
+interpreter.
+
+Greenlets are lightweight coroutines for in-process concurrent programming.
diff --git a/devel/py-greenlet/Makefile b/devel/py-greenlet/Makefile
new file mode 100644
index 00000000000..731b14c467c
--- /dev/null
+++ b/devel/py-greenlet/Makefile
@@ -0,0 +1,18 @@
+# $NetBSD: Makefile,v 1.1 2013/12/31 17:59:08 rodent Exp $
+
+DISTNAME= greenlet-0.4.1
+PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
+CATEGORIES= devel python
+MASTER_SITES= https://pypi.python.org/packages/source/g/greenlet/
+EXTRACT_SUFX= .zip
+FETCH_USING= curl
+
+MAINTAINER= kamel.derouiche@gmail.com
+HOMEPAGE= https://github.com/python-greenlet/greenlet
+COMMENT= Lightweight in-process concurrent programming
+LICENSE= mit
+
+USE_LANGUAGES= c c++
+
+.include "../../lang/python/distutils.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/devel/py-greenlet/PLIST b/devel/py-greenlet/PLIST
new file mode 100644
index 00000000000..9b4e4c12337
--- /dev/null
+++ b/devel/py-greenlet/PLIST
@@ -0,0 +1,4 @@
+@comment $NetBSD: PLIST,v 1.1 2013/12/31 17:59:08 rodent Exp $
+${PYINC}/greenlet/greenlet.h
+${PYSITELIB}/${EGG_FILE}
+${PYSITELIB}/greenlet.so
diff --git a/devel/py-greenlet/distinfo b/devel/py-greenlet/distinfo
new file mode 100644
index 00000000000..0521ef5863e
--- /dev/null
+++ b/devel/py-greenlet/distinfo
@@ -0,0 +1,5 @@
+$NetBSD: distinfo,v 1.1 2013/12/31 17:59:08 rodent Exp $
+
+SHA1 (greenlet-0.4.1.zip) = ca2f589a63322b5752ef4e0de3072a5b51f7d3b7
+RMD160 (greenlet-0.4.1.zip) = a8aac77849d51c96c46b65607f7ed7eac6723bcd
+Size (greenlet-0.4.1.zip) = 75749 bytes