regression: `ANN` pragmas no longer ignored in TH-less GHC 8.2.1
Consider
module M where
{-# ANN myId "HLint: ignore" #-}
myId :: a -> a
myId x = x
GHC 8.0.2 would simply ignore them:
$ ghc-8.0.2 -c M.hs
M.hs:3:1: warning:
Ignoring ANN annotation, because this is a stage-1 compiler or doesn't support GHCi
however, with a recent GHC 8.2 snapshot this just fails with
$ ghc-8.2 -c M.hs
ghc: this operation requires -fexternal-interpreter
This is a serious problem because hlint
annotations are quite popular, and this would require us to retrofit other-extensions: TemplateHaskell
into the meta-data of quite a few packages on Hackage to declare that a package no longer works with a TH-less GHC (which would basically mean that ports of GHC such as the one for AIX that don't support TH will become very inconvenient to use and require to pester package authors to explicitly guard ANN
pragmas with CPP... which I'm not looking forward to ;-) ).
Trac metadata
Trac field | Value |
---|---|
Version | 8.2.1-rc1 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | high |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |