[GHC] #9231: 7.8 regression in Read instance of Data.Fixed.Pico
GHC
ghc-devs at haskell.org
Tue Jun 24 10:27:45 UTC 2014
#9231: 7.8 regression in Read instance of Data.Fixed.Pico
-------------------------------------+------------------------------------
Reporter: leonbaum2 | Owner:
Type: bug | Status: new
Priority: highest | Milestone: 7.8.3
Component: libraries/base | Version: 7.8.2
Resolution: | Keywords: regression
Operating System: Unknown/Multiple | Architecture: Unknown/Multiple
Type of failure: None/Unknown | Difficulty: Unknown
Test Case: | Blocked By:
Blocking: | Related Tickets:
-------------------------------------+------------------------------------
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 at gnu.org>
Differential Revision: https://phabricator.haskell.org/D25
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9231#comment:7>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list