• Sylvain Henry's avatar
    Fix array and cleanup conversion primops (#19026) · d8dc0f96
    Sylvain Henry authored
    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
Code owners : Ben Gamari
primops.txt.pp 144 KB