Tony Garnock-Jones
fe427a67be
Repair relay pins, to pin target refs too
2023-01-11 11:49:35 +01:00
Tony Garnock-Jones
5b835dc13a
Repair quasipattern parameter passing for union types
2022-04-30 14:54:56 +03:00
Tony Garnock-Jones
7668dbb401
Support selection of a particular variant in quasipatterns
2022-04-30 14:24:07 +03:00
Tony Garnock-Jones
4a49e6a314
Generalize fields to all is()ables
2022-04-28 23:03:30 +03:00
Tony Garnock-Jones
974d74023c
Fixup wrt new preserves interfaces
2022-01-26 16:26:35 +01:00
Tony Garnock-Jones
cdd1c2393d
Bump preserves dep
2022-01-26 14:44:35 +01:00
Tony Garnock-Jones
c3dfd42a58
Bump copyright years
2022-01-26 14:38:38 +01:00
Tony Garnock-Jones
5560ce5aa1
Upgrade Preserves, allowing automatic conversion to Preserves values in many cases
2022-01-24 14:13:46 +01:00
Tony Garnock-Jones
ff75fc7107
Expose trace schema (!)
2022-01-24 09:09:25 +01:00
Tony Garnock-Jones
faca72d6b3
Take advantage of new static info propagated by schema compiler
2022-01-24 09:08:56 +01:00
Tony Garnock-Jones
83cc561cce
Turn.every
2022-01-20 20:48:30 +01:00
Tony Garnock-Jones
f8b06ff02a
Repair behaviour of (during $x => assert x).
2022-01-16 15:11:01 +01:00
Tony Garnock-Jones
08197626a6
Simplify. Why didn't I do it like this before?
2022-01-08 13:38:10 +01:00
Tony Garnock-Jones
ed8adae3f2
Experiment: run facet teardown in the current turn, immediately, instead of delayed
2021-12-24 17:29:26 -05:00
Tony Garnock-Jones
90a6e2f41a
Adapt to syndicate-protocols changes
2021-12-13 20:20:31 +01:00
Tony Garnock-Jones
4d42968cd6
Repair an error and a couple of infelicities in quasivalue.ts
2021-12-13 12:20:51 +01:00
Tony Garnock-Jones
f24dfb53d5
No need to spawn a relay
2021-12-12 23:54:35 +01:00
Tony Garnock-Jones
a9a3a8a66d
Bring quasipattern syntax into line with constructor syntax for unary records
2021-12-12 23:54:22 +01:00
Tony Garnock-Jones
2940b80563
Supervision
2021-12-12 23:03:22 +01:00
Tony Garnock-Jones
04bbcd25ab
Turn.after
2021-12-12 23:02:58 +01:00
Tony Garnock-Jones
33ac308564
Allow access to new Actor handle on spawn (is this safe?)
2021-12-12 23:02:51 +01:00
Tony Garnock-Jones
951598b7d0
Commit to having onStop shutdownActions run in parent facet context
2021-12-12 23:02:25 +01:00
Tony Garnock-Jones
364c97f357
Repair error in halfLink accounting during facet termination
2021-12-12 23:01:53 +01:00
Tony Garnock-Jones
a0dc76e4e2
Fix copyright headers
2021-12-11 17:23:48 +01:00
Tony Garnock-Jones
c9272ddcc9
Repair typo
2021-12-11 16:49:24 +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
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
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
4ec02591c0
Initial QuasiValue support
2021-12-09 18:53:41 +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
fb420855e9
Use a global variable instead of threading thisTurn through everywhere. Should improve ergonomics a little.
2021-12-03 01:46:41 +01:00
Tony Garnock-Jones
dd14c8471d
Update compiler
2021-12-03 00:55:42 +01:00
Tony Garnock-Jones
f9d1e694e0
Examples and bug-fixes
2021-12-02 16:04:07 +01:00
Tony Garnock-Jones
d51af436f5
Much progress
2021-12-02 14:40:24 +01:00
Tony Garnock-Jones
d2f5c947ac
Bulk copyright notice repair
2021-12-01 17:24:29 +01:00
Tony Garnock-Jones
1563398dd8
More WIP novy
2021-12-01 17:13:00 +01:00
Tony Garnock-Jones
c6fff70bae
WIP moving to novy
2021-12-01 16:27:06 +01:00
Tony Garnock-Jones
dc5c97b027
Major update to @preserves/core from old preserves package.
2021-05-17 16:26:01 +02:00
Tony Garnock-Jones
ccd87c09f1
Adapt to latest Preserves changes
2021-03-03 10:28:10 +01:00
Tony Garnock-Jones
63a2146f87
Fix handling of template string substitutions in scanner/reader; timer driver; flappy bird demo; associated repairs
2021-01-29 19:56:12 +01:00
Tony Garnock-Jones
5d2e776ecf
Repair error caused by mutation of a set mid-iteration
2021-01-29 15:37:27 +01:00
Tony Garnock-Jones
82e9457359
More fixes
2021-01-26 22:09:21 +01:00
Tony Garnock-Jones
690ac12cc0
Many fixes to compiler; watchable syndicate-tsc
2021-01-25 22:16:52 +01:00
Tony Garnock-Jones
97aaa5ef5d
Better field typing
2021-01-19 21:05:04 +01:00
Tony Garnock-Jones
7be246a400
Module activation; batch compilation
2021-01-19 15:13:42 +01:00
Tony Garnock-Jones
8c2729e3d8
Tweaks for in-browser use
2021-01-18 23:36:22 +01:00
Tony Garnock-Jones
606daa625b
Refactor, improve, and repair
2021-01-18 23:11:53 +01:00
Tony Garnock-Jones
eaeb4b7df8
Use source position within templates, now that StringScanner is fixed
2021-01-18 15:32:51 +01:00
Tony Garnock-Jones
a0712af032
Remove unused imports/variables
2021-01-18 15:32:38 +01:00
Tony Garnock-Jones
f46276cf05
Repair indexing calculation in StringScanner to support nontrivial use of source positions
2021-01-18 15:32:21 +01:00
Tony Garnock-Jones
2ff3067fad
Reusable compiler
2021-01-17 22:27:04 +01:00
Tony Garnock-Jones
6408493ea3
Better packaging
2021-01-17 14:14:02 +01:00
Tony Garnock-Jones
fc23d1b779
First run of new compiler output!
2021-01-16 17:46:18 +01:00
Tony Garnock-Jones
ed12c1c69c
Improved field declaration parsing
2021-01-15 14:22:44 +01:00
Tony Garnock-Jones
71cde3daba
Follow preserves changes for strict mode
2021-01-15 14:11:12 +01:00
Tony Garnock-Jones
0f6059cd59
Strict tsconfig; more major steps toward ocap style
2021-01-15 13:38:15 +01:00
Tony Garnock-Jones
b60551a52b
Major step toward eliminating ambient authority
2021-01-14 14:42:30 +01:00
Tony Garnock-Jones
c5efff9a0f
Limit pass count
2021-01-14 13:15:23 +01:00
Tony Garnock-Jones
2105886c5e
WIP lax parser, matcher, rewriter and compiler
2021-01-14 13:09:53 +01:00
Tony Garnock-Jones
5a412a5d9b
Repair silly mistake: republish on *change*, not on *same*!
2021-01-12 14:34:33 +01:00
Tony Garnock-Jones
1501a719e4
Use differently-named Preserves canonicalString function
2021-01-12 14:34:06 +01:00
Tony Garnock-Jones
58e190e419
Initial port to typescript/es6/babel-free. Far from working or complete
2021-01-11 23:35:36 +01:00
Tony Garnock-Jones
212a92605e
Flesh out util_stub a little more
2020-08-05 13:05:35 +02:00
Tony Garnock-Jones
fa2c184545
Webpack -> Rollup
2020-08-05 12:36:53 +02:00
Tony Garnock-Jones
2f948067a7
Pass Ground VM to stopHandlers
2019-10-24 19:27:41 +01:00
Tony Garnock-Jones
1428b141cc
Cope with echo-server minimart-benchmark test: flat new-connection cost
2019-06-21 17:24:07 +01:00
Tony Garnock-Jones
e806f4b042
Partial repair for a deep problem with VisibilityRestriction.
...
This change makes `during` work "atomically" across a communications
delay, by ensuring that a retracted assertion matching the `during`'s
pattern triggers the "stop on" clause in the expansion of the
`during`.
Some discussion of the change exists in the Journal and in my
notebook.
2019-06-18 16:42:16 +01:00
Tony Garnock-Jones
1b8ffba878
Webpack messes with module.filename and __filename
2019-06-14 16:08:31 +01:00
Tony Garnock-Jones
2e9daad827
Protect other core modules, so that instanceof works properly
2019-06-14 15:33:02 +01:00
Tony Garnock-Jones
d7169b2687
Undo stupid mistake
2019-06-14 13:15:36 +01:00
Tony Garnock-Jones
782d97a3ba
Still whacking away at the singleton issue
2019-06-14 13:06:40 +01:00
Tony Garnock-Jones
b24a8b04c8
Avoid gratuitously resetting singleton state
2019-06-13 22:41:09 +01:00
Tony Garnock-Jones
3042a23aad
Get raw box-and-client example running again
2019-06-13 22:18:57 +01:00
Tony Garnock-Jones
2223f29ad2
Singleton fudgery
2019-06-13 22:18:45 +01:00
Tony Garnock-Jones
d9b1316846
Comment out dataspace.js debugging, to avoid the speed penalty
2019-06-13 13:19:28 +01:00
Tony Garnock-Jones
163bf7e9ea
Repair error in call to projectPaths
2019-06-08 16:02:23 +01:00
Tony Garnock-Jones
867b32b5be
addObserverEndpoint
2019-06-03 12:06:04 +01:00
Tony Garnock-Jones
f19ecb69c8
VisibilityRestriction.toString
2019-06-03 12:03:25 +01:00
Tony Garnock-Jones
844bc3457d
Provide PRIORITY
2019-05-30 22:52:40 +01:00
Tony Garnock-Jones
0f6987b02d
Debug output
2019-05-30 22:52:31 +01:00
Tony Garnock-Jones
aebf989e8d
Prevent wrapExternal from triggering if recipient facet is no longer alive
2018-12-16 06:50:52 +00:00
Tony Garnock-Jones
b85ba4a9f0
Ignore spurious differences in job patterns
2018-12-14 13:27:19 +00:00
Tony Garnock-Jones
f538891a25
Skeleton.isCompletelyConcrete
2018-12-14 13:01:54 +00:00
Tony Garnock-Jones
0f4a572393
Skeleton.match
2018-12-14 12:37:32 +00:00
Tony Garnock-Jones
3b18ac6800
Hack: keep workers running until the relay quits; this is arguably the wrong approach to a real problem
2018-12-13 20:18:48 +00:00
Tony Garnock-Jones
1cb66959dd
Supply an encodable default nothing-ish value for workerData if none given
2018-12-13 20:17:23 +00:00
Tony Garnock-Jones
e43d9eb067
Allow wrapExternal to work for nested dataspaces
2018-12-13 20:17:03 +00:00
Tony Garnock-Jones
ed20317225
Don't rerun dataflow blocks when the facet they belong to is terminated
2018-12-13 20:16:47 +00:00
Tony Garnock-Jones
d1877a890c
Experimental node.js worker_threads support
2018-12-13 16:39:56 +00:00
Tony Garnock-Jones
2c3d7d247d
Be stricter about facet-setup vs script phase separation
2018-11-29 17:39:15 +00:00