diff --git a/flake.lock b/flake.lock index fed1ed959e42e93929054663f9c4b262c58954c2..17a885b4affd9dbbd0600737be20b5362e0d851a 100644 --- a/flake.lock +++ b/flake.lock @@ -43,16 +43,17 @@ "nixpkgs": "nixpkgs" }, "locked": { - "dirtyRev": "979d17cf356e3a336dac8820c676ec813668222c-dirty", - "dirtyShortRev": "979d17c-dirty", - "lastModified": 1708504824, - "narHash": "sha256-g2sR8z7+KWFT2A09zXqqC5EvH64oSh36XqX5NNJV3rY=", - "type": "git", - "url": "file:///Users/chrg/Develop/repos/hspec-glitter" + "lastModified": 1709030659, + "narHash": "sha256-f0mIzef7HZaSlJ6VTUswugH1Ntt2kz5M4McSLG3cTCE=", + "owner": "kalhauge", + "repo": "hspec-glitter", + "rev": "ee38cf3ab038c51febd82c6ed486b018d9a4cdd4", + "type": "github" }, "original": { - "type": "git", - "url": "file:///Users/chrg/Develop/repos/hspec-glitter" + "owner": "kalhauge", + "repo": "hspec-glitter", + "type": "github" } }, "language-c": { diff --git a/flake.nix b/flake.nix index b02a825edcfa38ff4adf37d8e1469378c6e6cb95..e336243510bedfbae79897f144d433db5b504c05 100644 --- a/flake.nix +++ b/flake.nix @@ -7,7 +7,7 @@ url = github:kalhauge/language-c; flake = false; }; - hspec-glitter.url = "/Users/chrg/Develop/repos/hspec-glitter"; + hspec-glitter.url = github:kalhauge/hspec-glitter; }; outputs = { self, @@ -16,23 +16,19 @@ nix-filter, ... } @ inputs: let - load = final: p: n: { - "${n}" = - final.haskell.lib.overrideCabal - (p.callCabal2nixWithOptions n (nix-filter.lib {root = "${self}/${n}";}) "" {}) { - doCheck = true; - }; + load = p: n: + p.callCabal2nixWithOptions n (nix-filter.lib {root = "${self}/${n}";}) "" {}; + + packages = final: p: let + lib = + final.haskell.lib; + in { + "language-c" = lib.overrideCabal (p.callCabal2nixWithOptions "language-c" inputs.language-c "" {}) { + doCheck = false; + }; + "rtree" = lib.dontCheck (load p "rtree"); + "rtree-c" = lib.dontCheck (load p "rtree-c"); }; - packages = final: p: - { - "language-c" = - final.haskell.lib.overrideCabal - (p.callCabal2nixWithOptions "language-c" inputs.language-c "" {}) { - doCheck = false; - }; - } - // load final p "rtree" - // load final p "rtree-c"; overlays = final: prev: { haskellPackages = prev.haskellPackages.extend (p: _: packages final p); }; @@ -42,15 +38,15 @@ } // flake-utils.lib.eachDefaultSystem (system: let - hpkgs = - (import nixpkgs { - inherit system; - overlays = [inputs.hspec-glitter.overlays.default overlays]; - }) - .haskellPackages; + pkgs = import nixpkgs { + inherit system; + overlays = [inputs.hspec-glitter.overlays.default overlays]; + }; + lib = pkgs.haskell.lib; + hpkgs = pkgs.haskellPackages; in rec { packages = { - default = hpkgs.rtree-c; + default = lib.justStaticExecutables (hpkgs.rtree-c); rtree = hpkgs.rtree; rtree-c = hpkgs.rtree-c; }; @@ -65,13 +61,14 @@ ]; withHoogle = true; in { + rtree = hpkgs.rtree; default = hpkgs.shellFor { name = "rtree-shells"; packages = p: [ - p.rtree - p.rtree-c + (lib.doCheck p.rtree) + (lib.doCheck p.rtree-c) ]; doBenchmark = true; doCheck = true; diff --git a/rtree-c/test/src/ReduceCSpec.hs b/rtree-c/test/src/ReduceCSpec.hs index 7ae832773f3a4332851b9ba2fadea6a50e003353..c4c8b38410073305aea49d940d9037908b597c67 100644 --- a/rtree-c/test/src/ReduceCSpec.hs +++ b/rtree-c/test/src/ReduceCSpec.hs @@ -44,7 +44,7 @@ specLargeCases = do c <- runIO $ parse cfrom let expected = "test/expected" </> dropExtensions cname - onGlitterWith (expected </> "main.c") (\fp () -> render fp c) do + onGlitter (expected </> "main.c") (\fp -> render fp c) do it "should be valid" . foldMap $ \cf -> do validate cf @@ -57,9 +57,9 @@ specLargeCases = do it "should extract itself" do IRTree.extract (defaultReduceC c) $> () `shouldBe` c $> () - onGlitterWith + onGlitter (expected </> "reduction/") - ( \a () -> do + ( \a -> do createDirectoryIfMissing True a listDirectory a >>= mapM_ \i -> do let idx = fromString (drop 1 (dropExtension i)) @@ -83,7 +83,7 @@ specSmallCases = do c <- runIO $ parse cfrom let expected = "test/expected" </> dropExtensions cname - onGlitterWith (expected </> "main.c") (\fp () -> render fp c) do + onGlitter (expected </> "main.c") (\fp -> render fp c) do it "should be valid" . foldMap $ \cf -> do validate cf @@ -96,9 +96,9 @@ specSmallCases = do it "should extract itself" do extract (defaultReduceC c) $> () `shouldBe` c $> () - onGlitterWith + onGlitter (expected </> "reduction/") - ( \a () -> do + ( \a -> do _ <- tryIOError (removeDirectoryRecursive a) createDirectoryIfMissing True a forM_ (iinputs (defaultReduceC c)) \(i, _) -> do diff --git a/rtree/test/src/Control/Monad/RTreeSpec.hs b/rtree/test/src/Control/Monad/RTreeSpec.hs index 6ed5f548a7e3ca4e249f6062e2cf23f831f20bf8..3097885984d2e09937b1e6a313c1aa697599347f 100644 --- a/rtree/test/src/Control/Monad/RTreeSpec.hs +++ b/rtree/test/src/Control/Monad/RTreeSpec.hs @@ -80,9 +80,9 @@ rtreeSpec = describe "RTree" do ] describe "drawRTree" do - onGlitterWith + onGlitter "test/expected/rlist-drawrtree" - (\fp () -> writeFile fp (drawRTree (\() -> id) shows (rList [1, 2, 3 :: Int]))) + (\fp -> writeFile fp (drawRTree (\() -> id) shows (rList [1, 2, 3 :: Int]))) (pure ()) examplesSpec :: Spec @@ -107,9 +107,9 @@ examplesSpec = describe "example" do let re = runReaderT me Map.empty - onGlitterWith + onGlitter ("test/expected/" <> str) - (\fp () -> writeFile fp (drawRTree showString (prettyExprS 0) re)) + (\fp -> writeFile fp (drawRTree showString (prettyExprS 0) re)) (pure ()) it "should reduce like iinputs" do