Re: [GHC] #16163: Don’t throw an error (by default) for use of DEPRECATED symbols under -Werror

GHC ghc-devs at haskell.org
Sat Jan 12 09:50:48 UTC 2019


#16163: Don’t throw an error (by default) for use of DEPRECATED symbols under
-Werror
-------------------------------------+-------------------------------------
        Reporter:  m-renaud          |                Owner:  (none)
            Type:  feature request   |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.6.3
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by hvr):

 Orthogonal to the `-Werror`-aspect, I strongly support cleaning up the
 currently conflated `-Wwarnings-deprecations`==`-Wdeprecations` situation.

 Currently there is no way to suppress `DEPRECATED`-warnings while being
 informed about `WARNING` pragmas (or vice-versa), nor the ability to
 promote/demote those individually to/from `-Werror`-severity.

 To restate it explicitly, my preference would be to end up with the
 following new situation:


 - `-Wdeprecations` ''(modified semantics)'' - warn if a module, function,
 or type marked `DEPRECATED` is imported or used.

 - `-Wwarnings` ''(new flag)'' - warn if a module, function, or type marked
 with `WARNING` is imported or used.

 - `-Wwarnings-deprecations` ''(unchanged semantics)'' - compat/legacy
 alias for the union `-Wwarnings -Wdeprecations`


 While retaining the logic as stated in the user's guide:

 > Warnings and deprecations are not reported for (a) uses within the
 defining module, (b) defining a method in a class instance, and (c) uses
 in an export list. The latter reduces spurious complaints within a library
 in which one module gathers together and re-exports the exports of several
 others.

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


More information about the ghc-tickets mailing list