Two bugs fixed here: first, if the %done reentrancy triggered another
%boon, that wasn't getting translated to a %lost, even though it could
have been the reason the event crashed in the first place.
Second, the %done reentrancy needs to happen after we emit our move, so
that we don't invert the order of the %boon's we produce.
This test depends on the ames protocol version, and so should probably
be rewritten. It's currently holding up a breach, so it's most
expedient to just disable it for the time being.
Per yosoyubik's commentary in urbit/urbit#1799:
The test is expecting that qeu to not be correct.. when it is.
The test [98 [97 ~ ~] [100 ~ [99 ~ ~]]] is a correct queue if we look at
vertical ordering: (mor 98 97), (mor 98 100) & (mor 100 99) all return
%.y, so vertical ordering is correct.
The previous implementation of +apt:to checked only horizontal ordering
between siblings, in this case that would fail: (mor 97 100) returns
%.n, but that is not how you check correctness of hoon treaps.
The solution is to modify that test with a proper "incorrect" +qeu, for
example: ((soft (qeu)) [97 [98 ~ ~] [100 ~ [99 ~ ~]]]). Vertical
ordering is not correct with any of the children.
* algorithm-tests:
pills: update solid
tests: unit tests for +in (set)
tests: unit tests for +to (queue)
tests: unit tests for +by (map)
tests: unit tests for +differ (diff/merge)
hoon: fix for +uno/uni (#1779) set/map union
hoon: fix for +apt:to (#1778) queue correctness
Signed-off-by: Jared Tobin <jared@tlon.io>
* jt-gall-refactor: (76 commits)
gall: fix issue id in comment
pills: update solid
gall: handle foreign coup success
gall: only print peek bad result if bad
gall: add basic test harness
pills: update solid, brass, ivory
gall: fix obvious nest-failing tisdot
gall: change '-state' to '-core' for +mo and +ap
zuse, gall: deprecate 'club'
zuse, gall, eyre: deprecate 'cush'
zuse, gall, eyre, dojo: deprecate 'cuft'
gall: remove slam-related printfs
gall: remove deprecated 'mak' from 'agents'
gall: use less vertical spacing throughout
gall: add comment re: unpopulated wex
gall: use less vertical separation when wuthepping
gall: fix whitespace
gall: don't define 'move' as a pair
gall: don't give faces to tags
gall: gut some unused stuff
...
When we ask an app to run a %handle-http-cancel event, we don't
actually care about the return value or even if it errors. The
cancel event is purely informative. Likewise, because we cause
cancels on restart of urbit, they cannot expose crashes to the
system. Otherwise, an app with an open connection but a broken
or non-existent cancel handler can prevent your ship from
coming back up.