Skip to content

WIP: Make Int64#/Word64 useful on all architectures

John Ericson requested to merge wip/int64-everywhere into master

The boxed Int64 uses Int64#, but Int32# still uses Int#. The 32-bit case is less pressing to change because it is not a source of brittle CPP---it is the same thing on all platforms.

We need Int64/Word64 constant folding to avoid the let/app restriction on Core, so that is implemented now. 32-bit constant unfolding and 32-bit literals are left as follow-up.

The place to start reading first is primops.txt.pp

This is the bulk of #11953 (closed), #17377 (closed), #17375 (closed)

Please take a few moments to verify that your commits fulfill the following:

  • are either individually buildable or squashed
  • have commit messages which describe what they do (referring to Notes and tickets using #NNNN syntax when appropriate)
  • have added source comments describing your change. For larger changes you likely should add a Note and cross-reference it from the relevant places.
  • add a testcase to the testsuite.
  • if your MR affects library interfaces (e.g. changes base) or affects whether GHC will accept user-written code, please add the ~"user facing" label.
  • updates the users guide if applicable
  • mentions new features in the release notes for the next release

If you have any questions don't hesitate to open your merge request and inquire in a comment. If your patch isn't quite done yet please do add prefix your MR title with WIP:.

Edited by Sylvain Henry

Merge request reports