Skip to content

[Builtins] Allow casing on booleans #7029

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

effectfully
Copy link
Contributor

This adds support for casing on booleans and integers using Case, which is the first part of #6602.

@effectfully effectfully self-assigned this Apr 10, 2025
@effectfully effectfully force-pushed the effectfully/builtins/allow-casing-on-booleans branch from 8358a8f to 5244c96 Compare April 10, 2025 15:19
@effectfully effectfully force-pushed the effectfully/builtins/allow-casing-on-booleans branch from 5244c96 to 8b55532 Compare April 10, 2025 23:30
@effectfully effectfully force-pushed the effectfully/builtins/allow-casing-on-booleans branch from 8b55532 to 2344b92 Compare April 11, 2025 00:23
@effectfully effectfully force-pushed the effectfully/builtins/allow-casing-on-booleans branch from 2344b92 to c0df0c1 Compare April 11, 2025 00:24
@effectfully
Copy link
Contributor Author

/benchmark nofib

1 similar comment
@effectfully
Copy link
Contributor Author

/benchmark nofib

@effectfully
Copy link
Contributor Author

/benchmark lists

1 similar comment
@effectfully
Copy link
Contributor Author

/benchmark lists

Copy link
Contributor

Click here to check the status of your benchmark.

Copy link
Contributor

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%

Copy link
Contributor

Click here to check the status of your benchmark.

Copy link
Contributor

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%

Copy link
Contributor

Click here to check the status of your benchmark.

Copy link
Contributor

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%

Copy link
Contributor

Click here to check the status of your benchmark.

Copy link
Contributor

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%

@effectfully effectfully force-pushed the effectfully/builtins/allow-casing-on-booleans branch from c0df0c1 to 06d1a16 Compare April 14, 2025 22:41
…to effectfully/builtins/allow-casing-on-booleans
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant