ghc-prim

GHC primitives

Version on this page:0.5.1.0
LTS Haskell 22.13:0.10.0
Stackage Nightly 2024-03-14:0.11.0
Latest on Hackage:0.11.0

See all snapshots ghc-prim appears in

BSD-3-Clause licensed
Maintained by [email protected]
This version can be pinned in stack with:ghc-prim-0.5.1.0@sha256:56be062f77c90bd2dec06d5ebb7a512751d9e5c0e7f77674c38dcad92be2de89,2425

Module documentation for 0.5.1.0

This package contains the primitive types and operations supplied by GHC.

Changes

0.5.1.0

  • Shipped with GHC 8.2.1

  • Added to GHC.Prim:

      fabsDouble# :: Double# -> Double#
      fabsFloat# :: Float# -> Float#
      isByteArrayPinned# :: ByteArray# -> Int#
      isMutableByteArrayPinned# :: MutableByteArray# s -> Int#
      anyToAddr# :: a -> State# (RealWorld) -> (# State# (RealWorld),Addr# #)
    
  • New primitives for compact regions in GHC.Prim:

      Compact#
      compactNew#
      compactResize#
      compactContains#
      compactContainsAny#
      compactGetFirstBlock#
      compactGetNextBlock#
      compactAllocateBlock#
      compactFixupPointers#
      compactAdd#
      compactAddWithSharing#
      compactSize#
    
  • Generalised noDuplicate# from

      noDuplicate# :: State# (RealWorld) -> State# (RealWorld)
    

    to

      noDuplicate# :: State# s -> State# s
    

0.5.0.0

  • Shipped with GHC 8.0.1

  • GHC.Classes: new class IP (a :: Symbol) b | a -> b

  • GHC.Prim: changed type signatures from

      check# :: (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, () #)
      finalizeWeak# :: Weak# a -> State# RealWorld -> (# State# RealWorld, Int#, State# RealWorld -> (# State# RealWorld, () #) #)
      mkWeak# :: a -> b -> c -> State# RealWorld -> (# State# RealWorld, Weak# b #)
    

    to

      check# :: (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> State# RealWorld
      finalizeWeak# :: Weak# a -> State# RealWorld -> (# State# RealWorld, Int#, State# RealWorld -> (# State# RealWorld, b #) #)
      mkWeak# :: a -> b -> (State# RealWorld -> (# State# RealWorld, c #)) -> State# RealWorld -> (# State# RealWorld, Weak# b #)
    
  • Removed from GHC.Prim:

      parAt# :: b -> a -> Int# -> Int# -> Int# -> Int# -> c -> Int#
      parAtAbs# :: a -> Int# -> Int# -> Int# -> Int# -> Int# -> b -> Int#
      parAtForNow# :: b -> a -> Int# -> Int# -> Int# -> Int# -> c -> Int#
      parAtRel# :: a -> Int# -> Int# -> Int# -> Int# -> Int# -> b -> Int#
      parGlobal# :: a -> Int# -> Int# -> Int# -> Int# -> b -> Int#
      parLocal# :: a -> Int# -> Int# -> Int# -> Int# -> b -> Int#
    
  • Added to GHC.Prim:

      getSizeofMutableByteArray# :: MutableByteArray# d -> State# d -> (# State# d, Int# #)
      subWordC# :: Word# -> Word# -> (# Word#, Int# #)
      runRW# :: (State# RealWorld -> (# State# RealWorld, o #)) -> (# State# RealWorld, o #)
    
  • Added to GHC.Types:

      data Module = Module TrName TrName
      data Nat
      data Symbol
      data TrName = TrNameS Addr# | TrNameD [Char]
      data TyCon = TyCon Word# Word# Module TrName