README.md
This commit is contained in:
parent
fa3505e3a6
commit
47a113026c
|
@ -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.
|
Loading…
Reference in New Issue