fce69a7d57 | ||
---|---|---|
marketplace | ||
.gitignore | ||
Makefile | ||
README.md |
README.md
From Functional I/O to Functional Systems Programming
Support code for ICFP submission.
This is a Racket package containing a
single
collection,
marketplace
, which includes
-
the implementation of the
#lang marketplace
language from the paper, inmarketplace/
. -
the echo server example from the paper, in
marketplace/examples/echo-paper.rkt
. -
the chat server example from the paper, in
marketplace/examples/chat-paper.rkt
. -
the Haskell, Erlang and Python implementations of the chat server from the paper, in
marketplace/examples/chat.hs
,chat.erl
, andchat.py
respectively.
How to compile and run the code
You will need the latest prerelease version of Racket. Any version newer than or equal to Racket 5.3.3.7 should work. Nightly-build installers for Racket can be downloaded here.
Once you have Racket installed, run
raco pkg install --link `pwd`
from the root directory of the Git checkout to install the package in
your Racket system. (Alternatively, make link
does the same thing.)
This will make #lang marketplace
available to programs.
It will take several minutes to compile the code. On my Macbook Air, it takes around 10 minutes; on my ridiculously fast desktop machine, it still takes around 2 minutes.
At this point, you may load and run any of the example *.rkt
files
in the
marketplace/examples/
directory.
Note that both the echo server and chat server examples do not print
any output on standard output: instead, they simply start running and
silently await TCP connections. Once one of the servers is running, in
a separate window, try telnet localhost 5999
.
Note also that both the echo server and the chat server use port 5999, so you cannot run both simultaneously.
Copyright
Copyright © Tony Garnock-Jones 2010, 2011, 2012, 2013.