[GHC] #2428: bad error message for multiple modules in the same file

View: New views
2 Messages — Rating Filter:   Alert me  

[GHC] #2428: bad error message for multiple modules in the same file

by GHC-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

#2428: bad error message for multiple modules in the same file
-----------------------------+----------------------------------------------
    Reporter:  Isaac Dupree  |       Owner:          
        Type:  bug           |      Status:  new    
    Priority:  normal        |   Component:  Compiler
     Version:  6.8.2         |    Severity:  normal  
    Keywords:                |    Testcase:          
Architecture:  Unknown       |          Os:  Unknown
-----------------------------+----------------------------------------------
 consider this file:
 {{{
 module MyMod where
 foo :: Int
 foo = 3

 module Main (main) where
 import MyMod (foo)
 main :: IO ()
 main = print foo
 }}}

 The layout rule dictates that this parses properly (the first module
 clause ends when the second "module" gives a parse error, just like "in"
 ends a "let"); this gets the same error:
 {{{
 module MyMod where
  { foo :: Int; foo = 3 }
 module Main (main) where
  { import MyMod (foo); main :: IO (); main = print foo }
 }}}

 The Haskell98 report doesn't say anything about how modules are expected
 to be laid out in files, so I had assumed it would work.  The error is
 {{{
 parse error on input `module'
 }}}
 (except if Main comes before `MyMod`, ''and'' --make is used with ghc, we
 get
 {{{
 Could not find module `MyMod':
 Use -v to see a list of the files searched for.
 }}}
 even though `MyMod` is clearly (to a human) in that very file.)

 It took me a long time to figure out what was wrong and what I had to do.
 Admittedly I'm only slightly interested in GHC implementing support to
 allow this, since if multiple files are involved at all it causes module-
 finding trouble (obviously to me now); mostly I just want a good error
 message, maybe something like "Each file must contain exactly one module.
 Any module intended to be imported must be in an appropriately named file,
 e.g. module `Module.Name' goes in `Module/Name.hs'."

 ( This happened to me a long time ago... but I was reminded by #2427 )

--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/2428>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@...
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Re: [GHC] #2428: bad error message for multiple modules in the same file

by GHC-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

#2428: bad error message for multiple modules in the same file
--------------------------+-------------------------------------------------
 Reporter:  Isaac Dupree  |          Owner:            
     Type:  bug           |         Status:  new        
 Priority:  normal        |      Milestone:  6.10 branch
Component:  Compiler      |        Version:  6.8.2      
 Severity:  normal        |     Resolution:            
 Keywords:                |     Difficulty:  Unknown    
 Testcase:                |   Architecture:  Unknown    
       Os:  Unknown       |  
--------------------------+-------------------------------------------------
Changes (by igloo):

  * difficulty:  => Unknown
  * milestone:  => 6.10 branch

Comment:

 Thanks for the suggestion

--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/2428#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@...
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs