Commit Graph

805 Commits

Author SHA1 Message Date
Sam Caldwell 98c5c96356 omit 7gui examples in tests 2020-03-21 09:35:16 -04:00
Sam Caldwell 026e129de7 work on docs 2020-03-20 16:42:27 -04:00
Sam Caldwell a2780484be fixup test 2020-03-11 13:12:16 -04:00
Sam Caldwell 5c8986bddd floating define test 2020-03-10 11:44:25 -04:00
Sam Caldwell 6c79e5cd5c track branching for each kind of effect in match 2020-03-10 11:44:25 -04:00
Sam Caldwell 7ceed8e952 typed flink: replace dataflow in job manager with internal events 2020-03-10 11:44:25 -04:00
Sam Caldwell dca8ea2bad Allow `define`d expressions to have effects 2020-03-10 11:44:25 -04:00
Sam Caldwell b8b5a1747a improve function application error messages 2020-03-10 11:44:24 -04:00
Sam Caldwell c38a47f5e3 TODO: keep track of match branching 2020-03-10 11:44:24 -04:00
Sam Caldwell 480feb961c improve spawn error messages 2020-03-10 11:44:24 -04:00
Sam Caldwell f8c385e31d cleanup 2020-03-10 11:44:24 -04:00
Sam Caldwell dee43c7f19 fix typed `or` 2020-03-10 11:44:24 -04:00
Sam Caldwell 18932662de flink: remove use of dataflow 2020-03-10 11:44:24 -04:00
Sam Caldwell 013ce19e68 flink: replace a lot of dataflow in job manager with internal events 2020-03-10 11:44:23 -04:00
Sam Caldwell f4701a3f70 fix bugs in internal events 2020-03-10 11:44:23 -04:00
Stephen Chang 056d467402 edit info files to enable raco test typed/ 2020-03-10 11:44:23 -04:00
Sam Caldwell f19d2f3296 new job manager role 2020-03-10 11:44:23 -04:00
Sam Caldwell f3e2fcdc64 task manager role 2020-03-10 11:44:23 -04:00
Sam Caldwell 2a95420366 fixup format of task performer spec 2020-03-10 11:44:22 -04:00
Sam Caldwell 7cf0757ca6 stuff 2020-03-10 11:44:22 -04:00
Sam Caldwell 5823cf32c3 typed flink: unify task-state and task-assignment, job and job-finished 2020-03-10 11:44:22 -04:00
Sam Caldwell 18fdcdeff7 untyped flink: use interest as request for jobs 2020-03-10 11:44:22 -04:00
Sam Caldwell 90961e57f8 untyped flink: unify task-assignment and task-state assertions 2020-03-10 11:44:22 -04:00
Sam Caldwell 6f8c9563aa typed flink: streamline ids 2020-03-10 11:44:22 -04:00
Sam Caldwell 14db8ce919 untyped flink: finish streamlining ids, resolve dataflow issue 2020-03-10 11:44:21 -04:00
Sam Caldwell 79277c91d3 untyped flink: work on streamlining ids, demonstrating dataflow issue 2020-03-10 11:44:21 -04:00
Sam Caldwell e3d9f93eca untyped flink: fiddle with race in task manager 2020-03-10 11:44:21 -04:00
Sam Caldwell 5f472b5402 typed flink: associate task runners with a particular task manager 2020-03-10 11:44:21 -04:00
Sam Caldwell 35827c970c add in-range 2020-03-10 11:44:21 -04:00
Sam Caldwell 8bbab5317e typed flink: task runners don't need a status 2020-03-10 11:44:21 -04:00
Sam Caldwell ab15f7306f typed define/dataflow 2020-03-10 11:44:21 -04:00
Sam Caldwell 606dd17e08 associate task runners with a particular task manager 2020-03-10 11:44:21 -04:00
Sam Caldwell 32ebb804fb flink: task runners don't need a status 2020-03-10 11:44:20 -04:00
Sam Caldwell 3459fc8f71 verify request/response property in leader-and-seller 2020-03-10 11:44:20 -04:00
Sam Caldwell 0a5ea2b920 fix bug in leader-and-seller 2020-03-10 11:44:20 -04:00
Sam Caldwell e3d746b817 fiddling with spin 2020-03-10 11:44:20 -04:00
Sam Caldwell ed7c212561 start cleaning up/streamlining flink 2020-03-10 11:44:20 -04:00
Sam Caldwell 4e6b883c17 fix a couple bugs 2020-03-10 11:44:20 -04:00
Sam Caldwell c9c3b9ec82 Label internal events & handlers with actor-unique IDs 2020-03-10 11:44:20 -04:00
Sam Caldwell 9c0c9b3e77 initial take on supporting spawn actions in role graphs 2020-03-10 11:44:19 -04:00
Sam Caldwell 6ee5aa668b utilize define-spawns to clean up 7-GUIS examples 2020-03-10 11:44:19 -04:00
Sam Caldwell ecbfe56163 Modify syndicate's module-begin to capture actions on the RHS of define
Example. consider a procedure that spawns an actor and then returns
some value relevant to communicating to that actor:

(define (spawn-an-actor)
  (define name (gensym))
  (spawn
    (on (asserted (... name ...))
         ...)
     ...)
  name)

And the module top level tries to boot and use this actor with a define:

(define the-name (spawn-an-actor))
(spawn ... use the-name ...)

The new module-begin analyzes (forms that expand to) define-values to
wrap the body with a capture-actor-actions, allowing such spawns to be
detected.
2020-03-10 11:44:19 -04:00
Sam Caldwell 7af6782ea8 7-GUIS port task 7 2020-03-10 11:44:19 -04:00
Sam Caldwell ce9d563d8c 7-GUIS port task 6 2020-03-10 11:44:19 -04:00
Sam Caldwell 9e88cde0eb 7-GUIS port task 5 2020-03-10 11:44:19 -04:00
Sam Caldwell e554c797fb 7-GUIS port task 4 2020-03-10 11:44:19 -04:00
Sam Caldwell 89e42ae987 7-GUIS port task 3 2020-03-10 11:44:19 -04:00
Sam Caldwell 161abab986 7-GUIS port task 2 2020-03-10 11:44:18 -04:00
Sam Caldwell ce0dba8f36 start on racket guis, 7-GUIS task 1 2020-03-10 11:44:18 -04:00
Sam Caldwell 5a5fb74124 consider more potential schedulings of events 2020-03-10 11:44:18 -04:00
Sam Caldwell 9f8469467a internal event business 2020-03-10 11:44:18 -04:00
Sam Caldwell 123124acb2 compile internal events, compresses job manager graph by a lot 2020-03-10 11:44:18 -04:00
Sam Caldwell 7ba1ecf055 remove self loops, things working better 2020-03-10 11:44:18 -04:00
Sam Caldwell 5a19594fa1 fix bug in flink 2020-03-10 11:44:17 -04:00
Sam Caldwell 2a72f63084 detect cycles when compiling internal events 2020-03-10 11:44:17 -04:00
Sam Caldwell 63c36d7010 first take on inlining internal events 2020-03-10 11:44:17 -04:00
Sam Caldwell d4b17154eb rudimentary support for internal events in proto 2020-03-10 11:44:16 -04:00
Sam Caldwell 5da04741f2 add messages to proto 2020-03-10 11:44:16 -04:00
Sam Caldwell 4d6878626c small cleanup 2020-03-10 11:44:16 -04:00
Sam Caldwell 712dbd12c9 reorganize examples 2020-03-10 11:44:16 -04:00
Sam Caldwell 9cdaf768d8 job manager role 2020-03-10 11:44:16 -04:00
Sam Caldwell de88dc3c83 more event constructors in proto 2020-03-10 11:44:16 -04:00
Sam Caldwell 5c6b473b62 replace some dataflow with internal events in typed flink 2020-03-10 11:44:16 -04:00
Sam Caldwell b3cb16192c allow equal? when there's overlap 2020-03-10 11:44:15 -04:00
Sam Caldwell 945256b567 internal events for typed lang 2020-03-10 11:44:15 -04:00
Sam Caldwell cefe70c590 Change type names Know -> Asserted, \negKnow -> Retracted 2020-03-10 11:44:15 -04:00
Sam Caldwell e0d1975e2d (during (know P) O ...) for internal knowledge 2020-03-10 11:44:15 -04:00
Sam Caldwell d8516060c4 Create an actor-internal event system oriented around assertions and
messges.

internal form        ~ external form
(know v)             ~ (assert v)
(on (know p) ...)    ~ (on (asserted p) ...)
(on (forget p) ...)  ~ (on (retracted p) ...)
(realize! v)         ~ (send! v)
(on (realize v) ...) ~ (on (message v) ...)
2020-03-10 11:44:15 -04:00
Sam Caldwell a1ca2372a5 minor printing stuff in examples 2020-03-10 11:44:15 -04:00
Sam Caldwell 426b0899ac subgraph stuff working better 2020-03-10 11:44:15 -04:00
Sam Caldwell 1cd46da9d0 some work on checking/finding subgraphs 2020-03-10 11:44:15 -04:00
Sam Caldwell 1450665dc0 task assigner spec and task manager type 2020-03-10 11:44:14 -04:00
Sam Caldwell 9893f4dea1 provide Branch and Effs types 2020-03-10 11:44:14 -04:00
Sam Caldwell 7dd9700c99 extract some code from verify body 2020-03-10 11:44:14 -04:00
Sam Caldwell a41cee09bf task performer spec and task runner type 2020-03-10 11:44:14 -04:00
Sam Caldwell 0d4f8df3b4 During type abbreviation 2020-03-10 11:44:14 -04:00
Sam Caldwell 116dcefc1a support for dataflow, misc fixes and improvements 2020-03-10 11:44:14 -04:00
Sam Caldwell 9b4f76b0ac more accurate job manager type 2020-03-10 11:44:14 -04:00
Sam Caldwell 989c6af818 add container types to proto 2020-03-10 11:44:13 -04:00
Sam Caldwell d9da970742 print types different 2020-03-10 11:44:13 -04:00
Sam Caldwell 5d922fe030 cleanups and improvements 2020-03-10 11:44:13 -04:00
Sam Caldwell c1190958bd remove stop-when abomination 2020-03-10 11:44:13 -04:00
Sam Caldwell 57d641dcc3 initial support for on start and on stop 2020-03-10 11:44:13 -04:00
Sam Caldwell 397bebe4a3 small cleanup 2020-03-10 11:44:13 -04:00
Sam Caldwell b0ff2e8620 parse quoted turnstile types 2020-03-10 11:44:13 -04:00
Sam Caldwell 6230ed577e tweak how types are printed 2020-03-10 11:44:12 -04:00
Sam Caldwell 7994bfb9c6 cleanup 2020-03-10 11:44:12 -04:00
Sam Caldwell 227768efd8 forgot to add maybe.rkt and either.rkt 2020-03-10 11:44:12 -04:00
Sam Caldwell f20adacfde typed flink working! 2020-03-10 11:44:12 -04:00
Sam Caldwell 67e0eebdc2 priorities for query handlers, on-add, on-remove 2020-03-10 11:44:12 -04:00
Sam Caldwell 7445626d0b client and jobs (not working) 2020-03-10 11:44:12 -04:00
Sam Caldwell 6778417639 map list op 2020-03-10 11:44:12 -04:00
Sam Caldwell b7ec18e52d resolve mutual dependency in flink via dataflow 2020-03-10 11:44:11 -04:00
Sam Caldwell 89ce5dca28 fancify patterns in flink 2020-03-10 11:44:11 -04:00
Sam Caldwell b1d14d8559 fancify the patterns in book-club 2020-03-10 11:44:11 -04:00
Sam Caldwell 7026d6908d Use the communication type (via a turnstile `mode`) when elaborating
patterns in facets
2020-03-10 11:44:11 -04:00
Sam Caldwell 292e16f8b8 clean up patterns in flink 2020-03-10 11:44:11 -04:00
Sam Caldwell 60c58d2b7b elaborate more patterns 2020-03-10 11:44:10 -04:00
Sam Caldwell d91f13bd2c some work towards a better pattern language 2020-03-10 11:44:10 -04:00
Sam Caldwell 5965115611 typed flink getting closer 2020-03-10 11:44:10 -04:00
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