I've been arguing that internally almost since I started working on it, tbh.

On Sun, Mar 15, 2026 at 9:35 PM Moritz Angermann <[email protected]>
wrote:

> 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]
>>
>

-- 
brandon s allbery kf8nh
[email protected]
_______________________________________________
ghc-devs mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to