[GHC] #8176: Language extensions not registered

GHC ghc-devs at haskell.org
Mon Aug 26 17:01:40 UTC 2013


#8176: Language extensions not registered
--------------------------------+------------------------------------------
       Reporter:  duncan        |             Owner:  thoughtpolice
           Type:  bug           |            Status:  new
       Priority:  normal        |         Milestone:  7.8.1
      Component:  Compiler      |           Version:  7.7
       Keywords:                |  Operating System:  Unknown/Multiple
   Architecture:                |   Type of failure:  None/Unknown
  Unknown/Multiple              |         Test Case:  tests/driver/T4437.hs
     Difficulty:  Unknown       |          Blocking:
     Blocked By:                |
Related Tickets:                |
--------------------------------+------------------------------------------
 tests/driver/T4437.hs does not seem to be being used properly.

 That test is there to make sure that ghc developers do not forget to
 register their new extensions with Cabal. But it looks like it's just
 being silenced and they are being forgotten again.

 Recall, the protocol is that all Haskell implementations can register
 their extensions in the central location (which is
 Language.Haskell.Extensions in the Cabal package) when they are happy that
 they are ready for public consumption. This matters to users because
 extensions that are not ready for public consumption (ie not registered)
 cannot be used in packages uploaded to hackage.

 Currently `tests/driver/T4437.hs` contains:
 {{{
 expectedGhcOnlyExtensions = [
                              "AllowAmbiguousTypes",
                              "RelaxedLayout",
                              "AlternativeLayoutRule",
                              "AlternativeLayoutRuleTransitional",
                              "ExplicitNamespaces",
                              "TypeHoles",
                              "OverloadedLists",
                              "EmptyCase",
                              "AutoDeriveTypeable",
                              "NegativeLiterals",
                              "NullaryTypeClasses"]
 }}}

 This looks like a much bigger list than it should be. Surely not all of
 these extensions are private to ghc or are still under development and not
 to be used?

 But if they are listed here, then the test doesn't complain about them.
 And the whole point of this test is to stop ghc devs from forgetting to
 register them.

 I think we need to change the test so that we distinguish between
 extensions that are really not ready, and ones that are on-track to be
 public. It should be a release blocker for the "on-track to be public"
 ones to still not be registered. The test should have comments giving this
 guidance for ghc contributors.

 I'm not quite sure how we adjust the test to make that happen (ie
 different behaviour for RC-build vs normal hacking validate).

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




More information about the ghc-tickets mailing list