From 47a113026c74ddd14bdcd5347e867b665e568703 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Thu, 3 May 2018 15:05:03 +0100 Subject: [PATCH] README.md --- syndicate/README.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 syndicate/README.md diff --git a/syndicate/README.md b/syndicate/README.md new file mode 100644 index 0000000..73bb2d8 --- /dev/null +++ b/syndicate/README.md @@ -0,0 +1,32 @@ +# New "Imperative" Syndicate Implementation + +This experimental reimplementation of Syndicate takes the +language-level constructs of facets, endpoints, and fields to heart, +and integrates knowledge of facets and endpoints into the dataspace +implementation itself. + +It gains a *significant* performance advantage by doing so. + +Programs seem to be about *20x faster*. Some are only 10x faster, some +are 30x faster. + +The prototype that embodies the new idea is in +[prototype.rkt](prototype.rkt). + +All the drivers end up looking much nicer with this new +implementation. The previously-separate GL-2D support is now +integrated as just another driver (though the timing characteristics +of the old implementation are not precisely preserved). The +[ground.rkt](ground.rkt) implementation is much cleaner. + +The implementation test suite lives in [test/](test/). + +Try out the "many Racket logos" animation example/demo: + +```shell +racket examples/gl-2d-many.rkt +``` + +Hopefully you'll get a smooth 60fps, though I admit I'm running it on +a fairly fast machine so you might need to drop the sprite-count in +the code a bit to sustain 60fps.