syndicate-2017/racket
Tony Garnock-Jones 6d8ced489c Accept toplevel action-producing expressions yielding 0 values.
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.
2017-02-20 17:04:39 -05:00
..
doc Remove obsolete "examples" 2016-06-14 03:55:10 -04:00
syndicate Accept toplevel action-producing expressions yielding 0 values. 2017-02-20 17:04:39 -05:00
syndicate-gl swap the meaning of spawn and actor in racket syndicate 2017-02-15 18:18:19 -05:00
syndicate-ide swap the meaning of spawn and actor in racket syndicate 2017-02-15 18:18:19 -05:00
.gitignore Move contents to subfolder in prep for merge 2016-04-01 19:05:47 -04:00
FAQ.md Update FAQ.md 2017-01-27 15:22:06 -05:00
Makefile First sketch of "IDE" for Syndicate 2016-08-31 19:12:40 +01:00
README.md Move syndicate-monolithic to new historical directory. 2016-07-30 14:48:59 -04:00
info.rkt Fix deps 2016-12-19 10:15:15 +13:00

README.md

Racket implementation of Syndicate

The language itself

This repository contains a Racket implementation of Syndicate in syndicate, which includes

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 © Tony Garnock-Jones 2010, 2011, 2012, 2013, 2014, 2015, 2016.