[GHC] #15646: ghci takes super long time to find the type of large fractional number
GHC
ghc-devs at haskell.org
Fri Dec 28 10:57:45 UTC 2018
#15646: ghci takes super long time to find the type of large fractional number
-------------------------------------+-------------------------------------
Reporter: Johannkokos | Owner:
| JulianLeviston
Type: bug | Status: new
Priority: normal | Milestone: 8.6.1
Component: GHCi | Version: 8.4.3
Resolution: | Keywords: newcomer
Operating System: Unknown/Multiple | Architecture:
Type of failure: Compile-time | Unknown/Multiple
performance bug | Test Case:
Blocked By: | Blocking:
Related Tickets: #5692 | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by JulianLeviston):
Here is the current summary of what I've been intending to do:
Problem is excessive duration of typechecking large fractionals.
Initial issue was renamer and desugarer were consructing the rational
before typechecking.
The plan that has been implemented is to adjust FractionalLit to store the
significand and the exponent, as well as the FractionalExponentBase
(because the fractional *may* be hex or dec) instead of just a rational,
and to parse the source as an application of a new library functions
`mkFractionalLit` and `mkTHFractionalLit`. In the process we also added a
new core expression `mkRationalExpr`
Template haskell still uses a rational to represent its fractional lits,
so we have *two* constructors in the FractionalLit type: FL and THFL (one
for regular literals and one for Template Haskell literals).
We also had to adjust the lexer in the parser to deal with parsing the
values into the new forms.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15646#comment:66>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list