Skip to content
  • Sylvain Henry's avatar
    Fix toArgRep to support 64-bit reps on all systems · cdbd16f5
    Sylvain Henry authored and Marge Bot's avatar Marge Bot committed
    [This is @Ericson2314 writing a commit message for @hsyl20's patch.]
    
    (Progress towards #11953, #17377, #17375)
    
    `Int64Rep` and `Word64Rep` are currently broken on 64-bit systems.  This
    is because they should use "native arg rep" but instead use "large arg
    rep" as they do on 32-bit systems, which is either a non-concept or a
    128-bit rep depending on one's vantage point.
    
    Now, these reps currently aren't used during 64-bit compilation, so the
    brokenness isn't observed, but I don't think that constitutes reasons
    not to fix it. Firstly, the linked issues there is a clearly expressed
    desire to use explicit-bitwidth constructs in more places. Secondly, per
    [1], there are other bugs that *do* manifest from not threading
    explicit-bitwidth information all the way through the compilation
    pipeline. One can therefore view this as one piece of the larger effort
    to do that, improve ergnomics, and squash remaining bugs.
    
    Also, this is needed for !3658. I could just merge this as part of that,
    but I'm keen on merging fixes "as they are ready" so the fixes that
    aren't ready are isolated and easier to debug.
    
    [1]: https://mail.haskell.org/pipermail/ghc-devs/2020-October/019332.html
    cdbd16f5