Tony Garnock-Jones
8256b56607
Generalize matchValue to permit wildcard messages (not yet used)
2016-05-17 18:16:20 -04:00
Tony Garnock-Jones
1f33039e28
Make matchValue's failureResult non-optional
2016-05-17 17:44:14 -04:00
Tony Garnock-Jones
5ec89bd987
Use Github to show (highlighted) JS code
2016-05-17 15:46:28 -04:00
Tony Garnock-Jones
f663409609
Make makeable examples before deploy
2016-05-17 13:32:41 -04:00
Tony Garnock-Jones
acca81076a
todomvc: compile Syndicate DSL ahead of time
2016-05-17 13:27:54 -04:00
Tony Garnock-Jones
e27e028d8c
syndicatec: exit status 1 on error
2016-05-17 13:26:50 -04:00
Tony Garnock-Jones
43f6bd39ea
Credits & update index
2016-05-17 13:16:09 -04:00
Tony Garnock-Jones
aed3a9f1e2
todomvc: Clean up
2016-05-17 13:03:09 -04:00
Tony Garnock-Jones
3d13375b20
todomvc: localStorage
2016-05-17 13:03:09 -04:00
Tony Garnock-Jones
2c351d7352
todomvc: BUG: transitions don't happen because the nodes are being replaced rather than edited.
2016-05-17 13:03:09 -04:00
Tony Garnock-Jones
299be35d8f
todomvc: Implement many more features; redesign to fix bug
2016-05-17 13:03:09 -04:00
Tony Garnock-Jones
9e673c1588
todomvc: Sort todos in display by ID
2016-05-17 13:03:09 -04:00
Tony Garnock-Jones
7a759de5a1
todomvc: Progress
2016-05-17 13:03:09 -04:00
Tony Garnock-Jones
5c80c2f3bd
todomvc: Noticed a bug
2016-05-17 13:03:09 -04:00
Tony Garnock-Jones
a7ad6355f5
todomvc: Follow HTML template and file layout more closely; use new locationHash
2016-05-17 13:03:09 -04:00
Tony Garnock-Jones
eafcff8f75
todomvc: Various additional features toward the spec
2016-05-17 13:03:08 -04:00
Sam Caldwell
e18b2a8062
todomvc: progress
2016-05-17 13:03:04 -04:00
Sam Caldwell
d316449538
todomvc: switch to new ui library
2016-05-17 13:01:09 -04:00
Tony Garnock-Jones
4acb32813e
todomvc: Initial steps
2016-05-17 13:01:03 -04:00
Tony Garnock-Jones
df7908d5a7
examples/motion
2016-05-15 20:41:44 -04:00
Tony Garnock-Jones
1aead77a72
Do facet terminate() phase before handleEvent() phase
2016-05-15 16:16:36 -04:00
Tony Garnock-Jones
61ca89ce04
Post-insertion configureNode()
2016-05-15 14:58:28 -04:00
Tony Garnock-Jones
152a76af5e
uiProperty
2016-05-15 14:58:13 -04:00
Tony Garnock-Jones
b92c439f07
Introduce selectorMatch and eventUpdater
2016-05-15 14:57:56 -04:00
Tony Garnock-Jones
6a204a9085
Process many internal cycles per wakeup; avoid reentrancy
2016-05-15 14:56:19 -04:00
Tony Garnock-Jones
51d9d4b64e
Track Actors' knowledge to properly initialize new facets
2016-05-15 14:55:48 -04:00
Tony Garnock-Jones
1f8b3eeb3f
Attribute and property update/remove protocol
2016-05-15 06:14:31 -04:00
Tony Garnock-Jones
097641ffff
Name Structs for compatibility with Racket
2016-05-15 06:13:31 -04:00
Tony Garnock-Jones
0653bdae3c
key.instantiate needs an Array, not an Immutable.List
2016-05-15 06:12:37 -04:00
Tony Garnock-Jones
a55ed180db
Properly handle the first (interesting) patch after a broken connection.
2016-05-15 06:12:09 -04:00
Tony Garnock-Jones
e55e19d5e4
Add "on event ID BLOCK" support
2016-05-14 19:06:00 -04:00
Tony Garnock-Jones
0561a02e78
onTaskExit, matching the Racket
2016-05-14 17:12:41 -04:00
Tony Garnock-Jones
c7d91ac37f
Incorrect loop logic in updateEventListeners meant that nodes right at the end of the anchorNode were skipped.
2016-05-14 10:34:22 -04:00
Tony Garnock-Jones
bf532edd28
UIAttribute doesn't have fragmentId.
2016-05-14 02:26:24 -04:00
Tony Garnock-Jones
16365e7e95
Table example
2016-05-14 02:21:56 -04:00
Tony Garnock-Jones
35f0b75389
UIFragment orderBy, for features and speed
2016-05-14 02:21:43 -04:00
Tony Garnock-Jones
372652c49d
Syndicate.UI.uiAttribute
2016-05-13 20:17:16 -04:00
Tony Garnock-Jones
f64491c0a7
Better use of console.warn and console.error in dataspace.js
2016-05-13 20:17:16 -04:00
Tony Garnock-Jones
628ba87c54
Rewrite JS DemandMatcher to handle important latency-related corner cases.
2016-05-13 20:14:01 -04:00
Tony Garnock-Jones
68cde5be6c
DemandMatcher: overlap not ruled out! Remove it.
2016-05-12 22:18:57 -04:00
Tony Garnock-Jones
b51e7f99d9
LocationHashTracker
2016-05-12 20:11:22 -04:00
Tony Garnock-Jones
6d305e6b00
Hoist .refresh out from .handleEvent; makes assertions depend on state that might have been changed in event handlers properly.
2016-05-12 17:37:14 -04:00
Tony Garnock-Jones
a433a054b8
Syndicate.UI.windowEvent
2016-05-12 15:56:42 -04:00
Tony Garnock-Jones
e0bd8d08c2
Re-register UIFragment event handlers on node replacement
2016-05-12 15:19:37 -04:00
Tony Garnock-Jones
4eb29832df
Correct stupid mistake
2016-05-12 14:52:55 -04:00
Tony Garnock-Jones
fb89954158
Only try to attach events to things that might emit them
2016-05-12 14:46:39 -04:00
Tony Garnock-Jones
7b26b4bf14
Switch to FunctionBody from plain Block, to allow function definitions.
2016-05-12 00:01:09 -04:00
Tony Garnock-Jones
879e2425b9
Make Anchor.prototype.context n-ary
2016-05-11 22:13:35 -04:00
Tony Garnock-Jones
e67d018079
Make the TV catch fire eventually.
2016-05-11 21:22:26 -04:00
Tony Garnock-Jones
7b9f5a54e8
Use "message type" in demo-*.js
2016-05-11 21:05:40 -04:00
Tony Garnock-Jones
0208ae7a7d
A better UI library. Replaces DOM and jQuery support.
2016-05-11 21:03:11 -04:00
Tony Garnock-Jones
23f269fba6
Use Syndicate.Timer in SVG example
2016-05-11 11:13:14 -04:00
Tony Garnock-Jones
6ba9b402ec
Only trigger onStateChange with non-empty patch (?)
2016-05-11 10:59:44 -04:00
Tony Garnock-Jones
0693e88031
Allow "message type ..." as well as "assertion type ...".
2016-05-11 10:59:27 -04:00
Tony Garnock-Jones
4a2c8147aa
Enable and disable the IoT demo spawn/kill buttons.
...
Previous commit changed DOM fragment representation to use strings
instead of Seal'd quasi-sexprs, and so eliminated any distinction
between textually-identical DOM fragments in the dataspace.
This patch disables the "spawn" buttons for components in the IoT demo
to avoid (mostly harmless) duplication of actor instances.
It also demonstrates use of react{} outside a *lexically*-enclosing
actor{}.
2016-05-10 22:40:49 -04:00
Tony Garnock-Jones
dede7f08a7
Use strings-of-HTML and mustache.js for DOM fragments.
...
This avoids churn in the dataspace for no-op DOM updates, but at the
cost of losing the identity of multiple pieces of asserted DOM when
they end up being textually identical.
The fix is, generally, to make sure your DOM fragments are different
in some (perhaps invisible when rendered) way. Next commit updates the
IoT demo to avoid duplicate fragments.
2016-05-10 22:38:40 -04:00
Tony Garnock-Jones
efc444ac37
forever => react, state => react, init => do, done => finally, until => react until
2016-05-10 18:49:12 -04:00
Tony Garnock-Jones
e54b6566f5
Use Timer driver in IoT example.
2016-05-10 17:04:39 -04:00
Tony Garnock-Jones
43e94b83b4
Timer driver
2016-05-10 17:04:16 -04:00
Tony Garnock-Jones
b8e076188c
Protect init and done blocks with withCurrentFacet.
2016-05-10 17:02:31 -04:00
Tony Garnock-Jones
00b0ef63eb
SVG example.
2016-05-10 15:33:02 -04:00
Tony Garnock-Jones
1adb8110b6
Support xmlns in dom-driver.
2016-05-10 15:31:47 -04:00
Tony Garnock-Jones
b24cd754b0
Set default chat broker url
2016-05-10 01:14:32 -04:00
Tony Garnock-Jones
8f1d27c584
Move Codec and Broker into src/.
2016-05-10 00:57:05 -04:00
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
Tony Garnock-Jones
abc844c964
Dataspace.setOnStateChange, to correctly call it at least once
2016-05-09 13:18:19 -04:00
Tony Garnock-Jones
1dfaf537f5
Add Struct _get method.
2016-05-08 18:57:35 -04:00
Tony Garnock-Jones
5c5da4e569
Avoid using assert/retract directly in IoT alerting
2016-05-08 12:25:28 -04:00
Tony Garnock-Jones
6591091bb6
Drastically simplify IoT TV
2016-05-08 12:20:08 -04:00
Tony Garnock-Jones
a428423ff2
Support when(...) clause in assert in facets.
2016-05-08 12:19:40 -04:00
Tony Garnock-Jones
9c5f427366
Split and rename route.js into trie.js, struct.js and special.js
2016-05-08 11:33:39 -04:00
Tony Garnock-Jones
062e4603af
Convert Syndicate/js to use prefix-style trie
2016-05-08 11:11:29 -04:00
Tony Garnock-Jones
6078b81289
IoT example illustration
2016-05-04 14:00:42 -04:00
Tony Garnock-Jones
21a53ba948
IoT example
2016-05-02 17:13:25 -04:00
Tony Garnock-Jones
7fcfa9586b
Rename "network" to "dataspace" throughout
2016-04-07 09:42:54 +02:00
Tony Garnock-Jones
71a7bacccd
Fill TEMP_CHECKOUT/dist from working copy
2016-04-06 18:31:24 +02:00
Tony Garnock-Jones
d149ec57ea
Intro text on examples page.
2016-04-06 18:27:46 +02:00
Tony Garnock-Jones
a85a941d91
Include third-party
2016-04-06 18:27:38 +02:00
Tony Garnock-Jones
7fb0c33660
Describe DOM example.
2016-04-06 18:21:57 +02:00
Tony Garnock-Jones
8e0906d918
Deployment of examples; example descriptions.
2016-04-06 15:29:27 +02:00
Tony Garnock-Jones
0d2e89e309
Include expanded code
2016-03-22 12:14:30 -04:00
Tony Garnock-Jones
e7c7a7cdfa
Button example
2016-03-22 12:11:56 -04:00
Tony Garnock-Jones
da978aad39
Allow published DOM fragments to be just plain text.
2016-03-22 12:11:47 -04:00
Tony Garnock-Jones
64cbe51578
demo-filesystem.js and attendant fixes
2016-03-20 21:01:17 -04:00
Tony Garnock-Jones
761f5652af
Two simple in-browser examples
2016-03-19 15:06:23 -04:00
Tony Garnock-Jones
a8b7de0d64
Support gaining access to the ground object
2016-03-19 15:06:07 -04:00
Tony Garnock-Jones
b9aa833186
Prefer parens around risingEdge transition condition
2016-03-19 14:50:08 -04:00
Tony Garnock-Jones
ce0b30dba6
Fix code generation problem
2016-03-19 14:49:54 -04:00
Tony Garnock-Jones
45d1de7358
Get in-browser compilation working using brfs
2016-03-19 14:49:44 -04:00
Tony Garnock-Jones
e4ae3b1f95
Check for termination of an actor after each event and after boot.
2016-03-19 14:47:39 -04:00
Tony Garnock-Jones
d87118f686
Support risingEdge transition events
2016-03-19 13:48:49 -04:00
Tony Garnock-Jones
e7de06c2d2
Remove spurious braces.
2016-03-19 13:01:23 -04:00
Tony Garnock-Jones
3b5a07f954
Split out compiler to separate syndicatec command
2016-03-19 13:01:14 -04:00
Tony Garnock-Jones
adaf9511bf
Init and done blocks.
2016-03-18 17:13:52 -04:00
Tony Garnock-Jones
3c124633b3
Terminate actors when they have no more facets left.
2016-03-18 17:08:49 -04:00
Tony Garnock-Jones
dea733911d
Load crypto functionality on node.js.
2016-03-18 17:01:00 -04:00
Tony Garnock-Jones
3785cebdf2
Syndicate/js HLL Ohm-based compiler.
2016-03-18 17:00:51 -04:00
Tony Garnock-Jones
fbbad85b04
Put matchPattern back: actor.js will need it.
2016-03-18 15:02:44 -04:00
Tony Garnock-Jones
dc35e7c1bd
Cosmetic (reindentation)
2016-03-18 12:32:37 -04:00
Tony Garnock-Jones
21fd0f574a
makeStructureConstructor
2016-03-18 12:32:09 -04:00