[Builtins] Allow casing on booleans and integers
This adds support for casing on booleans and integers using Case, which is the first part of #6602.
/benchmark nofib
/benchmark nofib
/benchmark lists
/benchmark lists
Click here to check the status of your benchmark.
Comparing benchmark results of 'nofib' on '27d2bc3905' (base) and 'c0df0c158b' (PR)
Results table
| Script | 27d2bc3 | c0df0c1 | Change |
|---|---|---|---|
| clausify/formula1 | 2.170 ms | 2.076 ms | -4.3% |
| clausify/formula2 | 2.920 ms | 2.781 ms | -4.8% |
| clausify/formula3 | 8.083 ms | 7.722 ms | -4.5% |
| clausify/formula4 | 17.54 ms | 15.77 ms | -10.1% |
| clausify/formula5 | 39.41 ms | 37.72 ms | -4.3% |
| knights/4x4 | 14.83 ms | 12.75 ms | -14.0% |
| knights/6x6 | 36.46 ms | 30.90 ms | -15.2% |
| knights/8x8 | 63.35 ms | 53.63 ms | -15.3% |
| primetest/05digits | 8.958 ms | 7.917 ms | -11.6% |
| primetest/10digits | 17.63 ms | 15.46 ms | -12.3% |
| primetest/30digits | 54.52 ms | 48.51 ms | -11.0% |
| primetest/50digits | 89.72 ms | 81.07 ms | -9.6% |
| queens4x4/bt | 4.102 ms | 3.695 ms | -9.9% |
| queens4x4/bm | 5.038 ms | 4.674 ms | -7.2% |
| queens4x4/bjbt1 | 4.899 ms | 4.434 ms | -9.5% |
| queens4x4/bjbt2 | 4.620 ms | 4.155 ms | -10.1% |
| queens4x4/fc | 10.09 ms | 9.234 ms | -8.5% |
| queens5x5/bt | 57.19 ms | 50.59 ms | -11.5% |
| queens5x5/bm | 57.94 ms | 53.51 ms | -7.6% |
| queens5x5/bjbt1 | 66.18 ms | 58.87 ms | -11.0% |
| queens5x5/bjbt2 | 64.42 ms | 56.83 ms | -11.8% |
| queens5x5/fc | 128.3 ms | 116.3 ms | -9.4% |
| 27d2bc3 | c0df0c1 | Change | |
|---|---|---|---|
| TOTAL | 758.4 ms | 678.6 ms | -10.5% |
Click here to check the status of your benchmark.
Comparing benchmark results of 'nofib' on '27d2bc3905' (base) and 'c0df0c158b' (PR)
Results table
| Script | 27d2bc3 | c0df0c1 | Change |
|---|---|---|---|
| clausify/formula1 | 2.166 ms | 2.087 ms | -3.6% |
| clausify/formula2 | 2.938 ms | 2.805 ms | -4.5% |
| clausify/formula3 | 8.124 ms | 7.760 ms | -4.5% |
| clausify/formula4 | 17.62 ms | 15.82 ms | -10.2% |
| clausify/formula5 | 39.61 ms | 37.70 ms | -4.8% |
| knights/4x4 | 14.80 ms | 12.85 ms | -13.2% |
| knights/6x6 | 36.39 ms | 30.89 ms | -15.1% |
| knights/8x8 | 63.15 ms | 53.57 ms | -15.2% |
| primetest/05digits | 8.955 ms | 7.963 ms | -11.1% |
| primetest/10digits | 17.64 ms | 15.65 ms | -11.3% |
| primetest/30digits | 56.05 ms | 48.66 ms | -13.2% |
| primetest/50digits | 93.60 ms | 81.50 ms | -12.9% |
| queens4x4/bt | 4.107 ms | 3.728 ms | -9.2% |
| queens4x4/bm | 5.039 ms | 4.691 ms | -6.9% |
| queens4x4/bjbt1 | 4.913 ms | 4.403 ms | -10.4% |
| queens4x4/bjbt2 | 4.626 ms | 4.171 ms | -9.8% |
| queens4x4/fc | 10.09 ms | 9.257 ms | -8.3% |
| queens5x5/bt | 57.20 ms | 50.61 ms | -11.5% |
| queens5x5/bm | 57.91 ms | 53.43 ms | -7.7% |
| queens5x5/bjbt1 | 66.11 ms | 59.00 ms | -10.8% |
| queens5x5/bjbt2 | 64.38 ms | 56.64 ms | -12.0% |
| queens5x5/fc | 128.3 ms | 116.1 ms | -9.5% |
| 27d2bc3 | c0df0c1 | Change | |
|---|---|---|---|
| TOTAL | 763.7 ms | 679.3 ms | -11.1% |
Click here to check the status of your benchmark.
Comparing benchmark results of 'lists' on '27d2bc3905' (base) and 'c0df0c158b' (PR)
Results table
| Script | 27d2bc3 | c0df0c1 | Change |
|---|---|---|---|
| sort/ghcSort/50 | 179.4 μs | 149.0 μs | -16.9% |
| sort/ghcSort/100 | 416.6 μs | 343.6 μs | -17.5% |
| sort/ghcSort/150 | 717.7 μs | 593.0 μs | -17.4% |
| sort/ghcSort/200 | 966.7 μs | 793.8 μs | -17.9% |
| sort/ghcSort/250 | 1.249 ms | 1.031 ms | -17.5% |
| sort/ghcSort/300 | 1.646 ms | 1.354 ms | -17.7% |
| sort/insertionSort/50 | 615.3 μs | 481.1 μs | -21.8% |
| sort/insertionSort/100 | 2.452 ms | 1.910 ms | -22.1% |
| sort/insertionSort/150 | 5.524 ms | 4.284 ms | -22.4% |
| sort/insertionSort/200 | 9.831 ms | 7.630 ms | -22.4% |
| sort/insertionSort/250 | 15.41 ms | 11.98 ms | -22.3% |
| sort/insertionSort/300 | 22.27 ms | 17.28 ms | -22.4% |
| sort/mergeSort/50 | 542.2 μs | 463.8 μs | -14.5% |
| sort/mergeSort/100 | 1.253 ms | 1.064 ms | -15.1% |
| sort/mergeSort/150 | 2.013 ms | 1.709 ms | -15.1% |
| sort/mergeSort/200 | 2.855 ms | 2.408 ms | -15.7% |
| sort/mergeSort/250 | 3.702 ms | 3.157 ms | -14.7% |
| sort/mergeSort/300 | 4.510 ms | 3.829 ms | -15.1% |
| sort/quickSort/50 | 1.418 ms | 1.095 ms | -22.8% |
| sort/quickSort/100 | 5.869 ms | 4.640 ms | -20.9% |
| sort/quickSort/150 | 13.18 ms | 10.41 ms | -21.0% |
| sort/quickSort/200 | 23.33 ms | 18.41 ms | -21.1% |
| sort/quickSort/250 | 36.76 ms | 29.08 ms | -20.9% |
| sort/quickSort/300 | 52.82 ms | 42.05 ms | -20.4% |
| sum/compiled-from-Haskell/sum-right-builtin/100 | 77.94 μs | 78.40 μs | +0.6% |
| sum/compiled-from-Haskell/sum-right-builtin/500 | 409.1 μs | 410.7 μs | +0.4% |
| sum/compiled-from-Haskell/sum-right-builtin/1000 | 865.4 μs | 871.9 μs | +0.8% |
| sum/compiled-from-Haskell/sum-right-builtin/2500 | 2.665 ms | 2.690 ms | +0.9% |
| sum/compiled-from-Haskell/sum-right-builtin/5000 | 5.764 ms | 5.804 ms | +0.7% |
| sum/compiled-from-Haskell/sum-right-Scott/100 | 43.86 μs | 44.62 μs | +1.7% |
| sum/compiled-from-Haskell/sum-right-Scott/500 | 232.8 μs | 234.0 μs | +0.5% |
| sum/compiled-from-Haskell/sum-right-Scott/1000 | 494.8 μs | 504.5 μs | +2.0% |
| sum/compiled-from-Haskell/sum-right-Scott/2500 | 1.725 ms | 1.738 ms | +0.8% |
| sum/compiled-from-Haskell/sum-right-Scott/5000 | 4.168 ms | 4.191 ms | +0.6% |
| sum/compiled-from-Haskell/sum-right-data/100 | 255.9 μs | 215.3 μs | -15.9% |
| sum/compiled-from-Haskell/sum-right-data/500 | 1.407 ms | 1.173 ms | -16.6% |
| sum/compiled-from-Haskell/sum-right-data/1000 | 3.270 ms | 2.701 ms | -17.4% |
| sum/compiled-from-Haskell/sum-right-data/2500 | 8.443 ms | 7.444 ms | -11.8% |
| sum/compiled-from-Haskell/sum-right-data/5000 | 18.05 ms | 15.81 ms | -12.4% |
| sum/compiled-from-Haskell/sum-left-builtin/100 | 75.87 μs | 76.84 μs | +1.3% |
| sum/compiled-from-Haskell/sum-left-builtin/500 | 396.0 μs | 400.8 μs | +1.2% |
| sum/compiled-from-Haskell/sum-left-builtin/1000 | 848.9 μs | 859.0 μs | +1.2% |
| sum/compiled-from-Haskell/sum-left-builtin/2500 | 2.596 ms | 2.626 ms | +1.2% |
| sum/compiled-from-Haskell/sum-left-builtin/5000 | 5.730 ms | 5.788 ms | +1.0% |
| sum/compiled-from-Haskell/sum-left-Scott/100 | 42.72 μs | 43.96 μs | +2.9% |
| sum/compiled-from-Haskell/sum-left-Scott/500 | 228.7 μs | 231.1 μs | +1.0% |
| sum/compiled-from-Haskell/sum-left-Scott/1000 | 495.1 μs | 505.6 μs | +2.1% |
| sum/compiled-from-Haskell/sum-left-Scott/2500 | 1.629 ms | 1.656 ms | +1.7% |
| sum/compiled-from-Haskell/sum-left-Scott/5000 | 4.072 ms | 4.144 ms | +1.8% |
| sum/compiled-from-Haskell/sum-left-data/100 | 260.4 μs | 236.8 μs | -9.1% |
| sum/compiled-from-Haskell/sum-left-data/500 | 1.433 ms | 1.294 ms | -9.7% |
| sum/compiled-from-Haskell/sum-left-data/1000 | 3.246 ms | 2.915 ms | -10.2% |
| sum/compiled-from-Haskell/sum-left-data/2500 | 8.609 ms | 7.845 ms | -8.9% |
| sum/compiled-from-Haskell/sum-left-data/5000 | 18.35 ms | 16.75 ms | -8.7% |
| sum/hand-written-PLC/sum-right-builtin/100 | 52.08 μs | 53.60 μs | +2.9% |
| sum/hand-written-PLC/sum-right-builtin/500 | 262.7 μs | 274.4 μs | +4.5% |
| sum/hand-written-PLC/sum-right-builtin/1000 | 548.2 μs | 566.6 μs | +3.4% |
| sum/hand-written-PLC/sum-right-builtin/2500 | 1.582 ms | 1.634 ms | +3.3% |
| sum/hand-written-PLC/sum-right-builtin/5000 | 3.510 ms | 3.617 ms | +3.0% |
| sum/hand-written-PLC/sum-right-Scott/100 | 34.63 μs | 34.80 μs | +0.5% |
| sum/hand-written-PLC/sum-right-Scott/500 | 181.6 μs | 185.9 μs | +2.4% |
| sum/hand-written-PLC/sum-right-Scott/1000 | 406.7 μs | 412.6 μs | +1.5% |
| sum/hand-written-PLC/sum-right-Scott/2500 | 1.365 ms | 1.371 ms | +0.4% |
| sum/hand-written-PLC/sum-right-Scott/5000 | 4.126 ms | 4.098 ms | -0.7% |
| sum/hand-written-PLC/sum-left-builtin/100 | 56.56 μs | 57.16 μs | +1.1% |
| sum/hand-written-PLC/sum-left-builtin/500 | 280.2 μs | 282.8 μs | +0.9% |
| sum/hand-written-PLC/sum-left-builtin/1000 | 559.2 μs | 560.1 μs | +0.2% |
| sum/hand-written-PLC/sum-left-builtin/2500 | 1.391 ms | 1.398 ms | +0.5% |
| sum/hand-written-PLC/sum-left-builtin/5000 | 2.755 ms | 2.777 ms | +0.8% |
| sum/hand-written-PLC/sum-left-Scott/100 | 38.73 μs | 38.76 μs | +0.1% |
| sum/hand-written-PLC/sum-left-Scott/500 | 206.8 μs | 211.9 μs | +2.5% |
| sum/hand-written-PLC/sum-left-Scott/1000 | 462.1 μs | 465.3 μs | +0.7% |
| sum/hand-written-PLC/sum-left-Scott/2500 | 1.592 ms | 1.599 ms | +0.4% |
| sum/hand-written-PLC/sum-left-Scott/5000 | 4.448 ms | 4.449 ms | +0.0% |
| 27d2bc3 | c0df0c1 | Change | |
|---|---|---|---|
| TOTAL | 329.3 ms | 279.5 ms | -15.1% |
Click here to check the status of your benchmark.
Comparing benchmark results of 'lists' on '27d2bc3905' (base) and 'c0df0c158b' (PR)
Results table
| Script | 27d2bc3 | c0df0c1 | Change |
|---|---|---|---|
| sort/ghcSort/50 | 178.2 μs | 145.7 μs | -18.2% |
| sort/ghcSort/100 | 413.2 μs | 335.3 μs | -18.9% |
| sort/ghcSort/150 | 712.0 μs | 577.6 μs | -18.9% |
| sort/ghcSort/200 | 957.7 μs | 771.1 μs | -19.5% |
| sort/ghcSort/250 | 1.237 ms | 1.002 ms | -19.0% |
| sort/ghcSort/300 | 1.628 ms | 1.318 ms | -19.0% |
| sort/insertionSort/50 | 607.9 μs | 463.0 μs | -23.8% |
| sort/insertionSort/100 | 2.426 ms | 1.845 ms | -23.9% |
| sort/insertionSort/150 | 5.458 ms | 4.132 ms | -24.3% |
| sort/insertionSort/200 | 9.704 ms | 7.366 ms | -24.1% |
| sort/insertionSort/250 | 15.23 ms | 11.55 ms | -24.2% |
| sort/insertionSort/300 | 21.99 ms | 16.69 ms | -24.1% |
| sort/mergeSort/50 | 540.0 μs | 454.2 μs | -15.9% |
| sort/mergeSort/100 | 1.238 ms | 1.042 ms | -15.8% |
| sort/mergeSort/150 | 1.991 ms | 1.668 ms | -16.2% |
| sort/mergeSort/200 | 2.797 ms | 2.355 ms | -15.8% |
| sort/mergeSort/250 | 3.665 ms | 3.089 ms | -15.7% |
| sort/mergeSort/300 | 4.456 ms | 3.759 ms | -15.6% |
| sort/quickSort/50 | 1.407 ms | 1.085 ms | -22.9% |
| sort/quickSort/100 | 5.825 ms | 4.593 ms | -21.2% |
| sort/quickSort/150 | 13.08 ms | 10.30 ms | -21.3% |
| sort/quickSort/200 | 23.17 ms | 18.34 ms | -20.8% |
| sort/quickSort/250 | 36.49 ms | 28.76 ms | -21.2% |
| sort/quickSort/300 | 52.37 ms | 41.55 ms | -20.7% |
| sum/compiled-from-Haskell/sum-right-builtin/100 | 77.00 μs | 77.53 μs | +0.7% |
| sum/compiled-from-Haskell/sum-right-builtin/500 | 402.9 μs | 406.0 μs | +0.8% |
| sum/compiled-from-Haskell/sum-right-builtin/1000 | 858.2 μs | 864.8 μs | +0.8% |
| sum/compiled-from-Haskell/sum-right-builtin/2500 | 2.642 ms | 2.666 ms | +0.9% |
| sum/compiled-from-Haskell/sum-right-builtin/5000 | 5.710 ms | 5.758 ms | +0.8% |
| sum/compiled-from-Haskell/sum-right-Scott/100 | 43.41 μs | 44.23 μs | +1.9% |
| sum/compiled-from-Haskell/sum-right-Scott/500 | 230.7 μs | 232.4 μs | +0.7% |
| sum/compiled-from-Haskell/sum-right-Scott/1000 | 489.2 μs | 498.7 μs | +1.9% |
| sum/compiled-from-Haskell/sum-right-Scott/2500 | 1.713 ms | 1.730 ms | +1.0% |
| sum/compiled-from-Haskell/sum-right-Scott/5000 | 4.133 ms | 4.160 ms | +0.7% |
| sum/compiled-from-Haskell/sum-right-data/100 | 253.0 μs | 213.0 μs | -15.8% |
| sum/compiled-from-Haskell/sum-right-data/500 | 1.393 ms | 1.159 ms | -16.8% |
| sum/compiled-from-Haskell/sum-right-data/1000 | 3.170 ms | 2.673 ms | -15.7% |
| sum/compiled-from-Haskell/sum-right-data/2500 | 8.376 ms | 7.367 ms | -12.0% |
| sum/compiled-from-Haskell/sum-right-data/5000 | 17.85 ms | 15.61 ms | -12.5% |
| sum/compiled-from-Haskell/sum-left-builtin/100 | 74.85 μs | 76.17 μs | +1.8% |
| sum/compiled-from-Haskell/sum-left-builtin/500 | 390.2 μs | 394.6 μs | +1.1% |
| sum/compiled-from-Haskell/sum-left-builtin/1000 | 837.4 μs | 848.8 μs | +1.4% |
| sum/compiled-from-Haskell/sum-left-builtin/2500 | 2.569 ms | 2.596 ms | +1.1% |
| sum/compiled-from-Haskell/sum-left-builtin/5000 | 5.661 ms | 5.725 ms | +1.1% |
| sum/compiled-from-Haskell/sum-left-Scott/100 | 42.22 μs | 43.38 μs | +2.7% |
| sum/compiled-from-Haskell/sum-left-Scott/500 | 223.3 μs | 228.4 μs | +2.3% |
| sum/compiled-from-Haskell/sum-left-Scott/1000 | 490.2 μs | 499.6 μs | +1.9% |
| sum/compiled-from-Haskell/sum-left-Scott/2500 | 1.618 ms | 1.637 ms | +1.2% |
| sum/compiled-from-Haskell/sum-left-Scott/5000 | 4.024 ms | 4.092 ms | +1.7% |
| sum/compiled-from-Haskell/sum-left-data/100 | 256.9 μs | 232.9 μs | -9.3% |
| sum/compiled-from-Haskell/sum-left-data/500 | 1.420 ms | 1.282 ms | -9.7% |
| sum/compiled-from-Haskell/sum-left-data/1000 | 3.199 ms | 2.889 ms | -9.7% |
| sum/compiled-from-Haskell/sum-left-data/2500 | 8.522 ms | 7.773 ms | -8.8% |
| sum/compiled-from-Haskell/sum-left-data/5000 | 18.10 ms | 16.59 ms | -8.3% |
| sum/hand-written-PLC/sum-right-builtin/100 | 52.25 μs | 53.82 μs | +3.0% |
| sum/hand-written-PLC/sum-right-builtin/500 | 262.3 μs | 270.4 μs | +3.1% |
| sum/hand-written-PLC/sum-right-builtin/1000 | 538.7 μs | 559.6 μs | +3.9% |
| sum/hand-written-PLC/sum-right-builtin/2500 | 1.572 ms | 1.618 ms | +2.9% |
| sum/hand-written-PLC/sum-right-builtin/5000 | 3.484 ms | 3.567 ms | +2.4% |
| sum/hand-written-PLC/sum-right-Scott/100 | 34.26 μs | 34.56 μs | +0.9% |
| sum/hand-written-PLC/sum-right-Scott/500 | 180.2 μs | 184.3 μs | +2.3% |
| sum/hand-written-PLC/sum-right-Scott/1000 | 403.0 μs | 408.7 μs | +1.4% |
| sum/hand-written-PLC/sum-right-Scott/2500 | 1.356 ms | 1.360 ms | +0.3% |
| sum/hand-written-PLC/sum-right-Scott/5000 | 4.088 ms | 4.103 ms | +0.4% |
| sum/hand-written-PLC/sum-left-builtin/100 | 55.40 μs | 57.21 μs | +3.3% |
| sum/hand-written-PLC/sum-left-builtin/500 | 274.7 μs | 280.7 μs | +2.2% |
| sum/hand-written-PLC/sum-left-builtin/1000 | 547.1 μs | 557.6 μs | +1.9% |
| sum/hand-written-PLC/sum-left-builtin/2500 | 1.363 ms | 1.387 ms | +1.8% |
| sum/hand-written-PLC/sum-left-builtin/5000 | 2.714 ms | 2.760 ms | +1.7% |
| sum/hand-written-PLC/sum-left-Scott/100 | 37.67 μs | 38.47 μs | +2.1% |
| sum/hand-written-PLC/sum-left-Scott/500 | 205.9 μs | 210.8 μs | +2.4% |
| sum/hand-written-PLC/sum-left-Scott/1000 | 456.2 μs | 466.3 μs | +2.2% |
| sum/hand-written-PLC/sum-left-Scott/2500 | 1.578 ms | 1.594 ms | +1.0% |
| sum/hand-written-PLC/sum-left-Scott/5000 | 4.401 ms | 4.446 ms | +1.0% |
| 27d2bc3 | c0df0c1 | Change | |
|---|---|---|---|
| TOTAL | 325.9 ms | 275.5 ms | -15.5% |
The simplest solution is perhaps adding a BCaseBuiltin step with infinite budget. Or alternatively, introduce a new plutus core versoin (1.2.0) and make the CEK machine aware of the version, but that's a bigger change and may have performance overhead.
Well this seems quite tricky. We need to put this on hold until we find an acceptable solution.
This is a non-backwards-compatible change to the behaviour of a core expression type, so it's pretty tricky indeed. Possibly we need separate Case and Case2 nodes and we deserialise new case expressions into the latter. From the point of view of the evaluator, it needs to support both behaviours and it needs to distinguish them. We don't have a way to plug in evaluators like we do for builtins, so otherwise I guess we'd need to add something like that (and be very careful about performance).
@michaelpj @zliu41
otherwise I guess we'd need to add something like that (and be very careful about performance).
Added in 5f3483866477eee84e04ccc81147a39eacdddc47, please review.
(not complete, some builds and tests fail, but it's enough to run the benchmarks)
/benchmark nofib
/benchmark nofib
/benchmark nofib
/benchmark lists
/benchmark lists
/benchmark lists
Click here to check the status of your benchmark.
Comparing benchmark results of 'nofib' on '40b3e8c4d' (base) and '5f3483866' (PR)
Results table
| Script | 40b3e8c | 5f34838 | Change |
|---|---|---|---|
| clausify/formula1 | 2.245 ms | 2.097 ms | -6.6% |
| clausify/formula2 | 3.023 ms | 2.806 ms | -7.2% |
| clausify/formula3 | 8.351 ms | 7.762 ms | -7.1% |
| clausify/formula4 | 17.80 ms | 15.95 ms | -10.4% |
| clausify/formula5 | 40.62 ms | 37.44 ms | -7.8% |
| knights/4x4 | 15.28 ms | 12.94 ms | -15.3% |
| knights/6x6 | 36.36 ms | 31.26 ms | -14.0% |
| knights/8x8 | 63.21 ms | 54.16 ms | -14.3% |
| primetest/05digits | 5.462 ms | 4.828 ms | -11.6% |
| primetest/10digits | 10.78 ms | 9.512 ms | -11.8% |
| primetest/30digits | 31.47 ms | 28.11 ms | -10.7% |
| primetest/50digits | 50.62 ms | 45.95 ms | -9.2% |
| queens4x4/bt | 4.166 ms | 3.709 ms | -11.0% |
| queens4x4/bm | 5.186 ms | 4.729 ms | -8.8% |
| queens4x4/bjbt1 | 4.963 ms | 4.472 ms | -9.9% |
| queens4x4/bjbt2 | 4.690 ms | 4.187 ms | -10.7% |
| queens4x4/fc | 10.19 ms | 9.333 ms | -8.4% |
| queens5x5/bt | 57.76 ms | 50.76 ms | -12.1% |
| queens5x5/bm | 58.44 ms | 54.29 ms | -7.1% |
| queens5x5/bjbt1 | 66.63 ms | 59.13 ms | -11.3% |
| queens5x5/bjbt2 | 64.87 ms | 57.40 ms | -11.5% |
| queens5x5/fc | 129.3 ms | 117.3 ms | -9.3% |
| 40b3e8c | 5f34838 | Change | |
|---|---|---|---|
| TOTAL | 691.4 ms | 618.1 ms | -10.6% |
Click here to check the status of your benchmark.
Comparing benchmark results of 'nofib' on '40b3e8c4d' (base) and '5f3483866' (PR)
Results table
| Script | 40b3e8c | 5f34838 | Change |
|---|---|---|---|
| clausify/formula1 | 2.241 ms | 2.096 ms | -6.5% |
| clausify/formula2 | 3.028 ms | 2.816 ms | -7.0% |
| clausify/formula3 | 8.327 ms | 7.734 ms | -7.1% |
| clausify/formula4 | 17.78 ms | 15.91 ms | -10.5% |
| clausify/formula5 | 40.43 ms | 37.35 ms | -7.6% |
| knights/4x4 | 15.19 ms | 12.89 ms | -15.1% |
| knights/6x6 | 36.82 ms | 31.35 ms | -14.9% |
| knights/8x8 | 63.24 ms | 54.23 ms | -14.2% |
| primetest/05digits | 5.531 ms | 4.828 ms | -12.7% |
| primetest/10digits | 10.71 ms | 9.534 ms | -11.0% |
| primetest/30digits | 31.36 ms | 28.15 ms | -10.2% |
| primetest/50digits | 50.58 ms | 45.94 ms | -9.2% |
| queens4x4/bt | 4.155 ms | 3.719 ms | -10.5% |
| queens4x4/bm | 5.149 ms | 4.728 ms | -8.2% |
| queens4x4/bjbt1 | 4.948 ms | 4.480 ms | -9.5% |
| queens4x4/bjbt2 | 4.676 ms | 4.189 ms | -10.4% |
| queens4x4/fc | 10.20 ms | 9.336 ms | -8.5% |
| queens5x5/bt | 57.62 ms | 50.64 ms | -12.1% |
| queens5x5/bm | 58.36 ms | 54.33 ms | -6.9% |
| queens5x5/bjbt1 | 66.44 ms | 59.16 ms | -11.0% |
| queens5x5/bjbt2 | 64.68 ms | 57.24 ms | -11.5% |
| queens5x5/fc | 129.0 ms | 117.4 ms | -9.0% |
| 40b3e8c | 5f34838 | Change | |
|---|---|---|---|
| TOTAL | 690.5 ms | 618.0 ms | -10.5% |
Click here to check the status of your benchmark.
Comparing benchmark results of 'lists' on '40b3e8c4d' (base) and '5f3483866' (PR)
Results table
| Script | 40b3e8c | 5f34838 | Change |
|---|---|---|---|
| sort/ghcSort/50 | 182.2 μs | 150.8 μs | -17.2% |
| sort/ghcSort/100 | 423.7 μs | 347.5 μs | -18.0% |
| sort/ghcSort/150 | 735.6 μs | 596.0 μs | -19.0% |
| sort/ghcSort/200 | 987.0 μs | 802.4 μs | -18.7% |
| sort/ghcSort/250 | 1.281 ms | 1.043 ms | -18.6% |
| sort/ghcSort/300 | 1.682 ms | 1.369 ms | -18.6% |
| sort/insertionSort/50 | 613.1 μs | 475.2 μs | -22.5% |
| sort/insertionSort/100 | 2.446 ms | 1.888 ms | -22.8% |
| sort/insertionSort/150 | 5.516 ms | 4.240 ms | -23.1% |
| sort/insertionSort/200 | 9.846 ms | 7.573 ms | -23.1% |
| sort/insertionSort/250 | 15.49 ms | 11.85 ms | -23.5% |
| sort/insertionSort/300 | 22.37 ms | 17.13 ms | -23.4% |
| sort/mergeSort/50 | 555.3 μs | 453.9 μs | -18.3% |
| sort/mergeSort/100 | 1.273 ms | 1.046 ms | -17.8% |
| sort/mergeSort/150 | 2.045 ms | 1.686 ms | -17.6% |
| sort/mergeSort/200 | 2.884 ms | 2.366 ms | -18.0% |
| sort/mergeSort/250 | 3.765 ms | 3.097 ms | -17.7% |
| sort/mergeSort/300 | 4.582 ms | 3.773 ms | -17.7% |
| sort/quickSort/50 | 1.472 ms | 1.124 ms | -23.6% |
| sort/quickSort/100 | 6.043 ms | 4.731 ms | -21.7% |
| sort/quickSort/150 | 13.62 ms | 10.57 ms | -22.4% |
| sort/quickSort/200 | 24.13 ms | 18.74 ms | -22.3% |
| sort/quickSort/250 | 37.89 ms | 29.47 ms | -22.2% |
| sort/quickSort/300 | 54.94 ms | 42.78 ms | -22.1% |
| sum/compiled-from-Haskell/sum-right-builtin/100 | 83.15 μs | 80.66 μs | -3.0% |
| sum/compiled-from-Haskell/sum-right-builtin/500 | 435.4 μs | 420.6 μs | -3.4% |
| sum/compiled-from-Haskell/sum-right-builtin/1000 | 933.7 μs | 903.2 μs | -3.3% |
| sum/compiled-from-Haskell/sum-right-builtin/2500 | 2.854 ms | 2.775 ms | -2.8% |
| sum/compiled-from-Haskell/sum-right-builtin/5000 | 6.170 ms | 6.008 ms | -2.6% |
| sum/compiled-from-Haskell/sum-right-Scott/100 | 48.32 μs | 46.45 μs | -3.9% |
| sum/compiled-from-Haskell/sum-right-Scott/500 | 259.7 μs | 247.0 μs | -4.9% |
| sum/compiled-from-Haskell/sum-right-Scott/1000 | 560.3 μs | 540.2 μs | -3.6% |
| sum/compiled-from-Haskell/sum-right-Scott/2500 | 1.951 ms | 1.889 ms | -3.2% |
| sum/compiled-from-Haskell/sum-right-Scott/5000 | 4.412 ms | 4.282 ms | -2.9% |
| sum/compiled-from-Haskell/sum-right-data/100 | 263.2 μs | 215.3 μs | -18.2% |
| sum/compiled-from-Haskell/sum-right-data/500 | 1.454 ms | 1.190 ms | -18.2% |
| sum/compiled-from-Haskell/sum-right-data/1000 | 3.257 ms | 2.724 ms | -16.4% |
| sum/compiled-from-Haskell/sum-right-data/2500 | 8.723 ms | 7.449 ms | -14.6% |
| sum/compiled-from-Haskell/sum-right-data/5000 | 18.29 ms | 15.75 ms | -13.9% |
| sum/compiled-from-Haskell/sum-left-builtin/100 | 83.61 μs | 80.03 μs | -4.3% |
| sum/compiled-from-Haskell/sum-left-builtin/500 | 429.7 μs | 409.6 μs | -4.7% |
| sum/compiled-from-Haskell/sum-left-builtin/1000 | 931.9 μs | 886.2 μs | -4.9% |
| sum/compiled-from-Haskell/sum-left-builtin/2500 | 2.821 ms | 2.711 ms | -3.9% |
| sum/compiled-from-Haskell/sum-left-builtin/5000 | 6.215 ms | 5.957 ms | -4.2% |
| sum/compiled-from-Haskell/sum-left-Scott/100 | 48.20 μs | 43.75 μs | -9.2% |
| sum/compiled-from-Haskell/sum-left-Scott/500 | 257.6 μs | 235.8 μs | -8.5% |
| sum/compiled-from-Haskell/sum-left-Scott/1000 | 563.1 μs | 520.3 μs | -7.6% |
| sum/compiled-from-Haskell/sum-left-Scott/2500 | 1.907 ms | 1.798 ms | -5.7% |
| sum/compiled-from-Haskell/sum-left-Scott/5000 | 4.352 ms | 4.141 ms | -4.8% |
| sum/compiled-from-Haskell/sum-left-data/100 | 270.1 μs | 231.2 μs | -14.4% |
| sum/compiled-from-Haskell/sum-left-data/500 | 1.524 ms | 1.323 ms | -13.2% |
| sum/compiled-from-Haskell/sum-left-data/1000 | 3.371 ms | 2.810 ms | -16.6% |
| sum/compiled-from-Haskell/sum-left-data/2500 | 8.973 ms | 7.938 ms | -11.5% |
| sum/compiled-from-Haskell/sum-left-data/5000 | 18.63 ms | 16.71 ms | -10.3% |
| sum/hand-written-PLC/sum-right-builtin/100 | 56.02 μs | 55.68 μs | -0.6% |
| sum/hand-written-PLC/sum-right-builtin/500 | 287.3 μs | 282.0 μs | -1.8% |
| sum/hand-written-PLC/sum-right-builtin/1000 | 592.1 μs | 582.6 μs | -1.6% |
| sum/hand-written-PLC/sum-right-builtin/2500 | 1.730 ms | 1.700 ms | -1.7% |
| sum/hand-written-PLC/sum-right-builtin/5000 | 3.775 ms | 3.701 ms | -2.0% |
| sum/hand-written-PLC/sum-right-Scott/100 | 38.09 μs | 36.30 μs | -4.7% |
| sum/hand-written-PLC/sum-right-Scott/500 | 205.4 μs | 196.1 μs | -4.5% |
| sum/hand-written-PLC/sum-right-Scott/1000 | 443.2 μs | 423.6 μs | -4.4% |
| sum/hand-written-PLC/sum-right-Scott/2500 | 1.626 ms | 1.571 ms | -3.4% |
| sum/hand-written-PLC/sum-right-Scott/5000 | 4.558 ms | 4.438 ms | -2.6% |
| sum/hand-written-PLC/sum-left-builtin/100 | 62.41 μs | 58.77 μs | -5.8% |
| sum/hand-written-PLC/sum-left-builtin/500 | 310.2 μs | 289.9 μs | -6.5% |
| sum/hand-written-PLC/sum-left-builtin/1000 | 620.2 μs | 577.5 μs | -6.9% |
| sum/hand-written-PLC/sum-left-builtin/2500 | 1.537 ms | 1.434 ms | -6.7% |
| sum/hand-written-PLC/sum-left-builtin/5000 | 3.061 ms | 2.858 ms | -6.6% |
| sum/hand-written-PLC/sum-left-Scott/100 | 41.18 μs | 39.09 μs | -5.1% |
| sum/hand-written-PLC/sum-left-Scott/500 | 223.8 μs | 218.4 μs | -2.4% |
| sum/hand-written-PLC/sum-left-Scott/1000 | 504.9 μs | 489.4 μs | -3.1% |
| sum/hand-written-PLC/sum-left-Scott/2500 | 1.833 ms | 1.792 ms | -2.2% |
| sum/hand-written-PLC/sum-left-Scott/5000 | 4.638 ms | 4.568 ms | -1.5% |
| 40b3e8c | 5f34838 | Change | |
|---|---|---|---|
| TOTAL | 341.0 ms | 282.9 ms | -17.0% |
Click here to check the status of your benchmark.
Comparing benchmark results of 'lists' on '40b3e8c4d' (base) and '5f3483866' (PR)
Results table
| Script | 40b3e8c | 5f34838 | Change |
|---|---|---|---|
| sort/ghcSort/50 | 182.2 μs | 150.5 μs | -17.4% |
| sort/ghcSort/100 | 423.9 μs | 346.1 μs | -18.4% |
| sort/ghcSort/150 | 737.0 μs | 593.7 μs | -19.4% |
| sort/ghcSort/200 | 989.8 μs | 799.8 μs | -19.2% |
| sort/ghcSort/250 | 1.285 ms | 1.040 ms | -19.1% |
| sort/ghcSort/300 | 1.686 ms | 1.360 ms | -19.3% |
| sort/insertionSort/50 | 614.3 μs | 469.7 μs | -23.5% |
| sort/insertionSort/100 | 2.449 ms | 1.866 ms | -23.8% |
| sort/insertionSort/150 | 5.519 ms | 4.180 ms | -24.3% |
| sort/insertionSort/200 | 9.847 ms | 7.439 ms | -24.5% |
| sort/insertionSort/250 | 15.44 ms | 11.67 ms | -24.4% |
| sort/insertionSort/300 | 22.32 ms | 16.92 ms | -24.2% |
| sort/mergeSort/50 | 549.8 μs | 453.0 μs | -17.6% |
| sort/mergeSort/100 | 1.267 ms | 1.038 ms | -18.1% |
| sort/mergeSort/150 | 2.032 ms | 1.687 ms | -17.0% |
| sort/mergeSort/200 | 2.862 ms | 2.357 ms | -17.6% |
| sort/mergeSort/250 | 3.746 ms | 3.090 ms | -17.5% |
| sort/mergeSort/300 | 4.560 ms | 3.777 ms | -17.2% |
| sort/quickSort/50 | 1.471 ms | 1.117 ms | -24.1% |
| sort/quickSort/100 | 6.043 ms | 4.708 ms | -22.1% |
| sort/quickSort/150 | 13.61 ms | 10.58 ms | -22.3% |
| sort/quickSort/200 | 24.08 ms | 18.69 ms | -22.4% |
| sort/quickSort/250 | 37.84 ms | 29.32 ms | -22.5% |
| sort/quickSort/300 | 54.89 ms | 42.57 ms | -22.4% |
| sum/compiled-from-Haskell/sum-right-builtin/100 | 82.16 μs | 81.05 μs | -1.4% |
| sum/compiled-from-Haskell/sum-right-builtin/500 | 429.6 μs | 422.8 μs | -1.6% |
| sum/compiled-from-Haskell/sum-right-builtin/1000 | 921.2 μs | 907.6 μs | -1.5% |
| sum/compiled-from-Haskell/sum-right-builtin/2500 | 2.814 ms | 2.788 ms | -0.9% |
| sum/compiled-from-Haskell/sum-right-builtin/5000 | 6.095 ms | 6.021 ms | -1.2% |
| sum/compiled-from-Haskell/sum-right-Scott/100 | 47.14 μs | 46.30 μs | -1.8% |
| sum/compiled-from-Haskell/sum-right-Scott/500 | 252.6 μs | 248.9 μs | -1.5% |
| sum/compiled-from-Haskell/sum-right-Scott/1000 | 547.8 μs | 541.6 μs | -1.1% |
| sum/compiled-from-Haskell/sum-right-Scott/2500 | 1.921 ms | 1.889 ms | -1.7% |
| sum/compiled-from-Haskell/sum-right-Scott/5000 | 4.347 ms | 4.281 ms | -1.5% |
| sum/compiled-from-Haskell/sum-right-data/100 | 260.4 μs | 215.9 μs | -17.1% |
| sum/compiled-from-Haskell/sum-right-data/500 | 1.445 ms | 1.186 ms | -17.9% |
| sum/compiled-from-Haskell/sum-right-data/1000 | 3.245 ms | 2.720 ms | -16.2% |
| sum/compiled-from-Haskell/sum-right-data/2500 | 8.702 ms | 7.441 ms | -14.5% |
| sum/compiled-from-Haskell/sum-right-data/5000 | 18.26 ms | 15.71 ms | -14.0% |
| sum/compiled-from-Haskell/sum-left-builtin/100 | 81.36 μs | 79.86 μs | -1.8% |
| sum/compiled-from-Haskell/sum-left-builtin/500 | 416.1 μs | 410.8 μs | -1.3% |
| sum/compiled-from-Haskell/sum-left-builtin/1000 | 900.2 μs | 886.5 μs | -1.5% |
| sum/compiled-from-Haskell/sum-left-builtin/2500 | 2.755 ms | 2.718 ms | -1.3% |
| sum/compiled-from-Haskell/sum-left-builtin/5000 | 6.065 ms | 5.972 ms | -1.5% |
| sum/compiled-from-Haskell/sum-left-Scott/100 | 44.97 μs | 43.57 μs | -3.1% |
| sum/compiled-from-Haskell/sum-left-Scott/500 | 243.1 μs | 236.3 μs | -2.8% |
| sum/compiled-from-Haskell/sum-left-Scott/1000 | 533.5 μs | 519.4 μs | -2.6% |
| sum/compiled-from-Haskell/sum-left-Scott/2500 | 1.846 ms | 1.802 ms | -2.4% |
| sum/compiled-from-Haskell/sum-left-Scott/5000 | 4.249 ms | 4.156 ms | -2.2% |
| sum/compiled-from-Haskell/sum-left-data/100 | 266.1 μs | 232.4 μs | -12.7% |
| sum/compiled-from-Haskell/sum-left-data/500 | 1.481 ms | 1.332 ms | -10.1% |
| sum/compiled-from-Haskell/sum-left-data/1000 | 3.325 ms | 2.827 ms | -15.0% |
| sum/compiled-from-Haskell/sum-left-data/2500 | 8.900 ms | 7.958 ms | -10.6% |
| sum/compiled-from-Haskell/sum-left-data/5000 | 18.53 ms | 16.77 ms | -9.5% |
| sum/hand-written-PLC/sum-right-builtin/100 | 56.46 μs | 54.57 μs | -3.3% |
| sum/hand-written-PLC/sum-right-builtin/500 | 284.4 μs | 274.4 μs | -3.5% |
| sum/hand-written-PLC/sum-right-builtin/1000 | 588.7 μs | 570.7 μs | -3.1% |
| sum/hand-written-PLC/sum-right-builtin/2500 | 1.725 ms | 1.670 ms | -3.2% |
| sum/hand-written-PLC/sum-right-builtin/5000 | 3.764 ms | 3.643 ms | -3.2% |
| sum/hand-written-PLC/sum-right-Scott/100 | 37.95 μs | 35.62 μs | -6.1% |
| sum/hand-written-PLC/sum-right-Scott/500 | 204.5 μs | 196.1 μs | -4.1% |
| sum/hand-written-PLC/sum-right-Scott/1000 | 440.0 μs | 423.4 μs | -3.8% |
| sum/hand-written-PLC/sum-right-Scott/2500 | 1.624 ms | 1.572 ms | -3.2% |
| sum/hand-written-PLC/sum-right-Scott/5000 | 4.548 ms | 4.452 ms | -2.1% |
| sum/hand-written-PLC/sum-left-builtin/100 | 59.63 μs | 57.11 μs | -4.2% |
| sum/hand-written-PLC/sum-left-builtin/500 | 295.7 μs | 283.2 μs | -4.2% |
| sum/hand-written-PLC/sum-left-builtin/1000 | 591.1 μs | 565.8 μs | -4.3% |
| sum/hand-written-PLC/sum-left-builtin/2500 | 1.464 ms | 1.406 ms | -4.0% |
| sum/hand-written-PLC/sum-left-builtin/5000 | 2.918 ms | 2.806 ms | -3.8% |
| sum/hand-written-PLC/sum-left-Scott/100 | 40.75 μs | 39.79 μs | -2.4% |
| sum/hand-written-PLC/sum-left-Scott/500 | 225.5 μs | 216.9 μs | -3.8% |
| sum/hand-written-PLC/sum-left-Scott/1000 | 505.2 μs | 488.7 μs | -3.3% |
| sum/hand-written-PLC/sum-left-Scott/2500 | 1.835 ms | 1.797 ms | -2.1% |
| sum/hand-written-PLC/sum-left-Scott/5000 | 4.653 ms | 4.571 ms | -1.8% |
| 40b3e8c | 5f34838 | Change | |
|---|---|---|---|
| TOTAL | 339.3 ms | 281.8 ms | -17.0% |