#1409: Allow recursively dependent modules transparently (without .hs-boot or
anything)
---------------------------------+------------------------------------------
    Reporter:  Isaac Dupree      |        Owner:                  
        Type:  feature request   |       Status:  new             
    Priority:  normal            |    Milestone:  _|_             
   Component:  Compiler          |      Version:  6.10.2          
    Severity:  normal            |   Resolution:                  
    Keywords:                    |   Difficulty:  Unknown         
    Testcase:                    |           Os:  Unknown/Multiple
Architecture:  Unknown/Multiple  |  
---------------------------------+------------------------------------------
Comment (by guest):

 If some ghc hacker have time, please fix this problem.
 I waste too much time to fix import cycle problem, it's not `little`
 problem, special to big projects.

 Example in my projects have 30 files, i got below information by ghc:

 ------------------> output start <--------------
 Module imports form a cycle for modules:
   main:Manatee.File[boot]
     imports: Manatee.Commander[boot] Manatee.View[boot]
              Graphics.UI.Gtk.Gdk.Events Data.ByteString.Lazy.UTF8
              Data.ByteString.Lazy Manatee.IORefObject Data.IORef
   main:Manatee.View[boot]
     imports: Manatee.Page Graphics.UI.Gtk.Abstract.Paned
   main:Manatee.Page
     imports: Manatee.TabGroup[boot] Manatee.File[boot]
              Manatee.ViewList[boot] Manatee.StringBuffer[boot]
              Manatee.PageList[boot]
              Manatee.IORefObject Manatee.PageBuffer Manatee.Utils
 Manatee.View
              Graphics.UI.Gtk Control.Monad Data.List System.FilePath
              Control.Applicative Data.Function Data.IORef Text.Printf
   main:Manatee.TabGroup[boot]
     imports: Manatee.PageList[boot] Manatee.Page[boot]
              Data.IORef
   main:Manatee.PageList[boot]
     imports: Manatee.Page[boot]
              Data.Set Data.IORef
   main:Manatee.Page[boot]
     imports: Manatee.View[boot] Manatee.IORefObject[boot]
              Manatee.PageBuffer Graphics.UI.Gtk
   main:Manatee.PageBuffer
     imports: Manatee.ViewList[boot] Manatee.View[boot]
              Graphics.UI.Gtk Data.IORef
   main:Manatee.ViewList[boot]
     imports: Manatee.Page[boot] Manatee.IORefObject[boot]
              Manatee.ViewNode[boot] Manatee.View[boot]
              Data.Set Data.IORef
   main:Manatee.StringBuffer[boot]
     imports: Manatee.PageBuffer Graphics.UI.Gtk.SourceView.SourceBuffer
   main:Manatee.IORefObject
     imports: Manatee.Commander[boot] Manatee.PageList[boot]
              Manatee.ViewNodeList[boot] Manatee.ViewList[boot]
              Manatee.Utils Graphics.UI.Gtk.Windows.WindowGroup
              Graphics.UI.Gtk.Abstract.Container Graphics.UI.Gtk Data.IORef
   main:Manatee.View
     imports: Manatee.PageList[boot] Manatee.Page[boot]
              Manatee.ListZipper Data.Foldable Manatee.ViewNode
              Manatee.IORefObject Manatee.PageBuffer Manatee.TabGroup
              Manatee.ViewList Graphics.UI.Gtk.Layout.VPaned
              Graphics.UI.Gtk.Layout.HPaned Graphics.UI.Gtk.Abstract.Paned
              Graphics.UI.Gtk.Abstract.Container Graphics.UI.Gtk Data.List
              Data.IORef Control.Monad.Reader Text.Printf Data.Function
              Data.Maybe Control.Applicative Control.Monad.State
   main:Manatee.ViewNode
     imports: Manatee.ViewNodeList[boot] Manatee.ViewList[boot]
              Manatee.View[boot]
              Manatee.Utils Manatee.IORefObject
 Graphics.UI.Gtk.Layout.VPaned
              Graphics.UI.Gtk.Layout.HPaned Graphics.UI.Gtk.Abstract.Paned
              Graphics.UI.Gtk Data.Function Control.Monad Text.Printf
 Data.Maybe
              Data.IORef Control.Applicative
   main:Manatee.TabGroup
     imports: Manatee.PageList[boot] Manatee.Page[boot]
              Data.Foldable Data.Sequence Manatee.Utils
              Graphics.UI.Gtk.SourceView.SourceBuffer Graphics.UI.Gtk
 Data.List
              Data.Sequence Control.Monad Text.Printf Control.Applicative
              Data.IORef
   main:Manatee.ViewList
     imports: Manatee.Page[boot] Manatee.View[boot]
              Manatee.ListZipper Manatee.IORefObject Manatee.ListZipper
              Manatee.Utils Manatee.ViewNode
 Graphics.UI.Gtk.Abstract.Container
              Graphics.UI.Gtk.Abstract.Paned Graphics.UI.Gtk Text.Printf
              Data.IORef Control.Applicative

 ---------------> output end <-------------

 Above information is really less help, if i change one file, i will got
 another different output.

 I have spend more time to fix this problem along with my project increase
 everyday.

 I'm really tired....

 So please ghc expert fix this problem, then I'm free.

 Thanks!

   -- Andy

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/1409#comment:30>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to