Re: [GHC] #7483: Broken Read instance for Data.Fixed ("no parse" in legitimate cases).
#7483: Broken Read instance for Data.Fixed ("no parse" in legitimate cases). ------------------------------------------------+-------------------------- Reporter: navaati | Owner: Type: bug | Status: closed Priority: normal | Milestone: Component: libraries/base | Version: 7.6.1 Resolution: fixed | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Incorrect result at runtime | Unknown/Multiple Test Case: readFixed001 | Difficulty: Blocking: | Unknown | Blocked By: | Related Tickets: #4502 ------------------------------------------------+-------------------------- Comment (by Herbert Valerio Riedel <hvr@…>): In [changeset:"c1035d51edaac2f388a0630e2ad25391e7e3c1ab/ghc"]: {{{ #!CommitTicketReference repository="ghc" revision="c1035d51edaac2f388a0630e2ad25391e7e3c1ab" Fix regression in Data.Fixed Read instance (re #9231) `convertFixed` operates under the wrong assumption that `Data.Fixed.resolution` returns a base-10 exponent `e`, whereas it actually returns the power-of-10 value `10^e`. So while the code (that was introduced in 5f19f951d8 / #7483) happens to compute a correct result by coincidence, it allocates huge integer values in the process (i.e. `10^(10^e)`) which cause long computations which eventually result in out-of-memory conditions for `e`-values beyond `Data.Fixed.Milli`. A proper long-term fix would probably be to extend the `HasResolution` type-class to have a 2nd method providing the `e` value. Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org> Differential Revision: https://phabricator.haskell.org/D25 }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/7483#comment:3> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
participants (1)
-
GHC