8546e93e5d
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. |
||
---|---|---|
.. | ||
bin | ||
compiler | ||
dist | ||
examples | ||
src | ||
test | ||
third-party | ||
.gitignore | ||
Makefile | ||
README.md | ||
package.json |
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
: Functionsextend
andkwApply
. -
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.