Commit Graph

607 Commits

Author SHA1 Message Date
Tony Garnock-Jones 5bce99f7fa Publish
- @syndicate-lang/compiler@0.10.1
 - @syndicate-lang/html@0.10.1
 - @syndicate-lang/syndicatec@0.10.1
 - @syndicate-lang/timer@0.10.1
 - @syndicate-lang/ts-plugin@0.10.1
 - @syndicate-lang/tsc@0.10.1
2021-12-11 17:07:02 +01:00
Tony Garnock-Jones 9c8436af1f Repair silly mistake in codegen 2021-12-11 17:06:50 +01:00
Tony Garnock-Jones 89d340cfc8 Publish
- @syndicate-lang/compiler@0.10.0
 - @syndicate-lang/core@0.10.0
 - @syndicate-lang/html@0.10.0
 - @syndicate-lang/syndicatec@0.10.0
 - @syndicate-lang/timer@0.10.0
 - @syndicate-lang/ts-plugin@0.10.0
 - @syndicate-lang/tsc@0.10.0
2021-12-11 17:03:07 +01:00
Tony Garnock-Jones a8e542a394 Bring the flappy-bird example up to date 2021-12-11 16:59:38 +01:00
Tony Garnock-Jones a3484d4a07 Repair paths in example HTML 2021-12-11 16:56:45 +01:00
Tony Garnock-Jones 672be25211 Autolink during...spawn 2021-12-11 16:54:47 +01:00
Tony Garnock-Jones 666a3daac3 More or less cosmetic 2021-12-11 16:54:21 +01:00
Tony Garnock-Jones 92fa548109 Add necessary preventInertCheck calls in the DOM driver 2021-12-11 16:51:02 +01:00
Tony Garnock-Jones c9272ddcc9 Repair typo 2021-12-11 16:49:24 +01:00
Tony Garnock-Jones 3edb680c19 Improve preprocessor error reporting 2021-12-11 16:49:12 +01:00
Tony Garnock-Jones 8888ac3fe9 Dataflow blocks should contribute to facet liveness I guess, since they aren't removable 2021-12-11 15:43:56 +01:00
Tony Garnock-Jones f540b41d73 Optional tracing/dumping for Dataspace 2021-12-11 15:43:32 +01:00
Tony Garnock-Jones 97cfb19852 Move stop continuation *before* a stopping facet's assertions are retracted.
This is a kind of ad-hocish response to an interesting problem. In
previous Syndicates, assertion changes were gathered into *patches*
which *netted out* intra-turn changes. In this implementation, each
change is relayed unchanged, so there is *no netting* going on. The
closest we get is a convention that when things are being replaced,
incoming assertions should be made before outgoing ones are retracted,
so that the kind of glitch that's seen is a double-up of records,
rather than a brief window where no records are present.

So here, by moving the stop continuation into an onStop for the
stopping facet (that nonetheless *executes* in that facet's parent's
context), we allow the following pattern to run without problem
glitching:

    react {
      assert Something(1);
      stop on asserted Condition() => react {
        assert Something(2);
      }
    }

Observers like this...

    during Something(_) => { // **A**
      ...
      during Something($specific) => { // **B**
      }
    }

will see

    + Something(1)
    + Something(2)
    - Something(1)

rather than what they saw before this change,

    + Something(1)
    - Something(1)
    + Something(2)

The consequence is that the line marked **A** above will *remain
active* after this change, with the facet at **B** being replaced,
rather than briefly tearing down the **A** facet when `- Something(1)`
and then creating a fresh one when `+ Something(2)`.

This came up in flappy bird, where I had

    react {
        at mainDs {
            assert ui.html('#board-area', template`<h1 class="score">${score.value}</h1>`);
        }
        at gameDs {
            stop on asserted GameOver() => react {
                at mainDs {
                    assert ui.html(
                        '#board-area',
                        template`<h1 class="score">${score.value}<br/>GAME OVER</h1>`);
                }
            }
        }
    }

which, in combination with the particular implementation of index.ts
in the html package, caused the UIFragment responder to get confused
and to not show the GAME OVER message - the previous score message was
removed, but the new one wasn't manifested in the DOM. Changing the
last `ui.html` above to `ui.context('foo').html` caused the problem to
go away (by making it effectively two unrelated fragments, rather than
a replacement of the content of a single fragment).
2021-12-11 14:04:31 +01:00
Tony Garnock-Jones 56233687db Fixup after move 2021-12-10 14:40:03 +01:00
Tony Garnock-Jones a035fbf73b Move examples out 2021-12-10 14:25:23 +01:00
Tony Garnock-Jones df7f1c3dd7 Publish
- @syndicate-lang/compiler@0.9.1
 - @syndicate-lang/core@0.9.1
 - @syndicate-lang/html@0.9.1
 - @syndicate-lang/syndicatec@0.9.1
 - @syndicate-lang/timer@0.9.1
 - @syndicate-lang/ts-plugin@0.9.1
 - @syndicate-lang/tsc@0.9.1
2021-12-10 14:03:11 +01:00
Tony Garnock-Jones 1a365f42be Put licences in the place that lerna expects them (?) 2021-12-10 14:02:58 +01:00
Tony Garnock-Jones 3f0bfadc2b Publish
- @syndicate-lang/compiler@0.9.0
 - @syndicate-lang/core@0.9.0
 - @syndicate-lang/html@0.9.0
 - @syndicate-lang/syndicatec@0.9.0
 - @syndicate-lang/timer@0.9.0
 - @syndicate-lang/ts-plugin@0.9.0
 - @syndicate-lang/tsc@0.9.0
2021-12-10 13:35:30 +01:00
Tony Garnock-Jones e001f94757 Update yarn.lock; add yarn prefix to example build commands 2021-12-09 22:33:03 +01:00
Tony Garnock-Jones 73dd39ff85 Oops. Omitted these 2021-12-09 22:28:59 +01:00
Tony Garnock-Jones 74377b87f6 Port html package (and one example) 2021-12-09 22:15:47 +01:00
Tony Garnock-Jones 7a7ad76036 oops - absent pattern name 2021-12-09 22:14:20 +01:00
Tony Garnock-Jones 4db3f45d67 oops - dataspace.boot 2021-12-09 22:14:07 +01:00
Tony Garnock-Jones 32f7a8f5c0 Absent named parameters in quasipatterns are treated as implicit discards 2021-12-09 22:13:05 +01:00
Tony Garnock-Jones e0d76f8dd3 Dataspace.boot 2021-12-09 22:12:41 +01:00
Tony Garnock-Jones 6d7dbaf3b3 Bump to get encoder bugfix 2021-12-09 22:12:14 +01:00
Tony Garnock-Jones 1c1decdb7d Repair type error for dataflow assertions 2021-12-09 22:12:02 +01:00
Tony Garnock-Jones dd4af85296 Allow ancillary data as a side-channel for intra-image value passing 2021-12-09 22:11:46 +01:00
Tony Garnock-Jones 50eaec69ef Repair (?) error when searching for the very last position in a file, such as for a missing close parenthesis 2021-12-09 22:11:11 +01:00
Tony Garnock-Jones a37879695e Use the new pattern quasiquotation support 2021-12-09 18:55:53 +01:00
Tony Garnock-Jones f81cf11ebd Pattern (quasi)quotation 2021-12-09 18:55:18 +01:00
Tony Garnock-Jones d1c79973c5 Repair code generation error for "stop on (...)" handlers 2021-12-09 18:54:43 +01:00
Tony Garnock-Jones 4ec02591c0 Initial QuasiValue support 2021-12-09 18:53:41 +01:00
Tony Garnock-Jones a1c8203b5d Use ES2019 dialect in TypeScript (for Symbol.description) 2021-12-09 18:53:17 +01:00
Tony Garnock-Jones fdf765557e Repair serious error in skeleton indexing (double pop) 2021-12-09 18:52:58 +01:00
Tony Garnock-Jones 58daa8c981 Drop discards in smart pattern constructors 2021-12-09 18:52:42 +01:00
Tony Garnock-Jones 20b83aa5a5 Support stopping a root facet, such as happens when a link between actors is broken 2021-12-09 18:52:22 +01:00
Tony Garnock-Jones 5455392efc Repair typo 2021-12-09 18:51:57 +01:00
Tony Garnock-Jones b5e82cba9b Better Ref printing 2021-12-09 18:51:41 +01:00
Tony Garnock-Jones ffee492fec Debug-dumping of skeleton structure 2021-12-09 18:50:46 +01:00
Tony Garnock-Jones c9da4fcf26 Stack utilities 2021-12-09 18:47:43 +01:00
Tony Garnock-Jones e17fd13442 Bump preserves version 2021-12-09 18:41:42 +01:00
Tony Garnock-Jones 7b137bea06 At least *propagate* unhandlable-binder-guard errors 2021-12-08 14:29:28 +01:00
Tony Garnock-Jones 4ad2dd69a6 Update timer driver. This has exposed problems with pattern quoting and schema support. 2021-12-03 15:38:02 +01:00
Tony Garnock-Jones edbe7bcdac Get ts-plugin working with Emacs and LSP 2021-12-03 15:37:41 +01:00
Tony Garnock-Jones 78834dfb07 Make "at <target> { ... }" require the braces 2021-12-03 15:29:57 +01:00
Tony Garnock-Jones 3486ec928e Comment 2021-12-03 15:29:20 +01:00
Tony Garnock-Jones d8b60ccf76 ts-plugin. Works in VS Code, haven't managed to configure Emacs to work with it yet. 2021-12-03 02:06:17 +01:00
Tony Garnock-Jones 7b9f035fa8 tsc package 2021-12-03 01:52:46 +01:00
Tony Garnock-Jones fb420855e9 Use a global variable instead of threading thisTurn through everywhere. Should improve ergonomics a little. 2021-12-03 01:46:41 +01:00