Perhaps it's processed for haddock?
Uploading a log might help pinpoint this.
PPS: but perhaps you are saying that, for inscrutable reasons, every{-# OPTIONS_GHC -fdefines-known-key-names #-}must be surrounded with #ifdef BOOSTRAP_TH?Or maybe #ifndef?
It's very mysterious that this suddenly started happening, but that's a side issue
Simon
On Wed, 25 Mar 2026 at 13:12, Simon Peyton Jones <simon.peytonjones@gmail.com> wrote:
PS: Note [Bootstrapping Template Haskell] does not mention BOOTSTRAP_TH!
On Wed, 25 Mar 2026 at 13:08, Simon Peyton Jones <simon.peytonjones@gmail.com> wrote:
I think to avoid this you will need to be careful to only apply these flags when the BOOTSTRAP_TH flag is set.
In particular, I think what's happening is that we try to find the GHC.KnownKey module and then start pulling in all of ghc-internal.
Ah yes. The command line does indeed invoke the bootstrap compiler, which of course does now know these flags.
But what business does the bootstrap compiler have with compiling GHC.Internal.Classes? I would be entirely unsurprised if the bootstrap compiler stumbled on compiling a module that is so closely coupled to GHC's internals.
Simon
On Wed, 25 Mar 2026 at 13:02, Teo Camarasu <teo@informal.codes> wrote:
Hi Simon,
Note that this is occurring while compiling `ghc-boot-th-next`. This package vendors the TemplateHaskell interfaces from ghc-internal and is built by the boot compiler. You will find a bunch of CPP in the TemplateHaskell modules like `GHC.Internal.TH.Syntax` that switches out `ghc-internal` imports for `base` imports when bootstrapping so we can compile with the boot compiler. For more context see `Note [Bootstrapping Template Haskell]`.
I think to avoid this you will need to be careful to only apply these flags when the BOOTSTRAP_TH flag is set.In particular, I think what's happening is that we try to find the GHC.KnownKey module and then start pulling in all of ghc-internal.
Cheers,Teo
On Wed, 25 Mar 2026, at 12:56 PM, Brandon Allbery via ghc-devs wrote:I'd suspect it's your boot compiler producing that error, and that what changed might have been the file being compiled, causing a recompile with the wrong compiler?
On Wed, Mar 25, 2026 at 8:53 AM Simon Peyton Jones via ghc-devs <ghc-devs@haskell.org> wrote:Friends
After 10 days of working on !15719 I have suddenly started getting
/home/simonpj/code/HEAD-19/libraries/ghc-boot-th-next/../ghc-internal/src/GHC/Internal/Classes.hs:10:17: error: [GHC-04924]Unknown flag in {-# OPTIONS_GHC #-} pragma: -fdefines-known-key-names|10 | {-# OPTIONS_GHC -fdefines-known-key-names #-}| ^^^^^^^^^^^^^^^^^^^^^^^^^
I have no idea why this was fine until 10am this morning, and has suddenly started happening now.
How does GHC decide what runtime flags it allows? `-fdefines-known-key-names` is in GHC.Driver.Session.fFlagsDeps.
I'm boggled that it worked until 10am and then abruptly stopped.
Any advice?
Simon
_______________________________________________ghc-devs mailing list -- ghc-devs@haskell.orgTo unsubscribe send an email to ghc-devs-leave@haskell.org
--brandon s allbery kf8nh_______________________________________________ghc-devs mailing list -- ghc-devs@haskell.orgTo unsubscribe send an email to ghc-devs-leave@haskell.org
_______________________________________________ ghc-devs mailing list -- ghc-devs@haskell.org To unsubscribe send an email to ghc-devs-leave@haskell.org