Skip to content

Instantly share code, notes, and snippets.

@Whateverable
Created July 31, 2019 17:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Whateverable/6310ed86c9481e9d878f21621f3189fa to your computer and use it in GitHub Desktop.
Save Whateverable/6310ed86c9481e9d878f21621f3189fa to your computer and use it in GitHub Desktop.
bisectable6
start { return 42 }; sleep 1
Bisecting: 5063 revisions left to test after this (roughly 12 steps)
[c0eeebde635b0291f69ee62237a6f1332e37e6e2] Simplify [(&)] handling
»»»»» Testing c0eeebde635b0291f69ee62237a6f1332e37e6e2
»»»»» Script output:
»»»»» Script exit code: 0
»»»»» Bisecting by exit code
»»»»» Current exit code is 0, exit code on “old” revision is 0
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing e6e9daf1c3b15581828dc71d26d5d361275eddc3
»»»»» Script output:
»»»»» Script exit code: 0
»»»»» Bisecting by exit code
»»»»» Current exit code is 0, exit code on “old” revision is 0
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 19f0c842765726fbd65285acfd8870a79709a378
»»»»» Script output:
Unhandled exception in code scheduled on thread 4
Attempt to return outside of any Routine
in block at /tmp/ifjlPUCuRr line 1
»»»»» Script exit code: 1
»»»»» Bisecting by exit code
»»»»» Current exit code is 1, exit code on “old” revision is 0
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “new”
»»»»» -------------------------------------------------------------------------
»»»»» Testing f8d91b9e22383f6031c189271458f342ca5722b3
»»»»» Script output:
»»»»» Script exit code: 0
»»»»» Bisecting by exit code
»»»»» Current exit code is 0, exit code on “old” revision is 0
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 350a4bd46ef60736e694b65358ca065cce168ded
»»»»» Script output:
»»»»» Script exit code: 0
»»»»» Bisecting by exit code
»»»»» Current exit code is 0, exit code on “old” revision is 0
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 3365094f9ef489118a214163f7bbdff50cde01a2
»»»»» Script output:
»»»»» Script exit code: 0
»»»»» Bisecting by exit code
»»»»» Current exit code is 0, exit code on “old” revision is 0
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 316ad5256e85ed388853b10b985e46dd23e7da74
»»»»» Script output:
Unhandled exception in code scheduled on thread 4
Attempt to return outside of any Routine
in block at /tmp/ifjlPUCuRr line 1
»»»»» Script exit code: 1
»»»»» Bisecting by exit code
»»»»» Current exit code is 1, exit code on “old” revision is 0
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “new”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 951303f9aaec1f195403f3aa6b5bc5850048c7ea
»»»»» Script output:
»»»»» Script exit code: 0
»»»»» Bisecting by exit code
»»»»» Current exit code is 0, exit code on “old” revision is 0
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 15c16e35ade24c6f007792a394aa0f590e2d87c1
»»»»» Script output:
Unhandled exception in code scheduled on thread 4
Attempt to return outside of any Routine
in block at /tmp/ifjlPUCuRr line 1
»»»»» Script exit code: 1
»»»»» Bisecting by exit code
»»»»» Current exit code is 1, exit code on “old” revision is 0
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “new”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 5598f37df5d37fe61ebb1bbc986d05866d324567
»»»»» Script output:
»»»»» Script exit code: 0
»»»»» Bisecting by exit code
»»»»» Current exit code is 0, exit code on “old” revision is 0
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 94dd0a411d53b25c047f1e0038114b811d920736
»»»»» Script output:
»»»»» Script exit code: 0
»»»»» Bisecting by exit code
»»»»» Current exit code is 0, exit code on “old” revision is 0
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing d5c3c495e277aa7a4cdee343ab13ea131d750358
»»»»» Script output:
»»»»» Script exit code: 0
»»»»» Bisecting by exit code
»»»»» Current exit code is 0, exit code on “old” revision is 0
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 8e858c8d0200a847298133b577ed8ab06c621fb1
»»»»» Script output:
»»»»» Script exit code: 0
»»»»» Bisecting by exit code
»»»»» Current exit code is 0, exit code on “old” revision is 0
»»»»» If exit code is not the same as on “old” revision, this revision will be marked as “new”
»»»»» Therefore, marking this revision as “old”
15c16e35ade24c6f007792a394aa0f590e2d87c1 is the first new commit
commit 15c16e35ade24c6f007792a394aa0f590e2d87c1
Author: Jonathan Worthington <jnthn@jnthn.net>
Date: Fri Nov 2 15:38:04 2018 +0100
Report unhandled exceptions of sunk `start` blocks
In 6.d only. They are reported using the `handle_uncaught` method of
the scheduler the code was run under, providing a way to handle such
application-level errors (and also to test this functionality).
Since this is done with the `sink` method, then something like:
sub foo() { start deadly-stuff() }
foo();
Will, provided the call `foo()` is itself in sink context, result in
the exception being reported. This is a slight divergence from the
original idea of making it entirely syntactic, but will catch more
cases. Some things can be multiply sunk; there's a check to make sure
we only attach one handler, and this also means we are robust if we
just ever end up sinking a Promise we already did attach a handler to
somehow.
The new adverb to `start`, and indeed Promise construction, is for now
considered an implementation detail, however we might want to consider
it for inclusion in 6.e - perhaps with a different name, but I couldn't
think of anything shorter than communicated what it does decently. So,
for now it's unspecified.
:040000 040000 9836f902d80bb02d7397a44a83c57be1ea21ffa3 0bd5543682cff979f3f004ed756c0f657a292c50 M src
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment