-
Notifications
You must be signed in to change notification settings - Fork 16
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
Add missing {int,word}2{Float,Double} rules on 64 bit architectures #203
Comments
Given the importance of |
I've clarified in the proposal that we would like to backport this to GHC 9.6 and 9.8 to limit the impact of the performance regression as much as possible (given that we do not currently plan to make any more 9.4 releases). |
@Bodigrim Would it be possible to move forward with a vote? As I said above, we would really prefer for this change to make it into |
If we're voting, then it'll be +1 from me |
Dear CLC members, let's vote on the proposal to add missing RULES to fix the regression caused by changing @chshersh @mixphix @angerman @parsonsmatt @hasufell +1 from me. |
+1 |
4 similar comments
+1 |
+1 |
+1 |
+1 |
Thanks all, approved unanimously. |
CLC proposal: haskell/core-libraries-committee#203 (cherry picked from commit 5126a2f)
CLC proposal: haskell/core-libraries-committee#203 (cherry picked from commit 5126a2f)
CLC proposal: haskell/core-libraries-committee#203 (cherry picked from commit 5126a2f)
Context
We currently have rules to convert between
Word#
andFloat#
/Double#
in theGHC.Float
module (inbase
):However, since GHC 9.4,
Word64
wrapsWord64#
instead ofWord#
. This means that these rules no longer fire when usingWord64
. This was the cause of regressions in thesplitmix
package reported in GHC ticket #23907.Proposal
Add the following rules to
GHC.Float
to handleWord64#
andInt64#
on 64-bit architectures:This proposal is implemented in GHC MR !11170.
Moreover, we propose to backport this change to GHC 9.6 and GHC 9.8.
Addendum 1
We do not propoe adding rules going through
Natural
at this stage, as this would require defining a new functionnaturalFromWord64#
, and adding several other rules mirroring those forintegerFromWord64#
.Addendum 2
Note that similar rules should also be implemented on 32 bit architectures, but that would require introducing new primops (see GHC ticket #23908), so we don't propose doing that for the moment.
The text was updated successfully, but these errors were encountered: