syndicate-2017/js
Tony Garnock-Jones 8546e93e5d Implement Syndicate/js broker-client and chat app.
Support capturing with a pattern in the Syndicate/js DSL: ($foo = bar())

Struct has been cleaned up, and now offers proper Javascript objects
for its prefab-like structures. These can serialize and deserialize
themselves to/from JSON. They behave like prefabs in that two
StructureTypes created with the same label and arity behave
identically wrt Dataspaces and Tries. Sadly, prefab field names had to
go in order to support this.

Facets now track and terminate their children upon termination. This
is experimental; I suspect it is required for nested durings.

DemandMatcher can now support multiple specs, but this is less useful
than you might think since it tracks supply and demand quite naively.
It would have to have (surprise, surprise!) a mux-like structure to do
the job properly!

Added WakeDetector to main.js; adding the broker client will have to
wait until it is turned into a proper module in the src/ directory.
2016-05-10 00:40:53 -04:00
..
bin Split out compiler to separate syndicatec command 2016-03-19 13:01:14 -04:00
compiler Implement Syndicate/js broker-client and chat app. 2016-05-10 00:40:53 -04:00
dist Initial commit. 2016-01-30 21:58:59 -05:00
examples Implement Syndicate/js broker-client and chat app. 2016-05-10 00:40:53 -04:00
src Implement Syndicate/js broker-client and chat app. 2016-05-10 00:40:53 -04:00
test Implement Syndicate/js broker-client and chat app. 2016-05-10 00:40:53 -04:00
third-party Initial commit. 2016-01-30 21:58:59 -05:00
.gitignore Initial commit. 2016-01-30 21:58:59 -05:00
Makefile Fill TEMP_CHECKOUT/dist from working copy 2016-04-06 18:31:24 +02:00
README.md Split and rename route.js into trie.js, struct.js and special.js 2016-05-08 11:33:39 -04:00
package.json Get in-browser compilation working using brfs 2016-03-19 14:49:44 -04:00

README.md

Syndicate-JS: Syndicate for Javascript environments

A walk through the code

Source files in src/, from most general to most specific:

  • reflect.js: Reflection on function formal parameter lists.

  • util.js: Functions extend and kwApply.

  • randomid.js: Generation of (cryptographically) random base64 strings.

  • trie.js: Implementation of dataspace trie structure.

  • patch.js: Implementation of patches over dataspace tries.

  • mux.js: Use of tries plus patches to build a (de)multiplexing routing structure.

  • dataspace.js: Implementation of core leaf actors and dataspaces.

  • ground.js: Pseudo-dataspace acting as the global outermost context for Syndicate actors.

  • ack.js: Utility for detecting when a previous state change has taken effect.

  • seal.js: Immutable container for data, used to hide structure from dataspace tries.

  • demand-matcher.js: Tracking and responding to demand and supply expressed as assertions.

  • dom-driver.js: Syndicate driver for displaying DOM fragments on a webpage.

  • jquery-driver.js: Syndicate driver for soliciting jQuery-based DOM events.

  • main.js: Main package entry point.