ANN: PyLinda 0.1

Andrew Wilkinson
Thu, 29 Apr 2004 18:00:21 +0100

PyLinda 0.1

By Andrew Wilkinson <aw at cs dot york dot ac dot uk>


1. Introduction
2. Installation
3. Using Linda
4. Known Problems
5. Contact
6. License

1. Introduction

Linda is an widely studied distributed computing environment, centered
around the notion of a tuple space. A tuple space is a bag (also called a
multi-set) of tuples. A tuple is an ordered, typed chunk of data. Tuple
spaces exist independently of processes in the system, and the data placed
into a tuple space also exist independently. See "Generative communication
in Linda" (1985) and "Multiple tuple spaces in Linda" both by David
Gelernter for more information on Linda.

PyLinda is a simple implementation of a linda system, however it also
includes several of the more recently proposed extensions to Linda in the
form of multiple tuple spaces, garbage collection, sane non-blocking
primitives and bulk tuple operations.

2. Installation

To install simply unpack the tarball, and execute 'python install'.

PyLinda requires a Python 2.3+ and has only been tested on Linux and
Solaris, however it should be possible for it to other operating systems.
It may be possible for the server and some client programs to run under
Windows, however since it does not support 'fork' several of the included
examples will not work.

3. Using Linda

First a server must be started - ''.

Then a client program must be started, the simplest is just the python
interactive interpreter.

bash$ python
>>> import linda
>>> linda.connect()
>>> linda.universe._out((1,2,3))

Now quit that interpreter, and start a new one...

bash$ python
>>> import linda
>>> linda.connect()
>>> linda.universe._in((int, int, int))
(1, 2, 3)

If you want to add a new computer to the linda network simply run
'linda_server.p -c<ip address or dns name>' where the computer you supply
is already running a linda server.

4. Known Problems

 * The actual implementation is quite slow. The process of storing tuples is
slow and uses a large amount of memory, this could probably be fixed by
rewriting that bit in C.
 * No support for the eval primitive.
 * Only built in types (and tuplespace references) can be included in
tuples. This will change in the future, and is the subject of my PhD.
 * Documentation is very thin and could do with improving. People with some
knowlege of Linda should not have a problem using PyLinda however.

5. Contact

All the latest news and information about PyLinda can be found at
Comments, suggestions and bug reports are all welcome at aw at cs dot york
dot ac dot uk

6. License
For full details of the license see the file LICENSE.

Copyright 2004 Andrew Wilkinson <>.

This file is part of PyLinda (

PyLinda is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.

PyLinda is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with PyLinda; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA