From 95d716194dfe291b6dafa8b8e162c5f5ca7bc4f7 Mon Sep 17 00:00:00 2001 From: Matthew Pickering Date: Tue, 27 Apr 2021 15:33:18 +0100 Subject: ghci: Enable -fkeep-going by default This also demotes the error message about -fkeep-going to a trace message which matches the behaviour of other build systems (such as cabal-install and nix) which don't print any message like this on a failure. We want to remove the stable module check in a future patch, which is an approximation of `-fkeep-going`. At the moment this change shouldn't do very much. --- compiler/GHC/Driver/Make.hs | 2 +- ghc/GHCi/UI.hs | 4 ++++ testsuite/tests/ghci/prog019/prog019.stderr | 4 ---- testsuite/tests/ghci/scripts/T9293.stdout | 3 +++ testsuite/tests/ghci/scripts/T9293.stdout-mingw32 | 3 +++ testsuite/tests/ghci/scripts/ghci024.stdout | 1 + testsuite/tests/ghci/scripts/ghci024.stdout-mingw32 | 1 + testsuite/tests/ghci/scripts/ghci057.stdout | 3 +++ testsuite/tests/ghci/scripts/ghci057.stdout-mingw32 | 3 +++ 9 files changed, 19 insertions(+), 5 deletions(-) diff --git a/compiler/GHC/Driver/Make.hs b/compiler/GHC/Driver/Make.hs index e73b3fb39d..0d9f866827 100644 --- a/compiler/GHC/Driver/Make.hs +++ b/compiler/GHC/Driver/Make.hs @@ -1513,7 +1513,7 @@ upsweep mHscMessage old_hpt stable_mods sccs = do when (not $ null dropped_ms) $ do dflags <- getSessionDynFlags logger <- getLogger - liftIO $ fatalErrorMsg logger dflags (keepGoingPruneErr $ dropped_ms) + liftIO $ debugTraceMsg logger dflags 2 (keepGoingPruneErr dropped_ms) (_, done') <- upsweep' old_hpt done mods' (mod_index+1) nmods' return (Failed, done') diff --git a/ghc/GHCi/UI.hs b/ghc/GHCi/UI.hs index 9b520c7e23..7176b1e596 100644 --- a/ghc/GHCi/UI.hs +++ b/ghc/GHCi/UI.hs @@ -481,6 +481,10 @@ interactiveUI config srcs maybe_exprs = do LangExt.MonomorphismRestriction xopt_unset) $ dflags GHC.setInteractiveDynFlags dflags' + _ <- GHC.setProgramDynFlags + -- Set Opt_KeepGoing so that :reload loads as much as + -- possible + (gopt_set dflags Opt_KeepGoing) -- Update the LogAction. Ensure we don't override the user's log action lest -- we break -ddump-json (#14078) diff --git a/testsuite/tests/ghci/prog019/prog019.stderr b/testsuite/tests/ghci/prog019/prog019.stderr index b915e3d049..2a6fd015e4 100644 --- a/testsuite/tests/ghci/prog019/prog019.stderr +++ b/testsuite/tests/ghci/prog019/prog019.stderr @@ -2,10 +2,6 @@ B2.hs:3:1: error: Parse error: module header, import declaration or top-level declaration expected. --fkeep-going in use, removing the following dependencies and continuing: - B1 - B - A D.hs:3:1: error: Parse error: module header, import declaration diff --git a/testsuite/tests/ghci/scripts/T9293.stdout b/testsuite/tests/ghci/scripts/T9293.stdout index 15c36fb34e..70803c3f14 100644 --- a/testsuite/tests/ghci/scripts/T9293.stdout +++ b/testsuite/tests/ghci/scripts/T9293.stdout @@ -9,6 +9,7 @@ other dynamic, non-language, flag settings: -fignore-hpc-changes -fno-ghci-history -fimplicit-import-qualified + -fkeep-going -fshow-warning-groups warning settings: -Wsemigroup @@ -29,6 +30,7 @@ other dynamic, non-language, flag settings: -fignore-hpc-changes -fno-ghci-history -fimplicit-import-qualified + -fkeep-going -fshow-warning-groups warning settings: -Wsemigroup @@ -48,6 +50,7 @@ other dynamic, non-language, flag settings: -fignore-hpc-changes -fno-ghci-history -fimplicit-import-qualified + -fkeep-going -fshow-warning-groups warning settings: -Wsemigroup diff --git a/testsuite/tests/ghci/scripts/T9293.stdout-mingw32 b/testsuite/tests/ghci/scripts/T9293.stdout-mingw32 index b62a76b18e..0fa4660e33 100644 --- a/testsuite/tests/ghci/scripts/T9293.stdout-mingw32 +++ b/testsuite/tests/ghci/scripts/T9293.stdout-mingw32 @@ -8,6 +8,7 @@ other dynamic, non-language, flag settings: -fignore-hpc-changes -fno-ghci-history -fimplicit-import-qualified + -fkeep-going -fshow-warning-groups warning settings: -Wsemigroup @@ -27,6 +28,7 @@ other dynamic, non-language, flag settings: -fignore-hpc-changes -fno-ghci-history -fimplicit-import-qualified + -fkeep-going -fshow-warning-groups warning settings: -Wsemigroup @@ -45,6 +47,7 @@ other dynamic, non-language, flag settings: -fignore-hpc-changes -fno-ghci-history -fimplicit-import-qualified + -fkeep-going -fshow-warning-groups warning settings: -Wsemigroup diff --git a/testsuite/tests/ghci/scripts/ghci024.stdout b/testsuite/tests/ghci/scripts/ghci024.stdout index 7cf36ac041..20750f5817 100644 --- a/testsuite/tests/ghci/scripts/ghci024.stdout +++ b/testsuite/tests/ghci/scripts/ghci024.stdout @@ -10,6 +10,7 @@ other dynamic, non-language, flag settings: -fignore-hpc-changes -fno-ghci-history -fimplicit-import-qualified + -fkeep-going -fshow-warning-groups warning settings: -Wsemigroup diff --git a/testsuite/tests/ghci/scripts/ghci024.stdout-mingw32 b/testsuite/tests/ghci/scripts/ghci024.stdout-mingw32 index 5a6d495c04..1c03e5fab8 100644 --- a/testsuite/tests/ghci/scripts/ghci024.stdout-mingw32 +++ b/testsuite/tests/ghci/scripts/ghci024.stdout-mingw32 @@ -9,6 +9,7 @@ other dynamic, non-language, flag settings: -fignore-hpc-changes -fno-ghci-history -fimplicit-import-qualified + -fkeep-going -fshow-warning-groups warning settings: -Wsemigroup diff --git a/testsuite/tests/ghci/scripts/ghci057.stdout b/testsuite/tests/ghci/scripts/ghci057.stdout index 15c36fb34e..70803c3f14 100644 --- a/testsuite/tests/ghci/scripts/ghci057.stdout +++ b/testsuite/tests/ghci/scripts/ghci057.stdout @@ -9,6 +9,7 @@ other dynamic, non-language, flag settings: -fignore-hpc-changes -fno-ghci-history -fimplicit-import-qualified + -fkeep-going -fshow-warning-groups warning settings: -Wsemigroup @@ -29,6 +30,7 @@ other dynamic, non-language, flag settings: -fignore-hpc-changes -fno-ghci-history -fimplicit-import-qualified + -fkeep-going -fshow-warning-groups warning settings: -Wsemigroup @@ -48,6 +50,7 @@ other dynamic, non-language, flag settings: -fignore-hpc-changes -fno-ghci-history -fimplicit-import-qualified + -fkeep-going -fshow-warning-groups warning settings: -Wsemigroup diff --git a/testsuite/tests/ghci/scripts/ghci057.stdout-mingw32 b/testsuite/tests/ghci/scripts/ghci057.stdout-mingw32 index b62a76b18e..0fa4660e33 100644 --- a/testsuite/tests/ghci/scripts/ghci057.stdout-mingw32 +++ b/testsuite/tests/ghci/scripts/ghci057.stdout-mingw32 @@ -8,6 +8,7 @@ other dynamic, non-language, flag settings: -fignore-hpc-changes -fno-ghci-history -fimplicit-import-qualified + -fkeep-going -fshow-warning-groups warning settings: -Wsemigroup @@ -27,6 +28,7 @@ other dynamic, non-language, flag settings: -fignore-hpc-changes -fno-ghci-history -fimplicit-import-qualified + -fkeep-going -fshow-warning-groups warning settings: -Wsemigroup @@ -45,6 +47,7 @@ other dynamic, non-language, flag settings: -fignore-hpc-changes -fno-ghci-history -fimplicit-import-qualified + -fkeep-going -fshow-warning-groups warning settings: -Wsemigroup -- cgit v1.2.1