[GHC] #8101: No pattern match non-exhaustiveness warnings when compiling with -fno-code

GHC ghc-devs at haskell.org
Tue Oct 6 02:16:13 UTC 2015


#8101: No pattern match non-exhaustiveness warnings when compiling with -fno-code
-------------------------------------+-------------------------------------
        Reporter:  exbb2             |                Owner:
            Type:  bug               |               Status:  closed
        Priority:  normal            |            Milestone:  7.8.1
       Component:  Compiler          |              Version:  7.6.3
      Resolution:  duplicate         |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Incorrect         |  Unknown/Multiple
  warning at compile-time            |            Test Case:  T8101
      Blocked By:                    |             Blocking:
 Related Tickets:  #10600            |  Differential Rev(s):
-------------------------------------+-------------------------------------

Comment (by Edward Z. Yang <ezyang@…>):

 In [changeset:"427f8a15c385de486d479989ecfbb6f82699f405/ghc"
 427f8a15/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="427f8a15c385de486d479989ecfbb6f82699f405"
 Deduplicate one-shot/make compile paths.

 Summary:
 We had a duplicate copy of the code for --make and for -c
 which was a pain.  The call graph looked something like this:

     compileOne -> genericHscCompileGetFrontendResult -> genericHscFrontend
                                    hscCompileOneShot ---^

 with genericHscCompileGetFrontendResult and hscCompileOneShot
 duplicating logic for deciding whether or not recompilation
 was needed.

 This patchset fixes it, so now everything goes through this call-chain:

     compileOne (--make entry point)
         Calls hscIncrementCompile, invokes the pipeline to do codegen
         and sets up linkables.
     hscIncrementalCompile (-c entry point)
         Calls hscIncrementalFrontend, and then simplifying,
         desugaring, and writing out the interface.
     hscIncrementalFrontend
         Performs recompilation avoidance, if recompilation needed,
         does parses typechecking.

 I also cleaned up some of the MergeBoot nonsense by introducing
 a FrontendResult type.

 NB: this BREAKS #8101 again, because I can't unconditionally desugar
 due to Haddock barfing on lint, see #10600

 Signed-off-by: Edward Z. Yang <ezyang at cs.stanford.edu>

 Test Plan: validate

 Reviewers: simonpj, bgamari, simonmar, austin

 Subscribers: thomie

 Differential Revision: https://phabricator.haskell.org/D1302
 }}}

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


More information about the ghc-tickets mailing list