Commit Graph

1240 Commits

Author SHA1 Message Date
Tony Garnock-Jones 85535608fd pattern-expander.rkt 2018-05-04 23:15:09 +01:00
Tony Garnock-Jones 12d4e95ac4 GUI example 2018-05-04 16:57:22 +01:00
Tony Garnock-Jones ff4c4a59bd Cosmetic - extra logging (when uncommented) 2018-05-04 16:56:56 +01:00
Tony Garnock-Jones c77416b727 Repair long-standing error in skeleton-walking. 2018-05-04 16:56:45 +01:00
Tony Garnock-Jones cc54496ac6 Extremely limited support for quasiquoting and quoting in patterns 2018-05-04 16:56:23 +01:00
Tony Garnock-Jones 59e1a09d61 Clock face example 2018-05-04 16:09:12 +01:00
Tony Garnock-Jones 00c6311bfc Quasi-useful debug output 2018-05-04 16:04:42 +01:00
Tony Garnock-Jones d9ca939d60 Restriction-paths: right idea (?), wrong implementation. This time maybe.
Instead of having restriction-paths as an adjunct to a change, they're
more propertly a part of each assertion itself. The new `skeleton.rkt`
keeps an optional restriction-path with each assertion, treating it as
distinct from its underlying assertion. The idea of not signalling
changes in assertions that have a restriction-path mismatch stays.
2018-05-04 15:55:53 +01:00
Tony Garnock-Jones ab75efe7f9 Skip apply-patch! make-work if patch is empty 2018-05-03 22:56:40 +01:00
Tony Garnock-Jones c27ace547d Add the concept of "restriction-path", which limits assertion visibility.
This is used when relaying: because we don't have access to the full
term, but only the projection results, we are inserting various
`(discard)`s. This is the cause of the failure in
`test/core/nesting-confusion.rkt`.

By adding `restriction-path`, we allow the inner dataspace to avoid
showing a reconstructed term to endpoints that might be able to
observe the reconstructed parts.

An alternative implementation approach is to generalize patterns in
the inner relay actor, translating all `(discard)`s into captures,
which would give us all the relevant terms that we need. The way I've
chosen to go (or at least, to try out) allows us to potentially keep
the "efficient" idea of just transmitting pattern-bound values across
some network link connecting dataspaces. The alternative would require
transmission of the full assertions, eliding no irrelevant detail.
2018-05-03 22:09:33 +01:00
Tony Garnock-Jones 8acfaab8f8 for/bag and for/bag/count 2018-05-03 22:09:13 +01:00
Tony Garnock-Jones 58695351d9 Make test-implementation language expose all of `racket` rather than just `racket/base`, for convenience. 2018-05-03 22:08:52 +01:00
Tony Garnock-Jones b95dd5142a Reuse apply-patch for initial-assertions too 2018-05-03 20:09:34 +01:00
Tony Garnock-Jones afaebdf69c Factor out assertion structure definitions 2018-05-03 16:14:30 +01:00
Tony Garnock-Jones 7079a14d5a Notes on install and test 2018-05-03 15:21:33 +01:00
Tony Garnock-Jones a4b8294734 README.md 2018-05-03 15:06:53 +01:00
Tony Garnock-Jones 83b088e5ee Merge branch 'master' into imperative 2018-05-03 14:51:39 +01:00
Tony Garnock-Jones 5631b24904 Add second, non-dataspace, test case to illustrate correct behaviour 2018-05-02 23:36:03 +01:00
Tony Garnock-Jones 835528e855 New (failing) test case re: the approach to relaying 2018-05-02 18:23:02 +01:00
Tony Garnock-Jones 496682f550 Correct printing of test procedures 2018-05-02 18:20:33 +01:00
Tony Garnock-Jones e7773e918d Add `bag-empty?` 2018-05-02 18:20:24 +01:00
Tony Garnock-Jones 81e5cfbec4 Ensure (??) that relays' assertions can't outlive them 2018-05-02 18:10:52 +01:00
Tony Garnock-Jones 0b0615ec46 Notes on eventual improvements to dataspace nesting 2018-05-02 13:19:18 +01:00
Sam Caldwell 7d9f505fc6
Merge pull request #34 from tonyg/module-begin
Re-finagle module-begin to a more incremental style
2018-05-01 18:13:20 -04:00
Tony Garnock-Jones f9af2de438 Actually-useful instantaneous frame rate measurement 2018-05-01 22:40:12 +01:00
Tony Garnock-Jones 67279c9da7 Handy logging for diagnosing problems 2018-05-01 22:39:50 +01:00
Tony Garnock-Jones d3a7179907 Eliminate a (mostly harmless) source of #f current-facet. 2018-05-01 22:39:26 +01:00
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