Skip to content
Snippets Groups Projects
Unverified Commit be10be83 authored by Mango The Fourth's avatar Mango The Fourth Committed by GitHub
Browse files

add the applicable new (version 9.10) GHC flags to normaliseGhcArgs (#10014)

* add the applicable new (versions 9.2 - 9.10) GHC flags to normaliseGhcArgs

Actionable flags are:
- fdiagnostics-as-json (changes the format GHC outputs its diagnostics)
- fprint-error-index-lists (changes the way GHC displays compile time)
- fbreak-points (enables/disables break-points in GHCi)
- dipe-stats (dumps information about which info tables have IPE
  information)
- ffamily-application-cache (only changes the speed of the compiler)
- fprint-redundant-promotion-ticks
- show-error-context
- unoptimized-core-for-interpreter (only applies to GHCi)

* [chore] correct the flag names and add a FUTUREWORK
parent cb1b60f4
No related branches found
No related tags found
No related merge requests found
{- FUTUREWORK:
-
- Currently the logic in this module is not tested.
-
- Ideally, a set of unit tests that check whether certain
- flags trigger recompilation should be added.
- -}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE RankNTypes #-}
......
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE MultiWayIf #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
......@@ -227,8 +228,27 @@ normaliseGhcArgs (Just ghcVersion) PackageDescription{..} ghcArgs
, "keep-going" -- try harder, the build will still fail if it's erroneous
, "print-axiom-incomps" -- print more debug info for closed type families
]
, from
[9, 2]
[ "family-application-cache"
]
, from
[9, 6]
[ "print-redundant-promotion-ticks"
, "show-error-context"
]
, from
[9, 8]
[ "unoptimized-core-for-interpreter"
]
, from
[9, 10]
[ "diagnostics-as-json"
, "print-error-index-links"
, "break-points"
]
]
, flagIn . invertibleFlagSet "-d" $ ["ppr-case-as-let", "ppr-ticks"]
, flagIn $ invertibleFlagSet "-d" ["ppr-case-as-let", "ppr-ticks"]
, isOptIntFlag
, isIntFlag
, if safeToFilterWarnings
......@@ -289,6 +309,7 @@ normaliseGhcArgs (Just ghcVersion) PackageDescription{..} ghcArgs
, from [8, 6] ["-dhex-word-literals"]
, from [8, 8] ["-fshow-docs-of-hole-fits", "-fno-show-docs-of-hole-fits"]
, from [9, 0] ["-dlinear-core-lint"]
, from [9, 10] ["-dipe-stats"]
]
isOptIntFlag :: String -> Any
......@@ -709,7 +730,10 @@ renderGhcOptions comp _platform@(Platform _arch os) opts
| flagProfAuto implInfo -> ["-fprof-auto-exported"]
| otherwise -> ["-auto"]
, ["-split-sections" | flagBool ghcOptSplitSections]
, ["-split-objs" | flagBool ghcOptSplitObjs]
, case compilerCompatVersion GHC comp of
-- the -split-objs flag was removed in GHC 9.8
Just ver | ver >= mkVersion [9, 8] -> []
_ -> ["-split-objs" | flagBool ghcOptSplitObjs]
, case flagToMaybe (ghcOptHPCDir opts) of
Nothing -> []
Just hpcdir -> ["-fhpc", "-hpcdir", u hpcdir]
......@@ -799,8 +823,7 @@ renderGhcOptions comp _platform@(Platform _arch os) opts
-- Packages
concat
[ [ case () of
_
[ [ if
| unitIdSupported comp -> "-this-unit-id"
| packageKeySupported comp -> "-this-package-key"
| otherwise -> "-package-name"
......
synopsis: Update ghc args normalization and ghc option rendering
packages: Cabal
issues: #9729
prs: #10014
description: {
The flags -fdiagnostics-as-json, -fprint-error-index-lists, -fbreak-points, -dipe-stats, -ffamily-application-cache, -fprint-redundant-promotion-ticks, -fshow-error-context and -funoptimized-core-for-interpreter have been added to the flags that do not cause recompilation.
--{enable,disable}-split-objs is not shown on in the helper for GHC >= 9.8
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment