Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Common Lisp distributed computation framework implemented using Swank Client
Common Lisp
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
README
master.lisp
package.lisp
swank-crew-test.asd
swank-crew.asd
swank-crew_test.lisp
swank.lisp-patch
worker.lisp

README

Swank Crew
==========

Swank Crew is a distributed computation framework written in Common Lisp that
uses Swank Client to evaluate forms on remote hosts.

Swank Crew works with Emacs and Slime to make developing distributed
applications easier.  Typically, you interactively develop code on a master
machine using Slime.  Code on the master uses the Swank Crew API to farm out
work to a gang of worker machines.  If code on a worker generates an exception,
a Slime stack trace window pops up and you can interactively debug the problem
using your existing Slime connection to the master.


The Swank Crew API
==================

connect-workers                 Create a worker pool containing a set of worker
                                Lisps.
disconnect-workers              Disconnect all the workers in a worker pool.
eval-form-all-workers           Evaluate a form on all the workers in a worker pool.
eval-form-repeatedly            Evaluate a form repeatedly on the workers in a pool
                                and collect the results on the master.
eval-repeatedly-async-state     Evaluate a form repeatedly on the workers in a pool
                                while asynchronously updating the workers' state.
parallel-mapcar                 Use the workers in a worker pool to evaluate a
                                function on all the elements of a list.
parallel-reduce                 Use the workers in a worker pool to evaluate a
                                function on all the elements of a list.  As results
                                return to the master, call a function repeatedly to
                                reduce them to one value.

For more information, see the documentation strings for the above functions in
master.lisp and the example code in swank-crew_test.lisp.


Installation
============

Swank Crew functions best when used with Slime.  In order to implement the
distributed Slime debugging features described above, you must patch swank.lisp
in the directory where you installed Slime:

    patch path/to/slime/swank.lisp swank.lisp-patch

The change to swank.lisp implements the forwarding of Swank protocol messages
from worker machines through the master's Swank server back to your Slime
client.  It's needed to debug problems on worker machines using your Slime
connection to the master.
Something went wrong with that request. Please try again.