Bisectable

HEAD

exit 1 if (^∞).grep({ last })[5] // 0 == 4’ # TODO better example }

HEAD

” } start { my @sha-gatherer; for @outputs.rotor(2 => -1).reverse -> ($from, $to) { my $from-sha = %shas{$from}.tail; my $to-sha = %shas{ $to}.head; $to-sha = ‘HEAD’ if $to-sha.starts-with: ‘HEAD(’; # total hack but it works try { # we need to handle it and move forward process $msg, $code, $from-sha, $to-sha, @sha-gatherer; # bisect! CATCH { default { handle-exception $_, $msg } } } } my $outputs-before = +@outputs; for @sha-gatherer { my $short = get-short-commit $_; proccess-and-group-commits @outputs, %shas, $file, $short ~ ‘^’, :intermingle, :!prepend, :$start-time, time-limit => TOTAL-TIME; proccess-and-group-commits @outputs, %shas, $file, $short, :intermingle, :prepend, :$start-time, time-limit => TOTAL-TIME; } if @outputs ≠ $outputs-before { # Ideally all commits will fall into one of the # existing categories that were created by running # the code on releases. If we find new output it # simply means the behavior changed multiple times # between two releases, and people should interpret # the results manually and rerun on different # endpoints if necessary. reply $msg, ‘⚠ New output detected, please review the results manually’; } LEAVE .unlink with $file; # XXX we have to do it here… reply $msg, commit-groups-to-gisted-reply(@outputs, %shas, $config) but PrettyLink({ “Output on all releases and bisected commits: $_” }); Nil } }

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.