Skip to content

Remove non-existent 64-bit Word and Int literals from front-end syntax

Ömer Sinan Ağacan requested to merge osa1/ghc:remove_64bit_lits into master

This removes HsInt64Prim and HsWord64Prim literals from the front-end syntax.

We don't have concrete syntax for these so they're not possible to introduce in a .hs file.

HsInt64Prim was never used.

HsWord64Prim was used in when generating Typeable instances. TyCon fingerprints are 128-bit, which were previously represented as two Word64# on both 32-bit and 64-bit. To generate Word64# when generating Typeable instances HsWord64Prim was used. We now use 2 Word#s on 64-bit and 4 Word#s on 32-bit in GHC.Types.TyCon for the fingerprint, eliminating the need for Word64# literals.

Conversion of these Word# fields of GHC.Types.TyCon to the actual 128-bit fingerprints is done in Data.Typeable.Internal. On 32-bit we now use bitwise operations in GHC.IntWord64 for this conversion.

Merge request reports