[GHC] #14809: Invocation of ghc with --make flag should be smarter about hs-boot and lhs-boot files

#14809: Invocation of ghc with --make flag should be smarter about hs-boot and lhs- boot files -------------------------------------+------------------------------------- Reporter: mrkkrp | Owner: (none) Type: feature | Status: new request | Priority: normal | Milestone: Component: Compiler | Version: 8.2.2 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- Currently, `--make` in handy for compiling programs with boot files using only one `ghc` invocation. But it behaves strange. If I pass `A.hs`, `B.hs`, and `A.hs-boot` (where `B.hs` imports module `A` with that `{-# SOURCE -#}` thing), I get an error message complaining about module `A` defined twice. Surely GHC should be able to figure out that if the second file has the extension `hs-boot`, it's a boot file and should be used as such. After all, GHC is perfectly capable of finding boot files if it's given import directories to search in (with `-i`). We can't however easily use that because it so happens that if we tell ghc about such directories, they can contain files that should not be visible. I even tried a workaround: copy all boot files to a separate location and then point to that location with `-i`. To my surprise in that case ghc does not pick up those boot files. (And with more complex nesting of modules I expect more problems with this approach.) So it would be great if we could just feed all the relevant files into ghc and it would be smart enough not to complain about modules defined twice if one of the modules is in a file with `hs-boot` or `lhs-boot` extension, but use it as a boot file for corresponding module. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14809 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC