The version of Syndicate current at the conclusion of Tony Garnock-Jones's PhD research, end-of-2017/start-of-2018.
Go to file
Sam Caldwell d428853981 Create a FAQ based on email exchanges.
It's not exactly what you'd want in a FAQ, but it aggregates most of my
email exchanges with Tony and will hopefully be useful when creating a
more comprehensive collection of documentation.

I made a small effort to edit some of the information to be more usable
to a newcomer, but a lot of it is missing important context (such as
having read the paper describing the Network Calculus).
2015-09-17 22:27:35 -04:00
prospect Add (seal)s, for hiding structure from the routing table. Drastically improves big-bang example performance. 2015-09-07 16:05:06 -04:00
.gitignore Ignore scratch dir 2015-08-25 16:14:36 -04:00
FAQ.md Create a FAQ based on email exchanges. 2015-09-17 22:27:35 -04:00
Makefile Initial commit. Improved API to route.rkt (from minimart). 2015-03-02 16:10:11 +00:00
README.md README.md 2015-08-18 12:47:29 -04:00
info.rkt Fix Dependencies. 2015-08-19 15:35:08 -04:00

README.md

Prospect: A Networked, Concurrent, Functional Programming Language

Prospect is an actor-based concurrent language able to express communication, enforce isolation, and manage resources. Network-inspired extensions to a functional core represent imperative actions as values, giving side-effects locality and enabling composition of communicating processes.

Collaborating actors are grouped within task-specific worlds (a.k.a. virtual machines) to scope their interactions. Conversations between actors are multi-party (using a publish/subscribe medium), and actors can easily participate in many such conversations at once.

Prospect makes presence notifications an integral part of pub/sub through its shared dataspaces, akin to tuplespaces. Each shared dataspace doubles as the pub/sub subscription table for its world. Actors react to state change notifications reporting changes in a dataspace, including new subscriptions created by peers and removal of subscriptions when a peer exits or crashes. State change notifications serve to communicate changes in demand for and supply of services, both within a single world and across nested layers of worlds-within-worlds. Programs can give up responsibility for maintaining shared state and for scoping group communications, letting their containing world take on those burdens.

The code

This repository contains a Racket package, prospect, which includes

Compiling and running the code

You will need Racket version 6.2.x or later.

Once you have Racket installed, run

raco pkg install prospect

to install the package from the Racket package repository, or

raco pkg install --link `pwd`

from the root directory of the Git checkout to install the package from a local snapshot. (Alternatively, make link does the same thing.) This will make #lang prospect available to programs.

At this point, you may load and run any of the example *.rkt files in the prospect/examples/ directory.

Copyright © Tony Garnock-Jones 2010, 2011, 2012, 2013, 2014, 2015.