diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 252f8cc45..9734333fd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -128,7 +128,7 @@ jobs: - uses: haskell-actions/setup@v2.7.7 id: setup with: - ghc-version: '9.8.4' + ghc-version: '9.10.3' - name: Extract GHC & Cabal paths run: | diff --git a/.github/workflows/check-dependencies.yml b/.github/workflows/check-dependencies.yml index a212cb64a..4f2db25ce 100644 --- a/.github/workflows/check-dependencies.yml +++ b/.github/workflows/check-dependencies.yml @@ -21,7 +21,7 @@ jobs: - name: lookup nix versions id: nixpkgs run: | - NIXPKGS_REV="$(jq -r '.nodes.nixpkgs_2.locked.rev' < flake.lock)" + NIXPKGS_REV="$(jq -r '.nodes.nixpkgs.locked.rev' < flake.lock)" VERSIONS="$(nix eval -I "nixpkgs=https://github.com/NixOS/nixpkgs/archive/$NIXPKGS_REV.tar.gz" --impure --json \ --expr 'let pkgs = (import {}); in { "secp256k1" = pkgs.secp256k1.version; "ff" = pkgs.libff.version; }')" LIBFF_REV="$(jq .ff -r <<<"$VERSIONS")" diff --git a/cabal.project b/cabal.project index 29dd2bdeb..ea564faec 100644 --- a/cabal.project +++ b/cabal.project @@ -3,3 +3,7 @@ packages: . -- work around windows build failure -- https://github.com/kazu-yamamoto/crypton-certificate/issues/27 constraints: crypton-x509-store <1.6.13 || >1.6.13 + +-- allow newer base on aeson-optics +-- https://github.com/phadej/aeson-optics/issues/20 +allow-newer: aeson-optics:base diff --git a/flake.lock b/flake.lock index a13fe8ddc..7bc286da6 100644 --- a/flake.lock +++ b/flake.lock @@ -2,8 +2,12 @@ "nodes": { "empty-smt-solver": { "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { "lastModified": 1751304960, @@ -24,57 +28,6 @@ "inputs": { "systems": "systems" }, - "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_2": { - "inputs": { - "systems": "systems_2" - }, - "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_3": { - "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_4": { - "inputs": { - "systems": "systems_3" - }, "locked": { "lastModified": 1731533236, "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", @@ -92,11 +45,11 @@ "forge-std": { "flake": false, "locked": { - "lastModified": 1749634666, - "narHash": "sha256-5HqpP/aicV71AXF+MYCg3mxHFnG8Wn1Ov3W6C35uNFk=", + "lastModified": 1771846526, + "narHash": "sha256-SP6ojjtgz+WUbDesuwxx4nJN+ayRO9th3zSYNe337ps=", "owner": "foundry-rs", "repo": "forge-std", - "rev": "60acb7aaadcce2d68e52986a0a66fe79f07d138f", + "rev": "722afcc99a78706335b5a2ece83a4f0de4bc083d", "type": "github" }, "original": { @@ -107,15 +60,19 @@ }, "foundry": { "inputs": { - "flake-utils": "flake-utils_3", - "nixpkgs": "nixpkgs_2" + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { - "lastModified": 1752867797, - "narHash": "sha256-oT129SDSr7SI9ThTd6ZbpmShh5f2tzUH3S4hl6c5/7w=", + "lastModified": 1769159706, + "narHash": "sha256-HPU5Dr7NlbKFgv79BBhmKQrWjI+uDdSeMTFZAZfYzX4=", "owner": "shazow", "repo": "foundry.nix", - "rev": "d4445852933ab5bc61ca532cb6c5d3276d89c478", + "rev": "27e7cb16e47bb9028801e5ae0105bf9893f794e0", "type": "github" }, "original": { @@ -127,43 +84,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1751180975, - "narHash": "sha256-BKk4yDiXr4LdF80OTVqYJ53Q74rOcA/82EClXug8xsY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a48741b083d4f36dd79abd9f760c84da6b4dc0e5", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1751180975, - "narHash": "sha256-BKk4yDiXr4LdF80OTVqYJ53Q74rOcA/82EClXug8xsY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a48741b083d4f36dd79abd9f760c84da6b4dc0e5", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1755175540, - "narHash": "sha256-V0j2S1r25QnbqBLzN2Rg/dKKil789bI3P3id7bDPVc4=", + "lastModified": 1771423170, + "narHash": "sha256-K7Dg9TQ0mOcAtWTO/FX/FaprtWQ8BmEXTpLIaNRhEwU=", "owner": "nixos", "repo": "nixpkgs", - "rev": "a595dde4d0d31606e19dcec73db02279db59d201", + "rev": "bcc4a9d9533c033d806a46b37dc444f9b0da49dd", "type": "github" }, "original": { @@ -176,10 +101,10 @@ "root": { "inputs": { "empty-smt-solver": "empty-smt-solver", - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils", "forge-std": "forge-std", "foundry": "foundry", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs", "solc-pkgs": "solc-pkgs", "solidity": "solidity" } @@ -198,7 +123,9 @@ }, "solc-pkgs": { "inputs": { - "flake-utils": "flake-utils_4", + "flake-utils": [ + "flake-utils" + ], "nixpkgs": [ "nixpkgs" ], @@ -249,36 +176,6 @@ "repo": "default", "type": "github" } - }, - "systems_2": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_3": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 797cfb0da..b12e9da3b 100644 --- a/flake.nix +++ b/flake.nix @@ -4,7 +4,11 @@ inputs = { flake-utils.url = "github:numtide/flake-utils"; nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; - foundry.url = "github:shazow/foundry.nix/stable"; + foundry = { + url = "github:shazow/foundry.nix/stable"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.flake-utils.follows = "flake-utils"; + }; solidity = { url = "github:argotorg/solidity/fd3a22656ebe9c91a96ebd846ab7699b5f2e053c"; flake = false; @@ -15,11 +19,13 @@ }; empty-smt-solver = { url = "github:msooseth/empty-smt-solver/74bd120fdb730fde8e44243305e669e5e8a3e02a"; - flake = true; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.flake-utils.follows = "flake-utils"; }; solc-pkgs = { url = "github:hellwolf/solc.nix"; inputs.nixpkgs.follows = "nixpkgs"; + inputs.flake-utils.follows = "flake-utils"; }; }; @@ -28,8 +34,10 @@ let pkgs = (import nixpkgs { inherit system; - overlays = [solc-pkgs.overlay]; - config = { allowBroken = true; }; + overlays = [ + foundry.overlay + solc-pkgs.overlay + ]; }); execution-spec-tests-fixtures = pkgs.stdenv.mkDerivation { name = "execution-spec-tests-fixtures"; @@ -48,7 +56,7 @@ solc = (solc-pkgs.mkDefault pkgs pkgs.solc_0_8_31); testDeps = [ solc - foundry.defaultPackage.${system} + pkgs.foundry-bin pkgs.go-ethereum pkgs.z3 pkgs.cvc5 @@ -60,17 +68,7 @@ configureFlags = attrs.configureFlags ++ [ "--enable-static" ]; })); - hspkgs = ps : - ps.haskellPackages.override { - overrides = hfinal: hprev: { - with-utf8 = - if (with ps.stdenv; hostPlatform.isDarwin && hostPlatform.isx86) - then ps.haskell.lib.compose.overrideCabal (_ : { extraLibraries = [ps.libiconv]; }) hprev.with-utf8 - else hprev.with-utf8; - # TODO: temporary fix for static build which is still on 9.4 - witch = ps.haskell.lib.doJailbreak hprev.witch; - }; - }; + hspkgs = ps: ps.haskell.packages.ghc912; hlib = pkgs.haskell.lib; # base hevm derivation.