[GHC] #10987: -i option requires named module
GHC
ghc-devs at haskell.org
Thu Oct 22 15:46:35 UTC 2015
#10987: -i option requires named module
-------------------------------------+-------------------------------------
Reporter: crockeea | Owner: osa1
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.10.2
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 osa1):
Here's one more thing about this issue. In the same layout:
{{{
➜ trac10987 ghci -itest Bar.hs
GHCi, version 7.10.2: http://www.haskell.org/ghc/ :? for help
<no location info>: can't find file: Bar.hs
Failed, modules loaded: none.
}}}
I'd think this is OK, but the user manuals says:
https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/separate-
compilation.html#search-path
> In --make mode or GHCi, GHC will look for a source file for Foo and
arrange
> to compile it first.
...
> GHC uses the same strategy in each of these cases for finding the
appropriate
> file.
>
> This strategy is as follows: GHC keeps a list of directories called the
> search path. For each of these directories, it tries appending
> basename.extension to the directory, and checks whether the file exists.
The
> value of basename is the module name with dots replaced by the directory
> separator ('/' or '\', depending on the system), and extension is a
source
> extension (hs, lhs) if we are in --make mode or GHCi, or hisuf
otherwise.
...
> -idirs
> This flag appends a colon-separated list of dirs to the search path.
From the user manual is seems like GHC should have looked into directories
in
`-i`. We should either update the user manual or modify GHC.
Personally, I think GHC should never use `-i` when looking for files, and
it
should never look for files unless the input has a file format. Otherwise
there'll always be some confusing when a file is found, but module loder
could
also find the same file, because file loader makes no assumptions on what
module to find in the file but module loader makes an assumption about
this,
leading to different outcomes depending on which one runs.
Also, man page says "finding imports" for `-i` and it doesn't say anything
about "search path" or how files are searched etc.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10987#comment:3>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list