I think this highlights another point where cabal is _way_ too tightly coupled with the haskell compiler.
On Mon, 16 Mar 2026 at 05:33, Brandon Allbery via ghc-devs < [email protected]> wrote: > `ghc-options` is typically used only for fine control (e.g. `-f` options) > or debugging (`-d` options). I think it warns if you stick a `-X` in there, > but should accept it. > > Optimization is controlled by `optimization` in the cabal file or > `cabal.project`. Some other known options are handled the same way, > including extensions from `language` and `default-extensions`. > > On Sun, Mar 15, 2026 at 4:28 PM Simon Peyton Jones < > [email protected]> wrote: > >> It does mean every module in `base` and every module in `ghc-internal`. >> We already seem to have `NoImplicitPrelude` in each of them despite a >> `NoImplicitPrelude` in base.cabal. >> >> There must be a better way than editing several hundred modules to add a >> one-line pragma. All I want to do is to get cabal to pass the flag to >> every module. >> >> I thought there was a ghc-options directive in cabal? Maybe I can say >> ghc-options: -XNoImplicitKnownKeyNames >> and cabal will just pass it along? >> >> But I don't see *any* ghc-options in base.cabal. How does cabal decide >> what options to pass to GHC when compiling base (e.g -O2)? >> >> Simon >> >> >> On Sun, 15 Mar 2026 at 20:15, Brandon Allbery <[email protected]> >> wrote: >> >>> If you're adding it to a cabal file then you need to modify Cabal, >>> because it wants to mark packages as unbuildable on ghcs that don't support >>> declared extensions. Placing it in source files avoids this, but you would >>> have to modify all files that need to know about it (hopefully that doesn't >>> mean all of `base`). >>> >>> On Sun, Mar 15, 2026 at 4:08 PM Simon Peyton Jones < >>> [email protected]> wrote: >>> >>>> Thanks. But where is this Cabal-syntax directory? How do I "bump >>>> the cabal version"? >>>> >>>> I'm only trying to build GHC! I wasn't intending to modify cabal. >>>> >>>> Simon >>>> >>>> On Sun, 15 Mar 2026 at 17:26, Brandon Allbery <[email protected]> >>>> wrote: >>>> >>>>> It goes in `Cabal-syntax/src/Language/Haskell/Extensions.hs`, in `data >>>>> KnownExtension`. The parse table is built from the constructor names, and >>>>> `No` prefixes are handled automatically. Note that you'll need to also >>>>> bump >>>>> the `cabal-version` (file format version) and add an entry to the file >>>>> format documentation (`doc/file-format-changelog.rst`). >>>>> >>>>> On Sun, Mar 15, 2026 at 1:18 PM Simon Peyton Jones via ghc-devs < >>>>> [email protected]> wrote: >>>>> >>>>>> Friends >>>>>> >>>>>> As part of the reinstallable base project I'm adding an >>>>>> extension "ImplicitKnownKeyNames" to GHC. But if I put >>>>>> "NoImplicitKnownKeyNames" in base.cabal.in I get the error >>>>>> >>>>>> Warning: [unknown-extension] Unknown extensions: >>>>>> NoImplicitKnownKeyNames >>>>>> >>>>>> when building the base library. I think this comes from cabal. >>>>>> >>>>>> How can I tell cabal about the new extension? >>>>>> >>>>>> Thanks >>>>>> >>>>>> Simon >>>>>> _______________________________________________ >>>>>> ghc-devs mailing list -- [email protected] >>>>>> To unsubscribe send an email to [email protected] >>>>>> >>>>> >>>>> >>>>> -- >>>>> brandon s allbery kf8nh >>>>> [email protected] >>>>> >>>> >>> >>> -- >>> brandon s allbery kf8nh >>> [email protected] >>> >> > > -- > brandon s allbery kf8nh > [email protected] > _______________________________________________ > ghc-devs mailing list -- [email protected] > To unsubscribe send an email to [email protected] >
_______________________________________________ ghc-devs mailing list -- [email protected] To unsubscribe send an email to [email protected]
