Skip to content
Snippets Groups Projects
Forked from Glasgow Haskell Compiler / GHC
Source project has a limited visibility.
  • Sylvain Henry's avatar
    d8dc0f96
    Fix array and cleanup conversion primops (#19026) · d8dc0f96
    Sylvain Henry authored and Marge Bot's avatar Marge Bot committed
    The first change makes the array ones use the proper fixed-size types,
    which also means that just like before, they can be used without
    explicit conversions with the boxed sized types. (Before, it was Int# /
    Word# on both sides, now it is fixed sized on both sides).
    
    For the second change, don't use "extend" or "narrow" in some of the
    user-facing primops names for conversions.
    
      - Names like `narrowInt32#` are misleading when `Int` is 32-bits.
    
      - Names like `extendInt64#` are flat-out wrong when `Int is
        32-bits.
    
      - `narrow{Int,Word}<N>#` however map a type to itself, and so don't
        suffer from this problem. They are left as-is.
    
    These changes are batched together because Alex happend to use the array
    ops. We can only use released versions of Alex at this time, sadly, and
    I don't want to have to have a release thatwon't work for the final GHC
    9.2. So by combining these we get all the changes for Alex done at once.
    
    Bump hackage state in a few places, and also make that workflow slightly
    easier for the future.
    
    Bump minimum Alex version
    
    Bump Cabal, array, bytestring, containers, text, and binary submodules
    d8dc0f96
    History
    Fix array and cleanup conversion primops (#19026)
    Sylvain Henry authored and Marge Bot's avatar Marge Bot committed
    The first change makes the array ones use the proper fixed-size types,
    which also means that just like before, they can be used without
    explicit conversions with the boxed sized types. (Before, it was Int# /
    Word# on both sides, now it is fixed sized on both sides).
    
    For the second change, don't use "extend" or "narrow" in some of the
    user-facing primops names for conversions.
    
      - Names like `narrowInt32#` are misleading when `Int` is 32-bits.
    
      - Names like `extendInt64#` are flat-out wrong when `Int is
        32-bits.
    
      - `narrow{Int,Word}<N>#` however map a type to itself, and so don't
        suffer from this problem. They are left as-is.
    
    These changes are batched together because Alex happend to use the array
    ops. We can only use released versions of Alex at this time, sadly, and
    I don't want to have to have a release thatwon't work for the final GHC
    9.2. So by combining these we get all the changes for Alex done at once.
    
    Bump hackage state in a few places, and also make that workflow slightly
    easier for the future.
    
    Bump minimum Alex version
    
    Bump Cabal, array, bytestring, containers, text, and binary submodules
Code owners
Assign users and groups as approvers for specific file changes. Learn more.