"Extensible interface files" work and ANN pragmas

Ömer Sinan Ağacan omeragacan at gmail.com
Thu Apr 23 07:56:35 UTC 2020


The "extensible interface files" [1, 2] work has been discussed at GHC calls a
few times and the conclusion was we were going to document why current
annotation mechanism (ANN pragmas) are insufficient and we need yet another way
to put stuff into interfaces.

Unfortunately the MR was merged before that's done and so it's currently
undocumented and it's still unclear what's insufficient about ANN pragmas or how
the new mechanism differs.

I'm currently working on an interface files related patch (#16885) so I have to
maintain both of these features now. It'd be good to know why both is necessary.
If ANN is no longer useful or needed could we deprecate it in favor of the new
mechanism and remove it in a few releases? That's help maintaining the code in
the future.

Could people involved in this design and patch please document the thought
process here?

Thanks,

Ömer

[1]: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/2948
[2]: https://gitlab.haskell.org/ghc/ghc/-/wikis/Extensible-Interface-Files


More information about the ghc-devs mailing list