1. 09 Oct, 2020 25 commits
  2. 07 Oct, 2020 9 commits
  3. 05 Oct, 2020 3 commits
    • Ben Gamari's avatar
      rts: Fix integer width in TICK_BUMP_BY · 18a3ddf7
      Ben Gamari authored
      Previously `TICK_BUMP_BY` was defined as
      
      ```c
       #define TICK_BUMP_BY(ctr,n) CLong[ctr] = CLong[ctr] + n
      ```
      
      Yet the tickers themselves were defined as `StgInt`s. This happened to
      work out correctly on Linux, where `CLong` is 64-bits. However, it
      failed on Windows, where `CLong` is 32-bits, resulting in #18782.
      
      Fixes #18783.
      18a3ddf7
    • Krzysztof Gogolewski's avatar
      802b5e6f
    • Sebastian Graf's avatar
      Inline `integerDecodeDouble#` and constant-fold `decodeDouble_Int64#` instead · bc5de347
      Sebastian Graf authored
      Currently, `integerDecodeDouble#` is known-key so that it can be
      recognised in constant folding. But that is very brittle and doesn't
      survive worker/wrapper, which we even do for
      `NOINLINE` things since #13143.
      Also it is a trade-off: The implementation of `integerDecodeDouble#`
      allocates an `Integer` box that never cancels aways if we don't inline
      it.
      
      Hence we recognise the `decodeDouble_Int64#` primop instead in constant
      folding, so that we can inline `integerDecodeDouble#`. As a result,
      `integerDecodeDouble#` no longer needs to be known-key.
      
      While doing so, I realised that we don't constant-fold
      `decodeFloat_Int#` either, so I also added a RULE for it.
      
      `integerDecodeDouble` is dead, so I deleted it.
      
      Part of #18092. This improves the 32-bit `realToFrac`/`toRational`:
      
      Metric Decrease:
          T10359
      bc5de347
  4. 03 Oct, 2020 2 commits
  5. 02 Oct, 2020 1 commit