[project @ 2002-10-17 14:26:16 by simonmar]
authorsimonmar <unknown>
Thu, 17 Oct 2002 14:26:19 +0000 (14:26 +0000)
committersimonmar <unknown>
Thu, 17 Oct 2002 14:26:19 +0000 (14:26 +0000)
commit06575d67c6e85ee746d96c77dab9e40edfb4f7ee
tree9a859d83a85ae62831fadb21c27b408a1661962f
parent7370adc00c9de2092c2323c7a8e20902dc4bbe41
[project @ 2002-10-17 14:26:16 by simonmar]
Finder overhaul.

The finder had got pretty complicated; this commit is mainly a
cleanup, with one new feature:

  - the finder has a cache (again).  The cache may be flushed by
    calling flushFinderCache, which actually only flushes home modules
    from the cache, because package modules are assumed not to move.
    This change is apropos of some other changes which will result in
    the finder being called more often, so we think a cache is going
    to be worthwhile.

Also a couple of bugs were fixed:

  - the field ml_hi_file in a ModLocation is now *always* the name
    of the .hi file.  If you need a .hi-boot file, you have to make
    it up by changing the suffix of ml_hi_file.  (DriverMkDepend and
    RnHiFiles do this).  This was the cause of a bug, but I can't
    remember the details.

  - The -odir flag now works in a more reasonable way: hierarchical
    modules get put in subdirectories of the -odir directory.  eg.
    if your module is A.B.C, and -odir D is specified, then the object
    will be D/A/B/C.o; previously it would have been D/C.o.
ghc/compiler/compMan/CompManager.lhs
ghc/compiler/main/DriverFlags.hs
ghc/compiler/main/DriverMkDepend.hs
ghc/compiler/main/DriverPipeline.hs
ghc/compiler/main/DriverState.hs
ghc/compiler/main/DriverUtil.hs
ghc/compiler/main/Finder.lhs
ghc/compiler/rename/RnHiFiles.lhs