[GHC] #11418: Suggest correct spelling when module is not found because of typo

GHC ghc-devs at haskell.org
Sun Jan 17 21:50:07 UTC 2016


#11418: Suggest correct spelling when module is not found because of typo
-------------------------------------+-------------------------------------
        Reporter:  syd               |                Owner:
            Type:  feature request   |               Status:  new
        Priority:  lowest            |            Milestone:
       Component:  Compiler          |              Version:
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by syd):

 Replying to [comment:12 thomie]:
 > Ok, let's back up.
 >
 > > Does that mean ghc hammers the file system with guesses for every
 import?
 >
 > Given the two files from the description, here's what happens when you
 run `ghc Aaa.hs`:
 > * GHC asks the OS to open `./Aaa.hs`, and reads its contents
 > * GHC figures out it needs module `BBb`
 > * GHC "guesses" that `BBb` is either in `./BBb.hs` or in `./BBb.lhs`
 > * GHC asks the OS to open those two files in order
 > * Since neither file exists, an error message is shown (after also
 consulting the package database, but let's ignore that for the moment)
 >
 > So in total GHC tries to open 3 files: `Aaa.hs`, `BBb.hs` and `BBb.lhs`.
 It doesn't have to ask the OS for a list of all files in the directory.
 Does that mean GHC tries both of those (multiplied by each extra source
 directory specified) for every import of `Aaa`?

 That may be something that could be optimized for `ghc --make`.

 > If you run `ghc Aaa.hs` again later, it will do the exact same thing.
 There is no cache.
 Thank you for this clarification!

 > Even if there are another one million files in the current directory,
 GHC still has to only open those 3 files. It doesn't "hammer" the file
 system.
 >
 > > Is there not some sort of cache of previously found modules that we
 can check?
 >
 > Not in the above scenerio. But just to be clear: do you mean a cache
 that could be used between separate invocations of GHC, or within a single
 invocation of GHC?

 I keep forgetting that there is a big difference between `ghc` and `ghc
 --make`.

 I meant `ghc --make`, I think, so a cache that works across seperate
 invocations.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11418#comment:13>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list