[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