Commit Graph

1413 Commits

Author SHA1 Message Date
Tony Garnock-Jones 571fc13787 Allow multiple "root" facets, by creating a dummy root 2018-05-01 22:39:02 +01:00
Tony Garnock-Jones 15120a8488 A few names for unnamed actors make it clear which actor is faulting 2018-05-01 21:19:19 +01:00
Tony Garnock-Jones 76c74f25c2 Adapt platformer to imperative-syndicate. Mostly working!
It's also nicely fast compared to the old-Syndicate version :-)

There are still some problems with parameters in cross-ds relaying;
the symptom is #f for (current-facet) at some point, leading to some
sprites that don't get retracted (!).
2018-05-01 21:15:22 +01:00
Tony Garnock-Jones 7b05a25301 First sketch of `quit-dataspace!`. 2018-05-01 21:12:54 +01:00
Tony Garnock-Jones 77a3042c98 Multi-assert!/retract! for adhoc assertions 2018-05-01 20:58:26 +01:00
Tony Garnock-Jones 9d4388ad8c More thoughtless uncommenting of query-* forms 2018-05-01 20:58:02 +01:00
Tony Garnock-Jones 7e71f04cc6 Correct error from earlier thoughtless uncommenting 2018-05-01 20:57:42 +01:00
Tony Garnock-Jones bf98354984 Support vector in patterns, like we already support list 2018-05-01 20:57:22 +01:00
Sam Caldwell e402725d7f note 2018-05-01 13:55:34 -04:00
Sam Caldwell f1c51661c7 Re-finagle module-begin to a more incremental style
Fixes 33
2018-05-01 13:55:34 -04:00
Tony Garnock-Jones f4681c21a1 gl-2d driver and examples 2018-05-01 17:39:17 +01:00
Tony Garnock-Jones e44ee5ef28 Drain multiple external ground events at once. (Good or bad idea?) 2018-05-01 17:34:51 +01:00
Tony Garnock-Jones ca67f9405f Easy access to profiling 2018-05-01 17:34:34 +01:00
Tony Garnock-Jones 007af89325 Care less about exact set ordering in test case 2018-05-01 17:32:03 +01:00
Tony Garnock-Jones 36e4de74ad Change representation of hashsets to avoid actual sets: use hashes-to-#t instead 2018-05-01 17:27:49 +01:00
Tony Garnock-Jones aaea276ec5 Uncomment query-value and friends. May need tweaks. 2018-04-30 22:48:50 +01:00
Tony Garnock-Jones dab13836f7 Clamp `adhoc-retract!` to not drop below zero. 2018-04-30 22:48:27 +01:00
Tony Garnock-Jones 55d13e7569 In case there are no activation-forms, add a gratuitous `(void)` at the end. 2018-04-30 22:47:53 +01:00
Tony Garnock-Jones 47f645d579 Repair incorrect interleaving of actions and scripts 2018-04-30 22:47:25 +01:00
Tony Garnock-Jones bda2ec0566 Switch another in-hash to hash-for-each 2018-04-30 14:46:43 +01:00
Tony Garnock-Jones c22f9f98f8 Avoid sets in the hot path of dataflow repair; also remove (bad) cycle-detection code 2018-04-30 14:29:34 +01:00
Tony Garnock-Jones 9d5213ecf4 Speedup from avoiding uselessly enqueueing an empty work queue 2018-04-30 11:19:03 +01:00
Tony Garnock-Jones 00b7f42335 Eliminate another parameter: now only `current-facet` remains 2018-04-30 11:18:49 +01:00
Tony Garnock-Jones d68bc87da5 Avoid manipulating `in-script?` all the time 2018-04-30 10:44:35 +01:00
Tony Garnock-Jones 77676fca9b Another small speed bump from using hash-for-each over in-hash-keys 2018-04-30 10:04:33 +01:00
Tony Garnock-Jones 1bd410db23 Avoid sets on the hot path (use hashes instead); good speed improvement 2018-04-30 09:32:08 +01:00
Tony Garnock-Jones 2008e66f38 Add in-* annotations to for loops 2018-04-30 09:14:00 +01:00
Tony Garnock-Jones 8bed3d4d4c Add timer/timestate support; this prompted a change to endpoint registration.
The `add-endpoint!` call is changed in two ways:

 - the old `assertion-fn` has become `update-fn`, yielding both
   an assertion *and* an optional handler, because if the handler
   depends on a field which changes, previously the handler wasn't
   being updated

 - a new parameter, `dynamic?`, can be set to #f (it's usually #t)
   to ensure that the assertion and skeleton-interest are calculated
   only once ever, and are not connected to the dataflow machinery.

The first change makes it possible for the `(later-than (deadline))`
pattern, where `deadline` is a field, to work; the second change makes
`during` and `during/spawn` work correctly in the face of field
updates.
2018-04-29 22:27:55 +01:00
Tony Garnock-Jones 63666f4567 Merge branch 'master' into imperative 2018-04-29 21:49:20 +01:00
Tony Garnock-Jones f64ad8389a Update example-during-criterion-snapshotting.rkt 2018-04-29 21:48:49 +01:00
Tony Garnock-Jones 98b7aecd8f External-event and TCP drivers; chat server and stdin echo programs 2018-04-29 18:43:39 +01:00
Tony Garnock-Jones 14bc36c4c5 Extract raw dataspace test to separate file 2018-04-29 16:08:52 +01:00
Tony Garnock-Jones d06acb2b59 Commented-out debug-printing in relay.rkt 2018-04-29 16:08:35 +01:00
Tony Garnock-Jones 768ee57a15 Add `test` make target 2018-04-29 16:08:20 +01:00
Tony Garnock-Jones a13884cbda bag-key-count 2018-04-29 16:08:01 +01:00
Tony Garnock-Jones e3d64677bd Repair scheduling of inner dataspaces, thus allowing e.g. double nesting 2018-04-29 16:07:49 +01:00
Tony Garnock-Jones 70b4bc5e74 Makefile 2018-04-29 14:54:28 +01:00
Tony Garnock-Jones 5a3f89ccf5 Tweak .gitignore 2018-04-29 14:54:22 +01:00
Tony Garnock-Jones 8900eccb1e Nested dataspaces 2018-04-29 14:54:14 +01:00
Tony Garnock-Jones 71756d8d40 First stab at #lang infrastructure 2018-04-29 12:22:12 +01:00
Tony Garnock-Jones 9b6fd1418a Refactor tests 2018-04-29 11:55:32 +01:00
Tony Garnock-Jones 45f401e607 Repair rotten pattern tests 2018-04-29 11:30:26 +01:00
Tony Garnock-Jones f2af7cb20b Box-and-client speed test 2018-04-27 23:59:04 +01:00
Tony Garnock-Jones 897c1aec0a Simple test harness 2018-04-27 23:53:31 +01:00
Tony Garnock-Jones 7199e6be64 Cosmetic notes 2018-04-27 18:23:34 +01:00
Tony Garnock-Jones a22062e043 Remove current-dataspace parameter 2018-04-27 18:05:33 +01:00
Tony Garnock-Jones 2c202d46ad Cosmetic notes 2018-04-27 17:36:43 +01:00
Tony Garnock-Jones 7be0ccf32c More robust approach to cleanup of assertions on actor termination.
We now explicitly track *committed* assertions of each actor in a new
field, `actor-cleanup-changes`. Each time a patch action is
*performed*, `actor-cleanup-changes` is updated. When an actor quits,
it enqueues a special new kind of action, a `quit` action.

When a `quit` action is performed, any remaining contents of
`actor-cleanup-changes` are processed in order to fully remove any
leftover assertions. (Leftover assertions will only arise in
exceptional cases: when some stop-script or facet boot-script raises
an uncaught exception.)

As part of this commit, we undo the effect of commit b207a07.
2018-04-27 17:30:26 +01:00
Tony Garnock-Jones 60a6290bc2 New failing test case. This, plus recent commits, calls for a
different strategy for tracking the retractions necessary at actor
termination.
2018-04-27 10:55:21 +01:00
Tony Garnock-Jones 629b4f8509 Cosmetic 2018-04-27 10:54:58 +01:00