uhc-light-1.1.9.4: src/UHC/Light/Compiler/ConfigInternalVersions.hs
module UHC.Light.Compiler.ConfigInternalVersions
( InternalVersionCombined
, internalVersionCombined
, internalVersionTySys, internalVersionCodeGen, internalVersionHI, internalVersionCore, internalVersionCoreRun, internalVersionHS )
where
import Data.Word
import Data.Bits
{-# LINE 16 "src/ehc/ConfigInternalVersions.chs" #-}
-- | Encoding of internal version
type InternalVersion = Word64
type InternalVersionCombined = Word64
mkInternalVersion :: Int -> InternalVersion
mkInternalVersion = fromIntegral
{-# LINE 25 "src/ehc/ConfigInternalVersions.chs" #-}
internalVersionCombined :: InternalVersionCombined
internalVersionCombined =
internalVersionHI
.|. (internalVersionCore `shiftL` 6)
.|. (internalVersionCoreRun `shiftL` 12)
.|. (internalVersionTySys `shiftL` 18)
.|. (internalVersionCodeGen `shiftL` 24)
.|. (internalVersionEH `shiftL` 30)
.|. (internalVersionHS `shiftL` 36)
{-# LINE 37 "src/ehc/ConfigInternalVersions.chs" #-}
-- | For variation in type inferencing
internalVersionTySys = mkInternalVersion 1
-- | For variation in code gen
internalVersionCodeGen = mkInternalVersion 1
-- | For binary/serialized HI .hi files and all data stored there
internalVersionHI = mkInternalVersion 1
-- | For binary/serialized Core .cr/.bcr/.tcr etc files
internalVersionCore = mkInternalVersion 2
-- | For binary/serialized CoreRun .crr/.bcrr./tcrr etc files
internalVersionCoreRun = mkInternalVersion 1
-- | For binary/serialized EH intermediate structures
internalVersionEH = mkInternalVersion 2
-- | For HS frontend differences
internalVersionHS = mkInternalVersion 1