[GHC] #15646: ghci takes super long time to find the type of large fractional number
GHC
ghc-devs at haskell.org
Wed Nov 28 15:07:19 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 osa1):
> I can't print out litE and litI because they don't have a show instance
for Core
In GHC you should be using `Outputable` instances (with `pprTrace` and
frieds).
Most GHC types don't have a `Show` instance, but most have `Outputable`.
In this
case `pprTrace "..." (text "litI:" <+> ppr litI <+> "litE:" <+> ppr litE)`
should work.
> So... yeah, this is what happens when I run it:
Right, so the problem is in your `mkRational` name definition:
{{{
mkRationalName = tcQual gHC_REAL (fsLit "mkRational")
mkRationalIdKey
}}}
You're saying that `mkRational` lives in `GHC.Real`, but that's not the
case. It
actually lives in the GHC module `BasicTypes`.
We need to put `mkRational` to somehwere in `base`. `GHC.Real` is a good
place I
think.
Secondly, I see some uses of `mkRational` in `BasicTypes`. Those also need
to be
moved, because when booting GHC, when building stage 1, we'll be using a
GHC
that won't have `mkRational` in `GHC.Real`. So all those definitions that
use
`mkRational` need to be moved to `GHC.Real` too.
Does this make sense?
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15646#comment:60>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list