README
This commit is contained in:
parent
c3dddd1184
commit
1b3b102c58
|
@ -0,0 +1,55 @@
|
||||||
|
# From Functional I/O to Functional Systems Programming
|
||||||
|
|
||||||
|
Support code for ICFP submission.
|
||||||
|
|
||||||
|
This is a [Racket](http://racket-lang.org/) package containing a
|
||||||
|
single
|
||||||
|
[collection](http://docs.racket-lang.org/reference/collects.html),
|
||||||
|
`marketplace`, which includes
|
||||||
|
|
||||||
|
- the implementation of the `#lang marketplace` language from the
|
||||||
|
paper, in
|
||||||
|
[`marketplace/`](https://github.com/tonyg/marketplace/tree/master/marketplace/).
|
||||||
|
|
||||||
|
- the echo server example from the paper, in
|
||||||
|
[`marketplace/examples/echo-paper3.rkt`](https://github.com/tonyg/marketplace/tree/master/marketplace/examples/echo-paper3.rkt).
|
||||||
|
|
||||||
|
- the chat server example from the paper, in
|
||||||
|
[`marketplace/examples/chat-paper.rkt`](https://github.com/tonyg/marketplace/tree/master/marketplace/examples/chat-paper.rkt).
|
||||||
|
|
||||||
|
- the Haskell, Erlang and Python implementations of the chat server
|
||||||
|
from the paper, in
|
||||||
|
[`marketplace/examples/chat.hs`](https://github.com/tonyg/marketplace/tree/master/marketplace/examples/chat.hs),
|
||||||
|
[`chat.erl`](https://github.com/tonyg/marketplace/tree/master/marketplace/examples/chat.erl),
|
||||||
|
and
|
||||||
|
[`chat.py`](https://github.com/tonyg/marketplace/tree/master/marketplace/examples/chat.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](http://pre.racket-lang.org/installers/).
|
||||||
|
|
||||||
|
Once you have Racket installed, run `make link` (or the equivalent
|
||||||
|
command from the makefile) from the root directory of the Git checkout
|
||||||
|
to install the package in your Racket system. This will make `#lang
|
||||||
|
marketplace` available to programs.
|
||||||
|
|
||||||
|
At this point, you may load and run any of the example `*.rkt` files
|
||||||
|
in the
|
||||||
|
[`marketplace/examples/`](https://github.com/tonyg/marketplace/tree/master/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.
|
Loading…
Reference in New Issue