[GHC] #641: Cross platform repeatable RTS
GHC
ghc-devs at haskell.org
Sun Sep 2 21:16:03 UTC 2018
#641: Cross platform repeatable RTS
-----------------------------------+-----------------------
Reporter: cgibbard@… | Owner: (none)
Type: bug | Status: closed
Priority: normal | Milestone:
Component: Runtime System | Version: 6.4.1
Resolution: fixed | Keywords:
Operating System: Linux | Architecture: x86
Type of failure: None/Unknown |
-----------------------------------+-----------------------
Changes (by Krzysztof Gogolewski <krz.gogolewski@…>):
* failure: => None/Unknown
Comment:
In [changeset:"ed789516e201e4fad771e5588da47a62e53b42b8/ghc" ed78951/ghc]:
{{{
#!CommitTicketReference repository="ghc"
revision="ed789516e201e4fad771e5588da47a62e53b42b8"
make iToBase62's inner loop stricter in one of its arguments
Summary:
hadrian's support for dynamic ways is currently broken (see hadrian#641
[1]).
The stage 1 GHCs that hadrian produces end up producing bad code for
the `iToBase62` function after a few optimisation passes.
In the case where `quotRem` returns (overflowError, 0),
GHC isn't careful enough to realise q is _|_ and happily inlines,
distributes and floats code around until we end up trying to access
index `minBound :: Int` of an array of 62 chars, as a result of inlining
the definition of `quotRem` for Ints, in particular the minBound branch
[2].
I will separately look into reproducing the bad transformation on a small
self-contained example and filling a ticket.
[1]: https://github.com/snowleopard/hadrian/issues/641
[2]:
https://git.haskell.org/ghc.git/blob/HEAD:/libraries/base/GHC/Real.hs#l366
Test Plan: fixes hadrian#641
Reviewers: bgamari, tdammers
Reviewed By: tdammers
Subscribers: tdammers, rwbarton, carter
Differential Revision: https://phabricator.haskell.org/D5106
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/641#comment:3>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list