[Haskell] Treatment of unknown pragmas

Artem Pelenitsyn a.pelenitsyn at gmail.com
Sun Oct 28 15:04:21 UTC 2018

Hello Daniel,

Annotations API was discussed earlier in this thread. Main points against

Significant compilation performance penalty and extra recompilation. ANN
pragmas is what HLint currently uses.

The problem with ANN is it's part of the plugins API, and as such does
things like compiling the expression into the program in case a plugin
generates code using its value, plus things like recompilation checking end
up assuming plugins are in use and doing extra checking. Using it as a
compile-time pragma is actually fairly weird from that standpoint.

Best, Artem
On Sat, 27 Oct 2018 at 22:12 Daniel Wagner <dmwit at dmwit.com> wrote:

> I don't have a really strong opinion, but... isn't this (attaching
> string-y data to source constructs) pretty much exactly what GHC's
> annotation pragma is for?
> ~d
> On Tue, Oct 16, 2018 at 3:14 PM Ben Gamari <ben at smart-cactus.org> wrote:
>> Vladislav Zavialov <vlad.z.4096 at gmail.com> writes:
>> > What about introducing -fno-warn-pragma=XXX? People who use HLint will
>> > add -fno-warn-pragma=HLINT to their build configuration.
>> >
>> A warning flag is an interesting way to deal with the issue. On the
>> other hand, it's not great from an ergonomic perspective; afterall, this
>> would mean that all users of HLint (and any other tool requiring special
>> pragmas) include this flag in their build configuration. A typical
>> Haskell project already needs too much such boilerplate, in my opinion.
>> I think it makes a lot of sense to have a standard way for third-parties
>> to attach string-y information to Haskell source constructs. While it's
>> not strictly speaking necessary to standardize the syntax, doing
>> so minimizes the chance that tools overlap and hopefully reduces
>> the language ecosystem learning curve.
>> Cheers,
>> - Ben
>> _______________________________________________
> Haskell mailing list
>> Haskell at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell
> _______________________________________________
> Haskell mailing list
> Haskell at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20181028/5fe24a54/attachment.html>

More information about the ghc-devs mailing list