Commit Graph

215 Commits

Author SHA1 Message Date
Tony Garnock-Jones 1b05122db4 Fix monolithic pretty-printing of SCNs 2016-02-07 16:17:47 -05:00
Tony Garnock-Jones 1e4415e30b Failing test case, more or less. 2016-02-07 16:17:20 -05:00
Tony Garnock-Jones d5c4b30335 Use `continuation-prompt-available?` to support `actor` at prospect "toplevel". 2016-02-05 18:06:29 -05:00
Sam Caldwell 92169d5e10 use comprehension in box-and-client 2016-02-05 13:27:20 -05:00
Sam Caldwell 26966b9c34 Implement trie-comprehension macros
Trie comprehensions abstract the process of projecting one-or-more
tries against some patterns, binding the results to usable variables,
and iterating over the results.

Currently supports for-trie/fold, for-trie/list, for-trie/set, and
for-trie/patch, as well as the ability to easily create new trie
comprehension macros. Note that these comprehensions operate in the
style of `for*` rather than `for`.
2016-02-05 13:27:20 -05:00
Sam Caldwell 540e3cb1f0 undollar into a particular lexical context 2016-02-05 13:27:20 -05:00
Tony Garnock-Jones b85409ef10 Demos of wildcard assertions 2016-02-02 23:01:08 -05:00
Tony Garnock-Jones 2884806378 An additional year has begun 2016-01-30 11:39:05 -05:00
Tony Garnock-Jones 5f6f3429c8 Fix the fix for the "out"-related bug from commit de1dc5a.
The problem was that sometimes there'd be an assertion that `meta` had
asserted that *also* was asserted by some local process. Commit
de1dc5a introduced code that would drop the assertion in this case;
this commit changes it to only remove assertions from the set when
*only* `meta` is asserting them.
2016-01-27 21:29:42 -05:00
Tony Garnock-Jones 6b31b33230 Nameable demand-matchers 2016-01-27 21:03:08 -05:00
Tony Garnock-Jones bedd44aae5 Using #f as a name doesn't override existing names. 2016-01-27 20:53:37 -05:00
Tony Garnock-Jones 03efb19a4d Optionally-named process behaviour functions 2016-01-27 20:46:24 -05:00
Tony Garnock-Jones de1dc5aa8e Fix "out"-related bug in monolithic implementation 2016-01-24 00:04:29 -05:00
Tony Garnock-Jones 0a6cce2d3d on-claim fix for incremental, on-claim impl for monolithic 2016-01-24 00:03:59 -05:00
Tony Garnock-Jones ff3ba722ad Fix pretty-printing of networks 2016-01-24 00:03:32 -05:00
Tony Garnock-Jones cf00496338 Monolithic semantics. 2016-01-23 18:24:07 -05:00
Tony Garnock-Jones 3c5a6f00ed Rename "matcher" to "trie". 2016-01-21 21:55:41 -05:00
Tony Garnock-Jones e1c5fd4ac1 Switch from timer-expired /messages/ to /assertions/ at ground level.
Previously, the timer driver caused the background thread to call
send-ground-message to indicate that a timer had expired. However,
this can lead to a race! In cases where a timer expires very soon, the
channel-put of the set-timer instruction leads shortly thereafter to a
send-ground-message which then races the establishment of the
metalevel-1 subscription to the timer-expired events that are coming
from the background thread.

The race cannot occur in the sequential implementation because the
network makes sure to enqueue the transition actions resulting from
the set-timer message delivery ahead of any enqueueing of the
timer-expired ground message, so that by the time the ground message
is processed, the relevant subscription always exists.

In a looser implementation, however, this level of synchronised
activity may not exist, and the ground message may overtake the
subscription establishment.

Therefore, I've changed the driver to instead use ground /assertions/
to signal expired timers. Upon processing of such an assertion, the
driver cleans it up. This is very similar to hardware interrupts,
where the driver has to "clear the interrupt" in order to let the
system continue properly.
2016-01-21 17:38:12 -05:00
Tony Garnock-Jones 5e6d72b991 Rearrange bank-account examples. 2016-01-18 17:38:58 -05:00
Tony Garnock-Jones 1d28908600 Add project-assertions convenience routine. 2016-01-18 17:33:26 -05:00
Tony Garnock-Jones aa9677dbe1 Rename World to Network 2016-01-18 14:29:48 -05:00
Tony Garnock-Jones ad9a78b4a4 Directly detect incoming connections in examples/chat-simplified-internals 2016-01-16 22:12:35 -05:00
Tony Garnock-Jones 024157103c Simplified TCP protocol chat example 2016-01-16 21:59:30 -05:00
Tony Garnock-Jones b7726dafb8 Clearer example 2016-01-16 18:45:44 -05:00
Tony Garnock-Jones fe2bc31f4f Avoid use of sub; wait for server to come ready before sending messages 2016-01-16 18:11:35 -05:00
Tony Garnock-Jones f1c1646163 Bank account example 2016-01-16 14:32:04 -05:00
Tony Garnock-Jones 6058f8ec6e mini-echo examples 2016-01-14 15:19:00 -05:00
Tony Garnock-Jones 31fe2cd92b Variations on chat server 2016-01-13 11:35:03 -05:00
Tony Garnock-Jones 4faf189029 Echo example in actor form 2016-01-13 11:26:01 -05:00
Tony Garnock-Jones 99466dad7f examples/actor/chat-client.rkt 2016-01-08 12:22:27 -05:00
Tony Garnock-Jones a978731c55 Correct typo: 5000 should be 5999 2016-01-08 12:22:11 -05:00
Tony Garnock-Jones 32ff49a814 TODO 2015-12-18 11:45:01 +13:00
Tony Garnock-Jones 881769c274 Comment out debug-printing in expand-state 2015-12-15 15:05:28 +13:00
Tony Garnock-Jones e3aaed1ec9 Untabify 2015-12-15 15:01:13 +13:00
Tony Garnock-Jones edaf97ae05 Simplify and rename %%boot to actor-body->spawn-action 2015-12-12 07:02:13 +13:00
Tony Garnock-Jones 97dceedff2 Expose `perform-core-action!`. 2015-12-12 06:52:16 +13:00
Tony Garnock-Jones bd0278297b Add `network` to actor.rkt 2015-12-12 06:45:15 +13:00
Tony Garnock-Jones debd191992 Fix bug with `until` and #:collect.
`state` now yields the explicit values given in a termination clause
*prepended* to the `#:collect`ed variables of the calling actor at the
time the state terminates. `until` now yields zero values in its sole
termination clause, and thus yields only the `#:collect`ed values.
2015-12-12 06:22:40 +13:00
Tony Garnock-Jones e2b7805232 Simple file-system example, similar to that in the paper submission 2015-12-11 20:25:52 +13:00
Tony Garnock-Jones 122ea7ea1c Steps toward proper scoping of #:collect bindings 2015-12-11 20:25:17 +13:00
Tony Garnock-Jones c607f1c53f Cosmetic rearrangement of MINIMART_TRACE flag-parsing code 2015-12-11 20:24:54 +13:00
Tony Garnock-Jones 0335e54e6a Check for incorrect use of ? in patterns; allow (? pred? ...) in patterns 2015-12-11 20:24:20 +13:00
Tony Garnock-Jones 30d46a2019 Avoid incorrect use of ?; replace with _ 2015-12-11 20:22:36 +13:00
Tony Garnock-Jones 91c2d6a3c7 box-and-client actor example 2015-12-11 17:55:46 +13:00
Tony Garnock-Jones 424f38b268 Bring #:collect vars into scope for maintained assertions in actor.rkt 2015-12-11 17:55:34 +13:00
Tony Garnock-Jones 80ab8e20cc Avoid crashing trace when behavior or state are missing from relevant tables 2015-12-11 17:50:55 +13:00
Tony Garnock-Jones 71c5cd3831 No longer store aggregates for ongoing assertions; instead, use the mux's interest-table 2015-12-11 17:36:32 +13:00
Tony Garnock-Jones e349e28650 Explore behavior of limit-patch a little 2015-12-11 17:36:10 +13:00
Tony Garnock-Jones e4eed9a9e4 Add prospect-pretty-print->string 2015-12-11 16:34:50 +13:00
Tony Garnock-Jones 07f7fcb060 Handy debug printing (commented out) 2015-12-11 16:25:14 +13:00