Skip to content

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
Edited by Herbert Valerio Riedel
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information