Re: [GHC] #641: Cross platform repeatable RTS
#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
participants (1)
-
GHC