Skip to content

Instantly share code, notes, and snippets.

@Whateverable
Created December 28, 2016 00:19
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/9ab29ae7a7c6185d9861884a5cb3ec87 to your computer and use it in GitHub Desktop.
Save Whateverable/9ab29ae7a7c6185d9861884a5cb3ec87 to your computer and use it in GitHub Desktop.
bisectable6
say 1.1e308
Bisecting: 1449 revisions left to test after this (roughly 11 steps)
[eb79d73bfe0a7e88e997e2319dbcc69b2ba90774] Make for @a.kv -> $k, $v { } 4x as fast
»»»»» Testing eb79d73bfe0a7e88e997e2319dbcc69b2ba90774
»»»»» Script output:
Inf
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
Inf
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing e4fdc32d6d9062e169165d02a6ac920fc22177da
»»»»» Script output:
Inf
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
Inf
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 689da7aa679bc1f69c91e9dc7d560b5ec2e60e92
»»»»» Script output:
1.1e+308
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
Inf
»»»»» The output is different
»»»»» Therefore, marking this revision as “new”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 050cf72b35b93723d6f667e754c5d112da36a384
»»»»» Script output:
Inf
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
Inf
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 6057295ab78699a7bfb5e94f61e8823ad9f6c55f
»»»»» Script output:
1.1e+308
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
Inf
»»»»» The output is different
»»»»» Therefore, marking this revision as “new”
»»»»» -------------------------------------------------------------------------
»»»»» Testing e10f76758b09f30b1c17f7103bd7f2ecd4f82927
»»»»» Script output:
Inf
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
Inf
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing cee10121bc95917f090ee9233aab20e187e284c8
»»»»» Script output:
1.1e+308
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
Inf
»»»»» The output is different
»»»»» Therefore, marking this revision as “new”
»»»»» -------------------------------------------------------------------------
»»»»» Testing a1d8e9385b727ad06196c85dd4fc8569246719c6
»»»»» Script output:
1.1e+308
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
Inf
»»»»» The output is different
»»»»» Therefore, marking this revision as “new”
»»»»» -------------------------------------------------------------------------
»»»»» Testing f6d92328a656d438207173ee1c8190f23f48b284
»»»»» Script output:
Inf
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
Inf
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
»»»»» Testing 729d7e34124827a4e0b772b049be95cf911dd7cf
»»»»» Script output:
1.1e+308
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
Inf
»»»»» The output is different
»»»»» Therefore, marking this revision as “new”
»»»»» -------------------------------------------------------------------------
»»»»» Testing a581bf415c4344b8cdea21e3b05509f8b6cd56a0
»»»»» Script output:
Inf
»»»»» Script exit code: 0
»»»»» Bisecting by output
»»»»» Output on “old” revision is:
Inf
»»»»» The output is identical
»»»»» Therefore, marking this revision as “old”
»»»»» -------------------------------------------------------------------------
729d7e34124827a4e0b772b049be95cf911dd7cf is the first new commit
commit 729d7e34124827a4e0b772b049be95cf911dd7cf
Author: Zoffix Znet <cpan@zoffix.com>
Date: Tue Nov 8 20:52:45 2016 +0000
Prevent overflow when creating large Num literals
The current calculation converts the "base" number to one without fractional
parts, raises it to "e" power, and then divides it by however many powers of
10 it took to make it fractionless. So 1.23e10 gets converted to 123, multiplied
by 10**10 and then divided by 100. This causes the calculation to blow through
the limit and get an Inf before the final division happens, even though we do have
enough space to represent the final number.
Fix by dividing *before* multiplying by the powers of 10.
Fixes RT#130039: https://rt.perl.org/Ticket/Display.html?id=130039
:040000 040000 825715a47942c6c144a75dd4605091777d36b72e d3e65dda9d2dcdbbdaf453aefde264bf25a051f5 M src
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment