Skip to content

Commit 1aa892a

Browse files
adapt to caaf53881d5cc82ebff617f39ad5363429d2eccf
1 parent d5a49d3 commit 1aa892a

File tree

3 files changed

+106
-4
lines changed

3 files changed

+106
-4
lines changed

CI.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ data DaFlavor = DaFlavor
9898

9999
-- Last tested gitlab.haskell.org/ghc/ghc.git at
100100
current :: String
101-
current = "573cad4bd9e7fc146581d9711d36c4e3bacbb6e9" -- 2024-11-03
101+
current = "caaf53881d5cc82ebff617f39ad5363429d2eccf" -- 2024-11-25
102102

103103
ghcFlavorOpt :: GhcFlavor -> String
104104
ghcFlavorOpt = \case

examples/ghc-lib-test-mini-compile/src/Main.hs

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,23 @@ mkDynFlags filename s = do
193193
(dflags, _, _) <- parseDynamicFilePragma dflags0 opts
194194
return dflags
195195

196+
#elif (defined (GHC_9_6) || defined (GHC_9_8) || defined (GHC_9_10) || defined (GHC_9_12))
197+
198+
let baseFlags =
199+
(defaultDynFlags fakeSettings) {
200+
ghcLink = NoLink
201+
, backend = noBackend
202+
, homeUnitId_ = toUnitId (stringToUnit ghclibPrimUnitId)
203+
}
204+
parsePragmasIntoDynFlags filename s baseFlags
205+
where
206+
parsePragmasIntoDynFlags :: String -> String -> DynFlags -> IO DynFlags
207+
parsePragmasIntoDynFlags filepath contents dflags0 = do
208+
let (_, opts) = getOptions (initParserOpts dflags0)
209+
(stringToStringBuffer contents) filepath
210+
(dflags, _, _) <- parseDynamicFilePragma dflags0 opts
211+
return dflags
212+
196213
#else
197214

198215
let baseFlags =
@@ -206,6 +223,7 @@ mkDynFlags filename s = do
206223
parsePragmasIntoDynFlags :: String -> String -> DynFlags -> IO DynFlags
207224
parsePragmasIntoDynFlags filepath contents dflags0 = do
208225
let (_, opts) = getOptions (initParserOpts dflags0)
226+
(supportedLanguagePragmas dflags0)
209227
(stringToStringBuffer contents) filepath
210228
(dflags, _, _) <- parseDynamicFilePragma dflags0 opts
211229
return dflags
@@ -394,16 +412,51 @@ fakeSettings = Settings {
394412

395413
platform = genericPlatform
396414

415+
#elif (defined (GHC_9_4) || defined (GHC_9_6) || defined (GHC_9_8) || defined (GHC_9_10) || defined (GHC_9_12))
416+
sGhcNameVersion=ghcNameVersion
417+
, sFileSettings=fileSettings
418+
, sTargetPlatform=platform
419+
, sPlatformMisc=platformMisc
420+
, sToolSettings=toolSettings
421+
}
422+
where
423+
fileSettings = FileSettings {
424+
fileSettings_topDir="."
425+
, fileSettings_toolDir=Nothing
426+
, fileSettings_ghcUsagePath="."
427+
, fileSettings_ghciUsagePath="."
428+
, fileSettings_globalPackageDatabase="."
429+
}
430+
431+
toolSettings = ToolSettings {
432+
toolSettings_opt_P_fingerprint=fingerprint0
433+
}
434+
435+
platformMisc = PlatformMisc {
436+
}
437+
438+
ghcNameVersion = GhcNameVersion{
439+
ghcNameVersion_programName="ghc"
440+
, ghcNameVersion_projectVersion=cProjectVersion
441+
}
442+
443+
platform = genericPlatform
444+
397445
#else
398-
{- defined (GHC_9_4) || defined (GHC_9_6) || defined (GHC_9_8) || defined (GHC_9_10) || defined (GHC_9_12) || defined (GHC_9_14) -}
446+
{- defined (GHC_9_14) -}
399447

400448
sGhcNameVersion=ghcNameVersion
401449
, sFileSettings=fileSettings
402450
, sTargetPlatform=platform
403451
, sPlatformMisc=platformMisc
404452
, sToolSettings=toolSettings
453+
, sUnitSettings=unitSettings
405454
}
406455
where
456+
unitSettings = UnitSettings {
457+
unitSettings_baseUnitId = stringToUnitId "base"
458+
}
459+
407460
fileSettings = FileSettings {
408461
fileSettings_topDir="."
409462
, fileSettings_toolDir=Nothing

examples/ghc-lib-test-mini-hlint/src/Main.hs

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,11 +181,30 @@ parsePragmasIntoDynFlags flags filepath str =
181181
sDoc : _ -> do putStrLn sDoc; return Nothing
182182
where
183183
sDocs = [ showSDoc flags msg | msg <- pprMsgEnvelopeBagWithLocDefault . getMessages $ srcErrorMessages msgs ]
184+
#elif (defined (GHC_9_8) || defined (GHC_9_10) || defined (GHC_9_12))
185+
catchErrors $ do
186+
let (_, opts) = getOptions (initParserOpts flags)
187+
(stringToStringBuffer str) filepath
188+
(flags, _, _) <- parseDynamicFilePragma flags opts
189+
return $ Just flags
190+
where
191+
catchErrors :: IO (Maybe DynFlags) -> IO (Maybe DynFlags)
192+
catchErrors act = handleGhcException reportGhcException
193+
(handleSourceError reportSourceErr act)
194+
195+
reportGhcException e = do print e; return Nothing
196+
197+
reportSourceErr msgs = case sDocs of
198+
[] -> return Nothing
199+
sDoc : _ -> do putStrLn sDoc; return Nothing
200+
where
201+
sDocs = [ showSDoc flags msg | msg <- pprMsgEnvelopeBagWithLocDefault . getMessages $ srcErrorMessages msgs ]
184202
#else
185-
{- defined (GHC_9_8) || defined (GHC_9_10) || defined (GHC_9_12) || defined (GHC_9_14) -}
203+
{- defined (GHC_9_14) -}
186204

187205
catchErrors $ do
188206
let (_, opts) = getOptions (initParserOpts flags)
207+
(supportedLanguagePragmas flags)
189208
(stringToStringBuffer str) filepath
190209
(flags, _, _) <- parseDynamicFilePragma flags opts
191210
return $ Just flags
@@ -631,16 +650,46 @@ fakeSettings = Settings {
631650

632651
platform=genericPlatform
633652

653+
#elif (defined (GHC_9_4) || defined (GHC_9_6) || defined (GHC_9_8) || defined (GHC_9_10) || defined (GHC_9_12))
654+
655+
sGhcNameVersion=ghcNameVersion
656+
, sFileSettings=fileSettings
657+
, sTargetPlatform=platform
658+
, sPlatformMisc=platformMisc
659+
, sToolSettings=toolSettings
660+
}
661+
where
662+
fileSettings = FileSettings {
663+
}
664+
665+
toolSettings = ToolSettings {
666+
toolSettings_opt_P_fingerprint=fingerprint0
667+
}
668+
669+
platformMisc = PlatformMisc {
670+
}
671+
672+
ghcNameVersion = GhcNameVersion{
673+
ghcNameVersion_programName="ghc"
674+
, ghcNameVersion_projectVersion=cProjectVersion
675+
}
676+
677+
platform=genericPlatform
634678
#else
635-
{- defined (GHC_9_4) || defined (GHC_9_6) || defined (GHC_9_8) || defined (GHC_9_10) || defined (GHC_9_12) || defined (GHC_9_14) -}
679+
{- defined (GHC_9_14) -}
636680

637681
sGhcNameVersion=ghcNameVersion
638682
, sFileSettings=fileSettings
639683
, sTargetPlatform=platform
640684
, sPlatformMisc=platformMisc
641685
, sToolSettings=toolSettings
686+
, sUnitSettings=unitSettings
642687
}
643688
where
689+
unitSettings = UnitSettings {
690+
unitSettings_baseUnitId = stringToUnitId "base"
691+
}
692+
644693
fileSettings = FileSettings {
645694
}
646695

0 commit comments

Comments
 (0)