6d8ced489c
A recent change to Racket must have changed the way `for` expands, because now in conjunction with `local-expand`, we see *effectively* a `(begin (values) (void))`. This isn't a problem usually, but in `#lang syndicate`'s `module-begin` context, we split apart `begin`s and examine their constituents, leading to examination of something that will ultimately yield 0 values. The change accepts either 0 or 1 values when collecting actions for the module's main boot actor to execute. More than 1 value yielded by such an expression is still considered an error. Currently, it gives unhelpful error location information; a future refinement might be to make the error reporting for this (rare) situation more helpful. |
||
---|---|---|
.. | ||
doc | ||
syndicate | ||
syndicate-gl | ||
syndicate-ide | ||
.gitignore | ||
FAQ.md | ||
Makefile | ||
README.md | ||
info.rkt |
README.md
Racket implementation of Syndicate
The language itself
This repository contains a Racket
implementation of Syndicate in syndicate
, which includes
-
the implementation of the
#lang syndicate
language, in thesyndicate
directory. -
a TCP echo server example, which listens for connections on port 5999 by default, in
syndicate/examples/echo.rkt
. Connect to it using, for example,telnet localhost 5999
. -
a handful of other examples, in
syndicate/examples/
.
Auxiliary collects
syndicate-gl
is a Syndicate interface to 2D OpenGL based graphics
Compiling and running the code
You will need Racket version 6.4.0.14 or later.
Once you have Racket installed, run
raco pkg install syndicate
to install the package from the Racket package repository, or
raco pkg install
from the racket/
directory of the Git checkout to install the package
from a local snapshot. (Alternatively, make link
does the same thing.)
This will make #lang syndicate
available to programs.
At this point, you may load and run any of the example *.rkt
files
in the
syndicate/examples/
directory.
Copyright
Copyright © Tony Garnock-Jones 2010, 2011, 2012, 2013, 2014, 2015, 2016.