./wip/py-csp, Brings CSP (communicating sequential processes) to Python

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 0.9.2, Package name: py310-csp-0.9.2, Maintainer: jihbed.research

The PyCSP project is an on-going project to bring CSP (communicating sequential
processes) to Python.

PyCSP Provides:

* A flexible CSP library for Python;
* Synchronous communication;
* Buffered channels;
* Multiple process types such as, greenlets, threads, processes and remote
processes;
* Both input and output guards supported in external choice (Alts);
* A single any-to-any channel type;
* Mobile channel-ends;
* Retire and poison signals for shutting down networks nicely;
* A channel which can communicate using inter-process communication as well as
sockets;
* A PyCSP providing local and distributed communication using only standard
python modules bundled with CPython;
* NAT traversal;
* Tracing PyCSP executions to a log file, for later visualisation;

This is the "complete" version of PyCSP as opposed to the "base" version.


Required to run:
[devel/py-setuptools] [devel/py-Pyro] [net/py-netifaces] [devel/py-greenlet] [lang/python37]

Required to build:
[pkgtools/cwrappers]

Master sites:

RMD160: a444ab6d2df07159f51294063f9016ccc8b487c3
Filesize: 115.408 KB

Version history: (Expand)


CVS history: (Expand)


   2013-12-31 19:29:38 by othyro | Files touched by this commit (4)
Log message:
Updated to latest stable "complete" release. Depend on py-greenlet from
devel, now that it has been imported. Fix EGG_NAME, PKGNAME, improve DESCR,
general Makefile cleanup, etc. This can go into HEAD whenever someone feels
like importing it or needs it. From CHANGES.txt:

0.7.1 - 0.9.0
----------
* threads, processes and net has been completely rewritten into a new single
  implementation named pycsp.parallel. Thus available implementations are now
    - pycsp.parallel (default)
    - pycsp.greenlets
* pycsp.greenlets has not been changed. Simple and fast.
* The trunk repository has been split into two versions. The base which
  only requires standard CPython libraries and the extras version, which 
  adds all the extra stuff (greenlets, and so on) that requires external 
  libraries.
* Previously buffered channels were implemented as a string of processes. This
  would greatly limit performance, as the latency for communicating across
  a channel would increase. Now, a buffered channel has an internal buffer and
  perform only slightly more work than an unbuffered channel. Also the buffer
  has a location, which means that a buffered channel can be used to hide the
  latency induced by the data-transfer latency.
* All channels in pycsp.parallel are created as network-enabled channels and supports
  communicating with remote processes.
* Added a new process type @multiprocess which runs as an OS-process. This enables
  mixing @process and @multiprocess in one PyCSP network.
* Added a shutdown() method, which must be called at the end of all applications
  importing pycsp. It closes the channel references and waits for all references to
  leave hosted channels, thus ensuring that the PyCSP network is left in a robust
  state.
* Found a design flaw in AltSelect, which means that AltSelect does not guarantee
  priority when affected by network and scheduling latencies. A new PriSelect have
  been added which is slightly slower but does guarantee priority and thus should
  be used whenever the SkipGuard is needed.

0.7.0 - 0.7.1
----------
* (pycsp.greenlets) Fixed issue with communicating on channels from the main \ 
namespace.
* (pycsp.greenlets) Fixed propagation of exceptions from io functions.
* Added "fair" version of AltSelect, which uses the history from an \ 
Alternation to perform an ordered AltSelect (priority)
* Replaced use of environment variables for some module magic.
* Added pycsp.common.trace module
* Moved AltSelect and FairSelect to a separate file (altselect.py)
* Added Channel() * 3 and 2 * Channel() functionality
* removed const.py from individual implementations.
* Added support for Jython and IronPython in the threads implementation. 
   2012-10-12 13:46:59 by Aleksej Saushev | Files touched by this commit (5)
Log message:
"py-Pyro" is "py-Pyro4" these days.

   2012-10-06 19:55:21 by Aleksej Saushev | Files touched by this commit (31)
Log message:
Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days.
Mark packages that don't or might probably not have staged installation.
   2012-04-08 21:09:41 by Thomas Klausner | Files touched by this commit (127)
Log message:
Remove python24 and all traces of it from pkgsrc.
Remove devel/py-ctypes (only needed by and supporting python24).
Remove PYTHON_VERSIONS_ACCEPTED and PYTHON_VERSIONS_INCOMPATIBLE
lines that just mirror defaults now.
Miscellaneous cleanup while editing all these files.
   2012-02-12 21:16:33 by ndb | Files touched by this commit (5)
Log message:
..and remove PLIST_SUBST PYVERSSUFFIX from Makefile.
   2012-02-12 20:58:28 by ndb | Files touched by this commit (12)
Log message:
EGG_INFODIR in PLIST.
   2012-02-10 10:01:10 by ndb | Files touched by this commit (26)
Log message:
PLIST cleanup.
   2012-02-01 01:04:52 by ndb | Files touched by this commit (22)
Log message:
py-ctypes is included in Python 2.5 and higher.