Skip to content

Commit

Permalink
Require GHC 9.10.1
Browse files Browse the repository at this point in the history
  • Loading branch information
sol committed Oct 16, 2024
1 parent 91280f4 commit e16de05
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 28 deletions.
21 changes: 9 additions & 12 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,10 @@ jobs:
matrix:
os:
- ubuntu-latest
- macos-12
ghc:
- '9.4'
- '9.6'
- '9.8'
- '9.10'
include:
- os: macos-12
ghc: system

steps:
- uses: actions/checkout@v3
- uses: hspec/setup-haskell@v1
Expand All @@ -54,12 +50,13 @@ jobs:
run: cabal build all

- shell: bash
run: echo | cabal repl sensei --build-depends hspec-meta

- shell: bash
run: cabal exec -- $(cabal list-bin spec) --times --print-slow
env:
HSPEC_OPTIONS: --color
run: |
for GHC in 9.4 9.6 9.8 9.10
do
ghcup install ghc $GHC --no-set
cabal install -z -w ghc-$GHC --package-env=./$GHC.env --lib hspec hspec-meta
SENSEI_GHC=ghc-$GHC GHC_ENVIRONMENT=$(pwd)/$GHC.env $(cabal list-bin spec)
done
success:
needs: build
Expand Down
4 changes: 3 additions & 1 deletion cabal.project
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
with-compiler: ghc-9.10.1

packages:
sensei.cabal

package sensei
program-options
ghc-options: -Werror

tests: True
Expand Down
7 changes: 5 additions & 2 deletions src/Language/Haskell/GhciWrapper.hs
Original file line number Diff line number Diff line change
Expand Up @@ -64,16 +64,19 @@ new startupFile Config{..} args_ = do

let
mandatoryArgs :: [String]
mandatoryArgs = ["-fshow-loaded-modules"]
mandatoryArgs = ["-fshow-loaded-modules", "--interactive"]

args :: [String]
args = "-ghci-script" : startupFile : args_ ++ catMaybes [
if configIgnoreDotGhci then Just "-ignore-dot-ghci" else Nothing
] ++ mandatoryArgs

ghc :: String
ghc = fromMaybe "ghc" $ lookup "SENSEI_GHC" env

(stdoutReadEnd, stdoutWriteEnd) <- createPipe

(Just stdin_, Nothing, Nothing, processHandle ) <- createProcess (proc "ghci" args) {
(Just stdin_, Nothing, Nothing, processHandle ) <- createProcess (proc ghc args) {
cwd = configWorkingDirectory
, env = Just env
, std_in = CreatePipe
Expand Down
2 changes: 1 addition & 1 deletion test/ClientSpec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ spec = do

it "indicates failure" $ do
withFailure $ \ dir -> do
client dir [] `shouldReturn` (False, "failure")
client dir ["--color"] `shouldReturn` (False, fromString $ withColor Red "failure")

context "when server socket is missing" $ do
it "reports error" $ do
Expand Down
22 changes: 10 additions & 12 deletions test/TriggerSpec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,10 @@ normalize = normalizeTiming . lines . forGhc9dot4
| otherwise = line

forGhc9dot4 :: String -> String
forGhc9dot4 = Text.unpack . Text.replace "Ok, modules loaded: Spec." "Ok, modules loaded: Spec (Spec.o)." . Text.pack
forGhc9dot4 = Text.unpack
. Text.replace "Ok, modules loaded: Spec." "Ok, modules loaded: Spec (Spec.o)."
. Text.replace " error: Variable not in scope: " " error: [GHC-88464] Variable not in scope: "
. Text.pack

withSession :: FilePath -> [String] -> (Session -> IO a) -> IO a
withSession specPath args = do
Expand Down Expand Up @@ -173,19 +176,14 @@ spec = do
it "stops after reloading" $ \ name -> do
withSession name [] $ \ session -> do
writeFile name (passingSpec ++ "foo = bar")
(trigger session >> trigger session) `shouldReturn` (Failure, [

let
fitterNotNull :: [String] -> [String]
fitterNotNull = filter (not . null)

(fmap fitterNotNull <$> (trigger session >> trigger session)) `shouldReturn` (Failure, [
"[1 of 1] Compiling Spec"
#if __GLASGOW_HASKELL__ < 910
, ""
#endif
#if __GLASGOW_HASKELL__ >= 906
, "Spec.hs:9:7: error: [GHC-88464] Variable not in scope: bar"
#else
, "Spec.hs:9:7: error: Variable not in scope: bar"
#endif
#if __GLASGOW_HASKELL__ >= 910
, ""
#endif
, modulesLoaded Failed []
, withColor Red "RELOADING FAILED"
])
Expand Down

0 comments on commit e16de05

Please sign in to comment.