Tony Garnock-Jones
cecb261c6b
Introduce level-anchor and level-anchor->meta-level
2016-07-21 18:53:41 -04:00
Tony Garnock-Jones
5aebc7fa75
#:meta-level in query-set and friends
2016-07-21 18:31:44 -04:00
Tony Garnock-Jones
c931b0aee5
Fix dataspace macro
2016-07-21 18:31:33 -04:00
Tony Garnock-Jones
4357424e78
Switch to non-boxed, persistent impl of fields
2016-07-21 16:50:16 -04:00
Tony Garnock-Jones
970baf7a36
Forbid multiple uses of a suspend-script continuation
2016-07-21 15:14:03 -04:00
Tony Garnock-Jones
bffc3757cb
Remove unused #:substate arg from add-facet!.
2016-07-21 15:00:58 -04:00
Tony Garnock-Jones
3569426048
Support specification of the form to use to create an actor in during/actor
2016-07-20 22:05:14 -04:00
Sam Caldwell
c76480f701
Allow giving two contracts in field macro
2016-07-20 16:51:41 -04:00
Sam Caldwell
01ad7c72f6
Allow field/c to have different in and out contracts
...
This can be used to temporarily disallow writing to the field, or
allowing the field to be initially #f but never set to #f.
2016-07-20 16:34:21 -04:00
Sam Caldwell
3b9e483076
Re-kerjigger field macro to allow using #f as a contract
2016-07-20 16:14:12 -04:00
Sam Caldwell
e20f87adba
Implement field/c using a struct rather than make-contract
...
Asumu suggested that using a struct with the contract property is
generally preferred.
2016-07-19 17:49:45 -04:00
Sam Caldwell
9cf12a381e
wrap contracts given to field with `field\c`
2016-07-18 15:20:38 -04:00
Sam Caldwell
0fb5fa52f4
allow field/c to blame positive party
2016-07-18 15:17:17 -04:00
Tony Garnock-Jones
a046bd0f23
Experimental begin/dataflow and define/dataflow facilities
2016-07-17 12:51:57 -04:00
Tony Garnock-Jones
0a0feee01b
Support optional priority in on-event
2016-07-17 00:29:52 -04:00
Tony Garnock-Jones
1334bd3abb
Split out query-set* etc; add query-value etc
2016-07-17 00:11:19 -04:00
Sam Caldwell
75cec37038
Support for defining fields with contracts
2016-07-15 18:53:25 -04:00
Sam Caldwell
e1f42d5d4f
First pass at field/c
...
Logic mostly dupicated from parameter/c
2016-07-15 15:45:08 -04:00
Tony Garnock-Jones
22f5c47d30
Collect actor.rkt pending-actions during module compilation
2016-07-15 09:50:29 -04:00
Tony Garnock-Jones
cb473a8847
Make rising-edge check at patch-compute-time.
...
This makes rising-edge checks happen only when *fields* change, rather
than every turn. It also means that if a script causes a relevant
field change, the rising-edge check will definitely be performed
before the end of the turn.
A potential downside is that a rising-edge check could schedule a
script which triggers the same rising-edge check, causing an infinite
loop in `run-scripts!`.
2016-07-15 09:47:48 -04:00
Tony Garnock-Jones
0ac24a5755
Support #:on-add, #:on-remove in queries
2016-07-13 17:20:57 -04:00
Tony Garnock-Jones
024cb6d707
Promote {define/,}query-{set,hash,hash-set} to actor.rkt
2016-07-13 16:59:55 -04:00
Tony Garnock-Jones
95fe020ed1
Factor out support/hash.rkt
2016-07-13 16:53:07 -04:00
Tony Garnock-Jones
6c3295c96d
Rename track -> query
2016-07-13 16:35:55 -04:00
Tony Garnock-Jones
53efb1fcd4
Refine script priorities for use by track-set and friends
2016-07-13 16:34:16 -04:00
Tony Garnock-Jones
cf82b794e5
Abort to prompt-tag when invoking a suspended continuation.
2016-07-12 17:42:54 -04:00
Tony Garnock-Jones
1a6199f9ee
Allow naming of `during/actor`s
2016-07-12 16:32:54 -04:00
Tony Garnock-Jones
34b504326f
Remove react/independent; counter to Syndicate design. See Journal 5 for details.
2016-07-12 15:33:31 -04:00
Tony Garnock-Jones
7989bc4931
Add `flush!` utility to actor.rkt
2016-07-12 15:18:06 -04:00
Tony Garnock-Jones
adf6603440
Track dependencies from fields to endpoint assertion sets with simple dataflow
2016-07-10 19:22:02 -04:00
Tony Garnock-Jones
b20337fad8
Introduce actor-global field-table.
2016-07-10 19:15:50 -04:00
Tony Garnock-Jones
081383d321
Correct grammatical error in error message
2016-07-10 18:41:29 -04:00
Tony Garnock-Jones
adf2d1e291
Disallow usage of assert!/retract!/patch! outside scripts
2016-07-10 16:48:09 -04:00
Tony Garnock-Jones
9bf2991da8
Enforce rule: fields legal only at actor toplevel or in facet setup code
2016-07-10 16:47:37 -04:00
Tony Garnock-Jones
175c619edc
#lang syndicate/actor
2016-07-10 12:33:16 -04:00
Tony Garnock-Jones
1e1fef6a6e
Correctly (?) prune field-tables
2016-07-09 17:24:23 -04:00
Tony Garnock-Jones
3bc95aeaeb
Update big-bang.rkt to the new Syndicate/Racket HLL.
2016-07-09 16:35:29 -04:00
Tony Garnock-Jones
8ca2b1ac0c
Reimplement Syndicate/Racket with a new design.
...
This is Syndicate/Racket v2, modeled more closely after Syndicate/js.
Facets and Endpoints are now contained within a single actor, unlike
Syndicate/Racket v1, where a linkage protocol between multiple actors
was used. The approach to actor and facet state has been revised as a
consequence.
Almost all the examples using syndicate/actor have been updated.
2016-07-09 16:18:30 -04:00
Tony Garnock-Jones
f21e58dacb
Support #:meta-level for during
2016-06-14 03:48:31 -04:00
Tony Garnock-Jones
7271ef6b73
Ensure that `?` is provided by pattern.rkt and clients
2016-06-14 03:48:12 -04:00
Tony Garnock-Jones
0b964bb1bb
Compute `retracted` pattern just once during `during`. Avoids mutation-related bug.
2016-06-11 06:59:59 -04:00
Tony Garnock-Jones
d161d50b9a
Split out pattern.rkt
2016-06-08 14:22:35 -04:00
Tony Garnock-Jones
2a218dd0a6
Split out effect-handling library.
2016-06-08 13:52:32 -04:00
Tony Garnock-Jones
e74f6ae7e5
Initial support for properly-recorded actor names.
2016-06-06 16:45:42 -04:00
Tony Garnock-Jones
5c288036aa
Friendlier error when one accidentally asserts wildcard
2016-05-17 02:08:23 -04:00
Tony Garnock-Jones
791d2880ae
If a parent facet terminates, its children watch for this and terminate themselves.
2016-05-17 01:15:09 -04:00
Tony Garnock-Jones
1e84a3507d
Avoid use of racket/match for message matching in actors; makes abstracting over patterns easier
2016-05-17 01:14:48 -04:00
Tony Garnock-Jones
07ef4f108e
Improve printing of actor state
2016-05-17 01:10:26 -04:00
Tony Garnock-Jones
b1f7816418
Only fire (on (asserted)) when no previous matching assertions have been seen.
...
This makes (on (asserted)), (on (retracted)) and (during) behave as if
they are *grouping* by their named captures, which is what we want. It
gives a much easier to understand programming model. Note the
differences in execution of example-partial-retraction.rkt before and
after this patch. This patch gives example-partial-retraction.rkt, and
programs like it, a more natural behaviour.
2016-05-17 00:24:17 -04:00
Tony Garnock-Jones
bbca582b98
Get the broker working.
...
Add support for encoding prefab structs as JSON objects.
Remove linkage & at-meta from patches inside broker dataspace. This is
ugly, and deserves to be revisited in future.
Fix a bug where using trie-prune-branch was incorrect, and
trie-subtract should have been used instead.
Factor out support/struct.rkt.
2016-05-10 00:25:50 -04:00
Tony Garnock-Jones
fbece48f52
`patch!` and crude `on-event` handling in actor.rkt
2016-05-08 20:41:29 -04:00
Tony Garnock-Jones
6fe897eb46
Rename track -> query
2016-05-08 17:51:08 -04:00
Tony Garnock-Jones
7fcfa9586b
Rename "network" to "dataspace" throughout
2016-04-07 09:42:54 +02:00
Tony Garnock-Jones
9dee4e3b30
Alpha convert: prospect -> syndicate
2016-04-01 19:53:46 -04:00