[GHC] #10279: panic on haskell-src-exts

GHC ghc-devs at haskell.org
Sat Apr 18 21:08:10 UTC 2015


#10279: panic on haskell-src-exts
-------------------------------------+-------------------------------------
        Reporter:  throwaway123      |                   Owner:  ezyang
            Type:  bug               |                  Status:  new
        Priority:  normal            |               Milestone:
       Component:  Compiler          |                 Version:  7.10.1
      Resolution:                    |                Keywords:
Operating System:  Linux             |            Architecture:  x86_64
 Type of failure:  Compile-time      |  (amd64)
  crash                              |               Test Case:
      Blocked By:                    |                Blocking:
 Related Tickets:                    |  Differential Revisions:
-------------------------------------+-------------------------------------

Comment (by ezyang):

 OK, fixing this requires a bit of refactoring, but it's not clear which
 one is best:

 1. One possibility is to fix the code in Language.Haskell.TH to check if a
 module is valid when it is being created. Unfortunately, this means
 `Module` has to be created in the `Q` monad, and currently it is not.

 2. Another possibility is to check when we are converting the modules, in
 `cvtName`. Unfortunately, currently the `CvtM` monad is a simple error
 monad, and does not live in `TcM`, so I can't actually load interface
 files during the conversion. So doing this conversion would mean `CvtM`
 turns into yet another `TcRnM` alias, and I'm less than keen to monadify
 code just for this one use case.

 3. Finally, we can add a final "lint" pass on the generated code which,
 among other things, makes sure the error messages make sense. Since this
 is done at the splice site, we still have the location information of the
 splice available.

 4. Augment generated TC splices with splice location, so if we run into an
 error in spliced code, we properly report where the splice was generated
 from. Maybe we should just do this anyway?

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10279#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list