Commit Graph

805 Commits

Author SHA1 Message Date
Sam Caldwell adc0819be0 limited support for effect polymorphism 2020-03-10 11:44:09 -04:00
Sam Caldwell 49b34268ad more flink 2020-03-10 11:44:09 -04:00
Sam Caldwell d5a8d27ae3 progress on flink 2020-03-10 11:44:09 -04:00
Sam Caldwell 4e335f8049 first take on match-define-like form 2020-03-10 11:44:09 -04:00
Sam Caldwell d236d99d47 stop-when derived form 2020-03-10 11:44:09 -04:00
Sam Caldwell a0a30c719a positive? primitive 2020-03-10 11:44:09 -04:00
Sam Caldwell cf2162797a for/first 2020-03-10 11:44:09 -04:00
Sam Caldwell 7b9595a22a zero? primitive 2020-03-10 11:44:09 -04:00
Sam Caldwell 667231d3e8 examples/flink.rkt: work on job manager and utilities 2020-03-10 11:44:08 -04:00
Sam Caldwell 6b58c20832 Use a mutable, compile-time table for type metadata 2020-03-10 11:44:08 -04:00
Sam Caldwell b9e99fc8af Make inference slightly more lenient wrt unions
some tests not working because of syntax-property failure
2020-03-10 11:44:08 -04:00
Sam Caldwell 45e7ea609d add error form 2020-03-10 11:44:08 -04:00
Sam Caldwell f6976c0281 improve handling of type variables 2020-03-10 11:44:08 -04:00
Sam Caldwell 0752089101 tweak how pattern types are handled 2020-03-10 11:44:08 -04:00
Sam Caldwell ad4b94422d flink-support 2020-03-10 11:44:08 -04:00
Sam Caldwell b56319042c query-hash 2020-03-10 11:44:07 -04:00
Sam Caldwell f4f517cd02 require&provide maybe,either 2020-03-10 11:44:07 -04:00
Sam Caldwell c9378d057d move patterns to core expressions 2020-03-10 11:44:07 -04:00
Sam Caldwell 9cb884a490 more primitive operations 2020-03-10 11:44:07 -04:00
Sam Caldwell e7f792e624 more hash operations 2020-03-10 11:44:07 -04:00
Sam Caldwell f1be0fdfac more list operations 2020-03-10 11:44:06 -04:00
Sam Caldwell 93e1fea202 typed-flink: task manager 2020-03-10 11:44:06 -04:00
Sam Caldwell 16ce86c6c9 make sure begin always has a definition context 2020-03-10 11:44:06 -04:00
Sam Caldwell c097e218d0 more set operations 2020-03-10 11:44:06 -04:00
Sam Caldwell 12fd4ad756 more hash functions 2020-03-10 11:44:06 -04:00
Sam Caldwell f460011a5d typed flink - task runner 2020-03-10 11:44:06 -04:00
Sam Caldwell 51e26efda6 fix output type for actors without interests 2020-03-10 11:44:06 -04:00
Sam Caldwell 122f7629c3 fix argument order bug in hash-update 2020-03-10 11:44:05 -04:00
Sam Caldwell c96725b8e3 typed flink data definitions 2020-03-10 11:44:05 -04:00
Sam Caldwell 1feab5d174 assertion-struct macro 2020-03-10 11:44:05 -04:00
Sam Caldwell 530c17ff32 split out core-expressions with #%app, which is now more explicit 2020-03-10 11:44:05 -04:00
Sam Caldwell ed01517c8c Improve scoping structure of for-clauses 2020-03-10 11:44:05 -04:00
Sam Caldwell 10ae47c26c make list operations polymorphic functions 2020-03-10 11:44:05 -04:00
Sam Caldwell 6f52c7fc61 fix ty-var bug 2020-03-10 11:44:05 -04:00
Sam Caldwell 9d5453ff5b first take on local inference 2020-03-10 11:44:05 -04:00
Sam Caldwell f00ec81e48 move definition of primitive base types 2020-03-10 11:44:04 -04:00
Sam Caldwell b1cca8f377 subtyping for effect-free functions 2020-03-10 11:44:04 -04:00
Sam Caldwell cf17ae28a5 fixup fold in book club 2020-03-10 11:44:04 -04:00
Sam Caldwell f6cd87394e start on for loops 2020-03-10 11:44:04 -04:00
Sam Caldwell 39d81686fd hash tables 2020-03-10 11:44:04 -04:00
Sam Caldwell 2ddafb240a add sequences 2020-03-10 11:44:04 -04:00
Sam Caldwell e88b64f5c1 allow polymorphic function definitions 2020-03-10 11:44:04 -04:00
Sam Caldwell 82705763b4 type abstractions 2020-03-10 11:44:04 -04:00
Sam Caldwell 581319eacb split out primitives 2020-03-10 11:44:03 -04:00
Sam Caldwell 3c800a92db split out files 2020-03-10 11:44:03 -04:00
Sam Caldwell 29c446df39 Attach useful metadata as syntax properties to some types
In order to make defining judgments like subytping and intersection
more extensible, introduce a form for defining type constructors that
describes:
  - how it behaves wrt intersction (product-like or container-like)
  - variances for subtyping
  - the type constructor transformer, for making new instances

This eliminates a lot of very repetitive code, and should make things
much more extensible
2020-03-10 11:44:03 -04:00
Sam Caldwell 006e5e0bf5 simplify implementation of overlaps? 2020-03-10 11:44:03 -04:00
Sam Caldwell f9dcad855e examples/flink: implement task delegation roles in terms of abstract
templates
2020-03-10 11:44:03 -04:00
Sam Caldwell fa7af3444c look more at book club roles 2020-03-10 11:44:03 -04:00
Sam Caldwell 58c1b52ac4 More leader-related role finangling 2020-03-10 11:44:03 -04:00
Sam Caldwell d5ac65007e Keep track of branches for role effects in turnstile lang 2020-03-10 11:44:02 -04:00
Sam Caldwell 572be6b45d look into leader impl simulating spec a bit 2020-03-10 11:44:02 -04:00
Sam Caldwell 5752c9299c some more simulation tests 2020-03-10 11:44:02 -04:00
Sam Caldwell 7dfc4a93da leader-spec simulates itself! 2020-03-10 11:44:02 -04:00
Sam Caldwell ff81748848 simplest simulation example passes 2020-03-10 11:44:02 -04:00
Sam Caldwell f0c52f6eaa subtyping 2020-03-10 11:44:02 -04:00
Sam Caldwell e141abd678 remember initial state when compiling 2020-03-10 11:44:02 -04:00
Sam Caldwell d285de5bb2 small improvements 2020-03-10 11:44:01 -04:00
Sam Caldwell 04f4acbda3 incorporate branching! 2020-03-10 11:44:01 -04:00
Sam Caldwell abce2d6046 More on facet states, including graphviz view 2020-03-10 11:44:01 -04:00
Sam Caldwell d35495029b prototyping interpretation of roles as state machines 2020-03-10 11:44:01 -04:00
Tony Garnock-Jones 38f6351d43 Cosmetic (sort-lines) [2/2] 2020-01-17 14:15:20 +01:00
Tony Garnock-Jones cd98c3048d Cosmetic [1/2] 2020-01-17 14:14:55 +01:00
Tony Garnock-Jones d1fbe26bc1 Fix Racket package deps 2020-01-17 14:14:35 +01:00
Sam Caldwell a3380ea403 fixups for package installation 2019-08-26 11:08:30 -04:00
Sam Caldwell 3957f031c1 declare turnstile deps 2019-08-23 10:05:11 -04:00
Sam Caldwell f85203ac73 examples/flink: small cleanups 2019-03-05 10:53:30 -05:00
Sam Caldwell 0da903e438 examples/flink: merge task assignment and delegation protocols 2019-02-26 15:48:26 -05:00
Sam Caldwell 22bd143025 examples/flink: rename map and reduce structs for slightly less overloading on task 2019-02-26 13:34:12 -05:00
Sam Caldwell a6d6ceaa7c examples/flink: tidy up a bit 2019-02-26 12:13:37 -05:00
Sam Caldwell abc8669b74 examples/flink: describe the protocol 2019-02-26 10:50:00 -05:00
Sam Caldwell a98ba7baab examples/flink: avoid asking the task manager to do more than it is
capable of
2019-02-21 15:10:42 -05:00
Sam Caldwell 702c53f7d1 examples/flink: Split lines to words in job runner; trim punctuation on words 2019-02-18 16:03:27 -05:00
Sam Caldwell bb028b1af8 examples/flink: create a job from a file
Doesn't handle punctuation properly
2019-02-18 15:45:10 -05:00
Sam Caldwell fb778ab1ee examples/flink: create tasks & jobs from an input string rather than
manually
2019-02-18 15:21:24 -05:00
Sam Caldwell 5cb0462ec4 examples: adapt Jonathan's flink exceprt to syndicate 2019-02-13 15:53:04 -05:00
Sam Caldwell 0897036557 Don't use syndicate's action-collecting module-begin
Implicitly starting a dataspace with top-level actions is a hole for
the type system, which needs to know the type of possible assertions.

Instead, provide `run-ground-dataspace` for kicking off the program.
2019-01-25 11:16:07 -05:00
Sam Caldwell d363bd0c46 typed chat server example 2019-01-25 11:16:07 -05:00
Sam Caldwell 0c37b4e0b7 tcp driver shim module 2019-01-25 11:16:07 -05:00
Sam Caldwell c7cc84302e Instead of attaching syntax properties during expansion, generate code
that does so

This resolves the "namespace mismatch: cannot locate module instance"
error.
2019-01-25 11:16:07 -05:00
Sam Caldwell 3a06e2324c Useful primitives: symbols, bytestrings 2019-01-25 11:16:06 -05:00
Sam Caldwell 36420274cb send newlines in tcp2 chat client 2019-01-25 11:16:06 -05:00
Sam Caldwell c7d78159e3 require/typed - no contracts 2019-01-25 11:16:06 -05:00
Sam Caldwell 7c3d87eeb2 require-struct 2019-01-25 11:16:06 -05:00
Sam Caldwell 221a550aed rename effect keys to not break with updated turnstile 2019-01-25 11:16:06 -05:00
Sam Caldwell d8df2beb3e small cleanup 2019-01-25 11:16:06 -05:00
Sam Caldwell 817e292760 Revert "begin splitting up roles.rkt"
This reverts commit da1263dc97.
2019-01-25 11:16:05 -05:00
Sam Caldwell 7117816a74 Revert "more splitting up"
This reverts commit 49e7ba1b0e.
2019-01-25 11:16:05 -05:00
Sam Caldwell 1b0f41f465 more splitting up 2019-01-25 11:16:05 -05:00
Sam Caldwell c11d719f20 begin splitting up roles.rkt 2019-01-25 11:16:05 -05:00
Sam Caldwell 70aafc8bdf re-finangle `define/intermediate` to allow require & provides
Needed to change from `make-rename-transformer` to
`make-variable-like-transformer` because apparently rename transformers
are treated differently when referred to from another model, hiding the
syntax properties on the target.
2019-01-25 11:16:05 -05:00
Sam Caldwell dcc6bbcbe7 file system roles w messages 2019-01-25 11:16:05 -05:00
Sam Caldwell 1b7d5a2330 cell example 2019-01-25 11:16:04 -05:00
Sam Caldwell 1b5cf6d772 messages 2019-01-25 11:16:04 -05:00
Sam Caldwell 57934b389f fix making defn context with #f #f 2019-01-25 11:16:04 -05:00
Sam Caldwell 46379858c2 stuff 2019-01-25 11:16:04 -05:00
Sam Caldwell 139e0bcac5 book club 2019-01-25 11:16:04 -05:00
Sam Caldwell 86330bde03 dataflow 2019-01-25 11:16:04 -05:00
Sam Caldwell 0f2469c364 query set 2019-01-25 11:16:04 -05:00
Sam Caldwell 144e20bdde query-value 2019-01-25 11:16:03 -05:00
Sam Caldwell 5104677fc6 define functions differently 2019-01-25 11:16:03 -05:00
Sam Caldwell cabb4e2e7c local define 2019-01-25 11:16:03 -05:00
Sam Caldwell d7fc251bc8 walk/bind in begin as well 2019-01-25 11:16:03 -05:00
Sam Caldwell 94823854c0 code reuse! 2019-01-25 11:16:03 -05:00
Sam Caldwell a9665d93d0 re-factor field shenanigans 2019-01-25 11:16:03 -05:00
Sam Caldwell ad2e337268 free standing fields! 2019-01-25 11:16:02 -05:00
Sam Caldwell 00bf7d2364 during 2019-01-25 11:16:02 -05:00
Sam Caldwell 632c04139b sets 2019-01-25 11:16:02 -05:00
Sam Caldwell 6d2d14459c lists 2019-01-25 11:16:02 -05:00
Sam Caldwell 03285824c7 two buyer example 2019-01-25 11:16:02 -05:00
Sam Caldwell ddff1c800c on start and stop, spawned actors 2019-01-25 11:16:02 -05:00
Sam Caldwell c66b62cf46 simple example 2019-01-25 11:16:01 -05:00
Sam Caldwell e7e8f5e174 fix pattern compilation 2019-01-25 11:16:01 -05:00
Sam Caldwell 938d3c519d fix bugs, null-ary stops 2019-01-25 11:16:01 -05:00
Sam Caldwell 35b3811462 cond, match 2019-01-25 11:16:01 -05:00
Sam Caldwell af91b669b7 lambdas 2019-01-25 11:16:01 -05:00
Sam Caldwell 5130197e27 utilities 2019-01-25 11:16:01 -05:00
Sam Caldwell 3705d95856 stop statement 2019-01-25 11:16:00 -05:00
Sam Caldwell 33af13016b dataspace form 2019-01-25 11:16:00 -05:00
Sam Caldwell 1a4fc4dd4f check input and output safety in spawn rule 2019-01-25 11:16:00 -05:00
Sam Caldwell e79237b1d3 small adjustment to Role type 2019-01-25 11:16:00 -05:00
Sam Caldwell 4bd8d20b0b refactor effect checking 2019-01-25 11:16:00 -05:00
Sam Caldwell 5803b8f9b0 refactor how effects are checked & propagated 2019-01-25 11:16:00 -05:00
Sam Caldwell 5bd391dd77 rename facet effect key from e to f 2019-01-25 11:16:00 -05:00
Sam Caldwell 71c2846a93 roles for bank account facets 2019-01-25 11:15:59 -05:00
Sam Caldwell 29e09ff3ef start on facet role types 2019-01-25 11:15:59 -05:00
Sam Caldwell 1e66554b8e note on performance 2019-01-25 11:15:59 -05:00
Sam Caldwell 8808b5aca9 typed book club 2019-01-25 11:15:59 -05:00
Sam Caldwell 5124b8e715 parse action types in transition,quit to allow empty lists 2019-01-25 11:15:59 -05:00
Sam Caldwell ceb0c60d20 start on typed book club 2019-01-25 11:15:58 -05:00
Sam Caldwell fb675a850c add tuple and patch utilities and set datatype 2019-01-25 11:15:58 -05:00
Sam Caldwell 46a833a66e typed bank account 2019-01-25 11:15:58 -05:00
Sam Caldwell 5934c1626f typed box and client 2019-01-25 11:15:58 -05:00
Sam Caldwell 9a3d921de3 starter for typed/syndicate/core 2019-01-25 11:15:58 -05:00
Sam Caldwell cff784384a add constructor types 2019-01-25 11:15:58 -05:00
Sam Caldwell b1c000e12e more wip on TS 2019-01-25 11:15:58 -05:00
Sam Caldwell 82e5c8504c wip on typed syndicate 2019-01-25 11:15:57 -05:00
Tony Garnock-Jones 47094c11c4 Responsibility transfer during outbound websocket connection establishment 2018-08-14 17:38:36 +01:00
Tony Garnock-Jones cb351eee09 Repair current-ground-dataspace initialization, to allow override in e.g. graphical programs 2018-06-01 09:12:39 +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 f64ad8389a Update example-during-criterion-snapshotting.rkt 2018-04-29 21:48:49 +01:00
Tony Garnock-Jones 1fa5167e20 Fix a design flaw in Syndicate-HLL for syndicate/rkt.
If:
 - a field is used in an assertion of interest in facet A
 - and that field changes
 - to a value that causes the assertion of interest to overlap
   with some facet B's assertion of interest
 - and an assertion matching that interest was already known to the actor,
Then:
 - previously, facet A would not be informed of the matching assertion
 - but now, it is informed of the matching assertion.

This more or less only affects "on asserted" endpoints.

The change here should be written up as an erratum to chapter 5 in my
dissertation. Also, syndicate/js needs to be checked for the bug and
probably fixed in an analogous way.
2018-03-27 21:58:57 +13:00
Tony Garnock-Jones 55e1f09484 New "bug" (?) 2018-03-22 13:49:16 +13:00
Tony Garnock-Jones af150712e0 example-memoized.rkt 2018-03-06 17:35:40 +00:00
Tony Garnock-Jones 57a40e9576 Asynchronously send UDP packets.
Switch from synchronous to asynchronous UDP transmission, in case DNS
resolution takes a long time or fails. Specifically, in case of failure,
previously the UDP actor would crash, whereas now the packet is just
"dropped".
2018-03-06 11:12:57 +00:00
Tony Garnock-Jones 1ab4f0f525 Alternate approach to caching 2017-12-06 09:13:28 +00:00
Tony Garnock-Jones f11f4fd054 tcp-relay2.rkt 2017-12-05 17:38:49 +00:00
Tony Garnock-Jones eb44003317 New examples 2017-12-05 17:32:12 +00:00
Tony Garnock-Jones eb564fdb7c More general tcp-connect error catching. 2017-12-05 17:22:28 +00:00
Tony Garnock-Jones c9ec9f6be9 Special printer for seals. Fixes #27. 2017-12-05 17:22:13 +00:00
Tony Garnock-Jones 75093d0e1a Fullscreen big-bang 2017-11-25 12:03:32 -05:00
Tony Garnock-Jones 53e26b08a1 Many improvements to the netstack TCP implementation.
- New timestate `on-timeout` complementing `stop-when-timeout`
 - IP layer avoids spurious reordering
 - Demo HTTP server sends 4kB responses, for testing

 - TCP now has something closer to proper sliding-window behavior
 - TCP RTT estimator
 - TCP now uses timestate driver rather than raw timer driver
 - Many small TCP bugs found and fixed
2017-11-13 20:02:07 +00:00
Sam Tobin-Hochstadt 87495bdc37 Fix missing dependency. 2017-11-12 14:04:36 +00:00
Tony Garnock-Jones 710e75dffa cleanup.rkt 2017-10-31 17:00:09 +00:00
Tony Garnock-Jones d51a513f8b add1-simple.rkt 2017-10-21 14:56:46 +01:00
Tony Garnock-Jones bf0eb16643 syndicate-render-msd: --number, --no-number, --number-gap 2017-10-21 14:55:28 +01:00
Tony Garnock-Jones 8999b8446d Use tcp-in-line in chat-tcp2.rkt 2017-10-21 14:54:53 +01:00
Tony Garnock-Jones fa82634868 ceu-leds.rkt 2017-10-20 16:25:16 +01:00
Tony Garnock-Jones 45eee62fc2 chat-bot.rkt 2017-10-20 11:54:04 +01:00
Tony Garnock-Jones 5904a2f956 Tweak chat-tcp2.rkt 2017-10-19 17:12:01 +01:00
Tony Garnock-Jones 32d1274a8d Expose field-ref/field-set!, for the f-to-c examples I committed just previously 2017-10-17 21:21:58 +01:00
Tony Garnock-Jones 18b3ab0d97 Two equations are better than one blob 2017-10-17 21:21:27 +01:00
Tony Garnock-Jones fc0e900485 New variations on f-to-c 2017-10-17 18:49:26 +01:00
Tony Garnock-Jones 0526364698 web-request-send! 2017-10-13 13:52:45 +01:00
Tony Garnock-Jones 70a56e6457 Allow stop-current-facet to take scripts to execute, like stop-facet 2017-10-12 13:59:11 +01:00
Tony Garnock-Jones 22998de0dc tcp2 line-reader 2017-10-11 22:22:29 +01:00
Tony Garnock-Jones 801470ebaa tcp2 2017-10-11 14:45:54 +01:00
Tony Garnock-Jones 66e2e8b1a7 Fix race condition (!) in timer driver 2017-10-03 10:49:48 +01:00
Tony Garnock-Jones 14f1cbd4fa Remove obsolete call to current-inexact-milliseconds 2017-10-03 10:08:44 +01:00
Tony Garnock-Jones 275b60310f Positively assert detected failures during continuous interest 2017-10-02 14:31:58 +01:00
Tony Garnock-Jones ca0de7d52f running-total.rkt 2017-10-01 15:27:58 +01:00
Tony Garnock-Jones 16bd0155cc Terminal-based IRC client 2017-10-01 11:08:46 +01:00
Tony Garnock-Jones eb07be548e Bug fix: retract names on part 2017-10-01 11:08:36 +01:00
Tony Garnock-Jones 5254feb4de rpc-with-error.rkt 2017-09-30 21:24:43 +01:00
Tony Garnock-Jones db333a266f Tweaks to udp-echo.rkt 2017-09-29 17:34:40 +01:00
Tony Garnock-Jones d96477b9db udp-echo.rkt 2017-09-29 17:23:07 +01:00
Tony Garnock-Jones 0599f974b9 all-pairs-shortest-paths3.rkt 2017-09-29 15:43:02 +01:00
Tony Garnock-Jones 4f52ebf108 Simplify make.rkt slightly 2017-09-29 13:13:57 +01:00
Tony Garnock-Jones fa257a1d16 Avoid accidental n^2 in filesystem driver; make.rkt example 2017-09-28 19:28:38 +01:00
Tony Garnock-Jones 7a4d528dc0 Another timestate example 2017-09-28 17:41:17 +01:00
Tony Garnock-Jones 4a51141500 Simplify timestate driver 2017-09-28 17:07:32 +01:00
Tony Garnock-Jones 51ab2921c2 New examples 2017-09-28 16:26:01 +01:00
Tony Garnock-Jones e41290c509 simple-cross-layer.rkt 2017-09-25 23:56:03 +01:00
Tony Garnock-Jones 6c4ae38499 Make HLL `dataspace` no longer automatically `quit-dataspace`. Fixes #20. 2017-09-25 23:52:29 +01:00
Tony Garnock-Jones 903ed5deaa Omit empty patches in render-msd 2017-09-18 16:14:22 +01:00
Tony Garnock-Jones 96331e0cfd More flip-flop tweaks 2017-09-15 21:46:39 +01:00
Tony Garnock-Jones e124983e05 Print differently in flip-flop 2017-09-15 21:45:54 +01:00
Tony Garnock-Jones a82b428f44 racket/syndicate/examples/actor/flip-flop.rkt 2017-09-15 20:34:16 +01:00
Tony Garnock-Jones 516f6a5cd2 message-struct and assertion-struct 2017-09-13 19:08:01 +01:00
Tony Garnock-Jones 6a436f4c12 Fiddle with spacing of MSD renders 2017-09-03 11:44:21 +01:00
Tony Garnock-Jones 5ce1cec2ea Better comments. 2017-08-27 08:18:11 -04:00
Tony Garnock-Jones d0e803ac41 Update renders 2017-08-27 07:50:17 -04:00
Tony Garnock-Jones 0acd504d05 Demonstrate the general insufficiency of the approach of commit 2a0197b 2017-08-27 07:50:09 -04:00
Tony Garnock-Jones e0dc583f51 Improve MSD rendering 2017-08-27 07:46:01 -04:00
Tony Garnock-Jones 2a0197b711 Fix responsibility-handoff for TCP listener.
Similar problems likely still exist elsewhere that the LLL
demand-matcher is used.
2017-08-22 16:53:57 -04:00
Tony Garnock-Jones 930e4270b4 Better defaults; print defaults accurately 2017-08-22 16:44:07 -04:00
Tony Garnock-Jones 88d324929d Command-line tool, syndicate-render-msd 2017-08-14 17:20:36 -04:00
Tony Garnock-Jones 8cbabafbab Fix #21, long-standing mismatch in assumptions in LLL demand-matcher.
The LLL demand-matcher has two pieces: a `default-task-supervisor`
which does the work of figuring out what to do for a given change in
an instance of demand, and a driver which computes demand instances
and calls `default-task-supervisor` for each.

An `actions` accumulator is threaded through the
`default-task-supervisor` calls. However, the driver code mistakenly
believed that the result of `default-task-supervisor` calls was a
collection of fresh actions only, and therefore consed together the
previous collection of actions with the "new" ones. Because the
`default-task-supervisor` was returning an unmodified accumulator from
time to time, any actions in the accumulator across a call to
`default-task-supervisor` would end up duplicated.

This change favours the thread-the-accumulator-through perspective,
and changes the way the driver uses `new-actions` to match.
2017-08-14 17:17:49 -04:00
Tony Garnock-Jones cb3eee64dc Avoid serialization problems for exceptions 2017-08-13 22:40:28 -04:00
Tony Garnock-Jones b2e2674f44 Support opening/closing the MSD trace file with SIGUSR1 2017-08-13 22:14:45 -04:00
Tony Garnock-Jones 3db51ffda5 Track quits differently 2017-08-13 22:13:44 -04:00
Tony Garnock-Jones fdcd9b9388 Remove unused commented-out code 2017-08-13 20:52:52 -04:00
Tony Garnock-Jones e2d1ae853c Avoid (cdr '()) for patches from drivers - for msd.rkt this time 2017-08-13 20:52:29 -04:00
Tony Garnock-Jones af30c19ee0 Remove unused debug 2017-08-13 20:47:47 -04:00
Tony Garnock-Jones f3b5fd6cd1 Avoid (cdr '()) for patches from drivers 2017-08-13 20:47:40 -04:00
Tony Garnock-Jones 6728fcf10d Extra knobs 2017-08-13 20:08:09 -04:00
Tony Garnock-Jones 09d0fb620d Much improved tracing 2017-08-13 19:58:48 -04:00
Tony Garnock-Jones 84ec153a1e Extract utilities for tracing 2017-08-12 00:40:10 -04:00
Tony Garnock-Jones 4efe18bfe0 Trace action production as well as interpretation 2017-08-12 00:08:09 -04:00
Tony Garnock-Jones 9009fb5ec7 Stay rational 2017-08-10 17:40:15 -04:00
Tony Garnock-Jones 40961e7893 f-to-c3.rkt 2017-08-10 17:08:31 -04:00
Tony Garnock-Jones b3a745dbcb Make #lang syndicate equivalent to #lang syndicate/actor. Fixes #17. 2017-08-10 15:17:28 -04:00
Tony Garnock-Jones c9996d53ae Avoid premature termination of parent facet.
Scenario:
 - In script of facet X, (react (stop-when E (react ...)))
 - This creates facet Y, child of X.
 - Facet X has no endpoints, only its child facet Y.
 - When the stop-when fires, without this patch, facet X
   will be terminated because the *inner* react above hasn't executed yet.
 - With this patch, the check for a useless X is done after the stop-when
   has had a chance to run; and so X will survive for now.
2017-08-10 15:08:48 -04:00
Tony Garnock-Jones 837ab77002 #lang syndicate -> #lang syndicate/core; first half of fix for #17. 2017-08-10 15:04:45 -04:00
Tony Garnock-Jones 6b3f8d920a Key debouncer 2017-08-07 13:41:01 -04:00
Tony Garnock-Jones 61b683fc94 double-click "debouncing" example 2017-08-07 13:04:10 -04:00
Tony Garnock-Jones 4f8bc6e5af Ugh, forgot to git-add this 2017-08-07 11:21:09 -04:00
Tony Garnock-Jones 4f21e9ab46 Elide spurious detail in patch actions and events 2017-08-05 19:38:35 -04:00
Tony Garnock-Jones 5bff630547 Support t and T SYNDICATE_TRACE flags, for control over state display 2017-08-05 19:38:17 -04:00
Tony Garnock-Jones f83f286e28 Name the line-reader-factory 2017-08-05 19:37:34 -04:00
Tony Garnock-Jones 11de40ce98 Change spawn processing to include initial-assertions 2017-08-05 19:36:40 -04:00
Tony Garnock-Jones f9a477832a Avoid identifier clash 2017-08-05 19:36:40 -04:00
Tony Garnock-Jones 75aee96e1a query-count 2017-08-01 17:45:19 -04:00
Tony Garnock-Jones 6b2ee53fa8 Give line-reader instances a debug-name 2017-08-01 09:30:53 -04:00
Sam Caldwell 5f621b098e trie-step-wild 2017-07-31 11:39:50 -04:00
Tony Garnock-Jones 81a0351828 Cope with potential interference in query-sets (etc) from outside the official event handlers 2017-07-30 18:48:33 -04:00
Tony Garnock-Jones 6e399dd1dd Experimental Racket GUI driver. 2017-07-29 23:17:55 -04:00
Tony Garnock-Jones 28f6b8acf8 Finally committing the f-to-c examples of Sep 23, 2016 2017-07-27 10:40:11 -04:00
Tony Garnock-Jones a090ed8330 *gc-priority* has been unused since factoring away cross-facet restrictions on fields 2017-07-12 14:25:42 -04:00
Tony Garnock-Jones 8a2ace112b Handle additional cases: children present, and obsolescent parent. Additional fix for #18 2017-07-12 11:38:27 -04:00
Tony Garnock-Jones f6c145b4a7 Fix poor on-stop/post-stop separation. Additional fix for #23. 2017-07-12 11:36:20 -04:00
Tony Garnock-Jones 46e5922dc8 Stop a new facet with no endpoints. Fixes #18. 2017-07-12 11:12:10 -04:00
Tony Garnock-Jones 6db1e67a7e Beginnings of test case for termination order 2017-07-12 11:03:23 -04:00
Tony Garnock-Jones 76c1a5b347 Tentative repair to startup/shutdown ordering problems 2017-07-12 11:02:26 -04:00
Tony Garnock-Jones 990ad4ca72 Pretty-print struct process instances 2017-07-12 10:29:26 -04:00
Tony Garnock-Jones 3073d8b614 Avoid some stop-when/rising-edge/flag combinations, and some rising-edge uses generally 2017-07-05 07:13:36 -04:00
Tony Garnock-Jones 37cee0c937 (stop-current-facet) 2017-07-05 06:28:06 -04:00
Tony Garnock-Jones ac5c5d2e5f First steps toward correct facet-termination.
- Facet IDs are now lists so arbitrary ancestors can be computed with
   repeated application of cdr

 - `stop-facet` is new and untested, other than that `stop-when` is
   refactored to use `stop-facet`

 - *all* matching stop-when instances run now; the limitation that
    exactly one instance should match is lifted.

 - roughly, (stop-when E X ...) === (on E (stop (current-facet-id) X ...))

Remaining to be done: fix `terminate-facet!` to do the right things in
the right order.
2017-07-04 22:03:32 -04:00
Tony Garnock-Jones 1fdd62d56d Remove enforcement of field scoping rules dating back to separate-actor implementation of HLL 2017-07-04 16:31:46 -04:00
Tony Garnock-Jones 46fd5e2b92 Remove/unprovide a few unneeded utilities from patch.rkt 2017-06-23 17:57:35 -04:00
Tony Garnock-Jones 9b54069ecd chat-multiroom-topic-persist.rkt 2017-05-12 19:21:41 -04:00
Tony Garnock-Jones 42742fe8ac chat-multiroom-topic.rkt 2017-05-12 18:55:32 -04:00
Tony Garnock-Jones 966cd2ed17 Comment 2017-05-12 17:14:18 -04:00
Tony Garnock-Jones 4be0a8cb59 chat-multiroom.rkt 2017-05-12 15:45:38 -04:00
Tony Garnock-Jones b9dfd79f34 example-bug-rising-edge-true.rkt 2017-05-04 09:08:47 -04:00
Sam Caldwell 6448188e82 Create test harness & lang for contrasting big & little actor langs 2017-04-20 13:50:01 -04:00
Tony Garnock-Jones 425a5abac3 Default to empty-string to avoid crash when header entirely absent 2017-03-25 15:19:21 -04:00
Sam Caldwell d4f95d3a7b Allow creation of facets at the parent level when shutting down a facet
Behavior is fairly different from big implementation
2017-03-17 13:50:33 -04:00
Sam Caldwell 460d72d69e Run new facets with current knowledge 2017-03-17 13:50:33 -04:00