From 80f3fc67ba36360896e0f78e8da822d595746156 Mon Sep 17 00:00:00 2001 From: Sven Tennie Date: Thu, 6 Apr 2023 06:43:13 +0000 Subject: [PATCH 01/11] Enable building a cross-compiler --- .github/workflows/riscv64-cross-ci.yml | 49 +++++++++++++++ README.md | 18 ++++++ ghc.nix | 82 ++++++++++++++++++-------- 3 files changed, 125 insertions(+), 24 deletions(-) create mode 100644 .github/workflows/riscv64-cross-ci.yml diff --git a/.github/workflows/riscv64-cross-ci.yml b/.github/workflows/riscv64-cross-ci.yml new file mode 100644 index 0000000..928521c --- /dev/null +++ b/.github/workflows/riscv64-cross-ci.yml @@ -0,0 +1,49 @@ +name: RISC-V 64bit cross-compiler CI + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Prepare git + run: + git config --global url."git://github.com/ghc/packages-".insteadOf git://github.com/ghc/packages/ && + git config --global url."http://github.com/ghc/packages-".insteadOf http://github.com/ghc/packages/ && + git config --global url."https://github.com/ghc/packages-".insteadOf https://github.com/ghc/packages/ && + git config --global url."ssh://git@github.com/ghc/packages-".insteadOf ssh://git@github.com/ghc/packages/ && + git config --global url."git@github.com:ghc/packages-".insteadOf git@github.com:ghc/packages/ + + - name: Checkout GHC + uses: actions/checkout@v2.4.0 + with: + repository: ghc/ghc + submodules: recursive + + - name: Checkout ghc.nix + uses: actions/checkout@v2.4.0 + with: + path: ghc.nix + + - name: Install nix + uses: cachix/install-nix-action@v20 + + - name: Use cachix + uses: cachix/cachix-action@v12 + with: + name: ghc-nix + signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}' + + - name: Run nix-shell - Boot and Configure + run: nix-shell --pure ghc.nix/shell.nix --arg withLlvm true --arg crossTarget '"riscv64"' --command "./boot && configure_ghc" + + - name: Run nix-shell - cabal update + run: nix-shell --pure ghc.nix/shell.nix --arg withLlvm true --arg crossTarget '"riscv64"' --command "pushd hadrian; cabal update; popd" + + - name: Run nix-shell - Build GHC + run: nix-shell --pure ghc.nix/shell.nix --arg withLlvm true --arg crossTarget '"riscv64"' --command "hadrian/build -j --flavour=quickest" diff --git a/README.md b/README.md index cf2491c..01c59dd 100644 --- a/README.md +++ b/README.md @@ -142,6 +142,24 @@ nix develop github:alpmestan/ghc.nix#js-cross **Note** for the JavaScript backend, use `bignum=native` or the `native_bignum` transformer. +## Building a cross-compiler + +Cross-compiling in this section means: GHC is developed/built on one +architecture (`--build`) to run on the same architecture (`--host`) and target +another architecture (`--target`). + +E.g. develop GHC on *amd64*, run it on *amd64* and let the resulting GHC produce +binaries for *riscv64*. + +The `crossTarget` argument defines the target. The string must be a supported +architecture in `nixpkgs.pkgsCross`. When `crossTarget` is defined, all required +environment variables and `configure_ghc` parameters are setup for building a +cross-compiler. + +``` sh +nix-shell --pure ghc.nix/shell.nix --arg withLlvm true --arg crossTarget '"riscv64"' +``` + ## Cachix There is a Cachix cache ([ghc-nix](https://app.cachix.org/cache/ghc-nix)) which is filled by our CI. To use it, run the following command and follow the instructions: diff --git a/ghc.nix b/ghc.nix index 27cb379..0bb2b1d 100644 --- a/ghc.nix +++ b/ghc.nix @@ -37,6 +37,7 @@ args@{ system ? builtins.currentSystem , wasi-sdk , wasmtime , crossTarget ? null +, crossTargetPkgs ? null # a `nixpkgs.pkgsCross` record, e.g. `riscv64` }: # Assert that args has only one of withWasm and withWasiSDK. @@ -72,15 +73,19 @@ let }; pkgs = import nixpkgs { inherit system; overlays = [ overlay ]; }; + pkgs-cross = if crossTarget != null then pkgs.pkgsCross.${crossTarget} else null; in with pkgs; let llvmForGhc = + let + ps = if crossTarget == null then pkgs else pkgs-cross.buildPackages; + in if lib.versionAtLeast version "9.1" - then llvm_10 - else llvm_9; + then ps.llvm_12 + else ps.llvm_9; stdenv = if useClang @@ -229,29 +234,56 @@ hspkgs.shellFor rec { # In particular, this makes many tests fail because those warnings show up in test outputs too... # The solution is from: https://github.com/NixOS/nix/issues/318#issuecomment-52986702 LOCALE_ARCHIVE = if stdenv.isLinux then "${glibcLocales}/lib/locale/locale-archive" else ""; - CONFIGURE_ARGS = [ - "--with-gmp-includes=${gmp.dev}/include" - "--with-gmp-libraries=${gmp}/lib" - "--with-curses-includes=${ncurses.dev}/include" - "--with-curses-libraries=${ncurses.out}/lib" - ] ++ lib.optionals withNuma [ - "--with-libnuma-includes=${numactl}/include" - "--with-libnuma-libraries=${numactl}/lib" - ] ++ lib.optionals withDwarf [ - "--with-libdw-includes=${elfutils.dev}/include" - "--with-libdw-libraries=${elfutils.out}/lib" - "--enable-dwarf-unwind" - ] ++ lib.optionals withSystemLibffi [ - "--with-system-libffi" - "--with-ffi-includes=${libffi.dev}/include" - "--with-ffi-libraries=${libffi.out}/lib" - ] ++ lib.optionals (crossTarget != null) [ - "--target=${crossTarget}" - ]; + + CONFIGURE_ARGS = + if crossTargetPkgs == null then + [ + "--with-gmp-includes=${gmp.dev}/include" + "--with-gmp-libraries=${gmp}/lib" + "--with-curses-includes=${ncurses.dev}/include" + "--with-curses-libraries=${ncurses.out}/lib" + ] ++ lib.optionals withNuma [ + "--with-libnuma-includes=${numactl}/include" + "--with-libnuma-libraries=${numactl}/lib" + ] ++ lib.optionals withDwarf [ + "--with-libdw-includes=${elfutils.dev}/include" + "--with-libdw-libraries=${elfutils.out}/lib" + "--enable-dwarf-unwind" + ] ++ lib.optionals withSystemLibffi [ + "--with-system-libffi" + "--with-ffi-includes=${libffi.dev}/include" + "--with-ffi-libraries=${libffi.out}/lib" + ] ++ lib.optionals (crossTarget != null) [ + "--target=${crossTarget}" + ] else [ + "--with-gmp-includes=${pkgs-cross.gmp.dev}/include" + "--with-gmp-libraries=${pkgs-cross.gmp}/lib" + "--with-curses-includes=${pkgs-cross.ncurses.dev}/include" + "--with-curses-libraries=${pkgs-cross.ncurses.out}/lib" + "--host=${stdenv.hostPlatform.config}" + "--target=${pkgs-cross.stdenv.hostPlatform.config}" + ]; + + + targetDependentShellHook = + if crossTargetPkgs == null then + '' + export CC=${stdenv.cc}/bin/cc + '' else + let + prefix = pkgs-cross.stdenv.cc.targetPrefix; + in + '' + # somehow, CC gets overridden so we set it again here. + export CC=${pkgs-cross.stdenv.cc}/bin/${prefix}cc + export CXX=${pkgs-cross.stdenv.cc}/bin/${prefix}c++ + export AR=${pkgs-cross.stdenv.cc.bintools.bintools}/bin/${prefix}ar + export RANLIB=${pkgs-cross.stdenv.cc.bintools.bintools}/bin/${prefix}ranlib + export NM=${pkgs-cross.stdenv.cc.bintools.bintools}/bin/${prefix}nm + export LD=${pkgs-cross.stdenv.cc.bintools}/bin/${prefix}ld + ''; shellHook = '' - # somehow, CC gets overridden so we set it again here. - export CC=${stdenv.cc}/bin/cc export GHC=$NIX_GHC export GHCPKG=$NIX_GHCPKG export HAPPY=${happy}/bin/happy @@ -282,8 +314,10 @@ hspkgs.shellFor rec { # See https://gitlab.haskell.org/ghc/ghc-wasm-meta/-/blob/master/pkgs/wasi-sdk-setup-hook.sh ${lib.optionalString withWasm' "addWasiSDKHook"} + ${targetDependentShellHook} >&2 echo "Recommended ./configure arguments (found in \$CONFIGURE_ARGS:" - >&2 echo "or use the configure_ghc command):" + >&2 echo "or use the configure_ghc command - passing \$CONFIGURE_ARGS" + >&2 echo "itself to ./configure might not work):" >&2 echo "" >&2 echo " ${lib.concatStringsSep "\n " CONFIGURE_ARGS}" ''; From 2ab3c64d3b8af6dea493423c7f10c3421e629afe Mon Sep 17 00:00:00 2001 From: Sven Tennie Date: Fri, 14 Apr 2023 15:23:50 +0000 Subject: [PATCH 02/11] Add QEMU and Llvm lit --- ghc.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ghc.nix b/ghc.nix index 0bb2b1d..e36f4bb 100644 --- a/ghc.nix +++ b/ghc.nix @@ -38,6 +38,8 @@ args@{ system ? builtins.currentSystem , wasmtime , crossTarget ? null , crossTargetPkgs ? null # a `nixpkgs.pkgsCross` record, e.g. `riscv64` +, withQEMU ? false +, withLlvmLit ? false # for llvm lit tests }: # Assert that args has only one of withWasm and withWasiSDK. @@ -136,6 +138,7 @@ let ++ optional withIde hspkgs.haskell-language-server ++ optional withIde clang-tools # N.B. clang-tools for clangd ++ optional withDtrace linuxPackages.systemtap + ++ optional withLlvmLit lit ++ (if (! stdenv.isDarwin) then [ pxz ] else [ @@ -143,6 +146,12 @@ let darwin.libobjc darwin.apple_sdk.frameworks.Foundation ]) + ++ optional withQEMU ( + if crossTarget == null then + qemu + else + pkgsCross.${crossTarget}.buildPackages.buildPackages.qemu + ) ); happy = From 0d55284aef4a03d97cced6f61d91781c41e6fb69 Mon Sep 17 00:00:00 2001 From: Sven Tennie Date: Fri, 14 Apr 2023 15:38:03 +0000 Subject: [PATCH 03/11] QEMU comes with all architectures by default --- ghc.nix | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/ghc.nix b/ghc.nix index e36f4bb..6e0c505 100644 --- a/ghc.nix +++ b/ghc.nix @@ -139,6 +139,7 @@ let ++ optional withIde clang-tools # N.B. clang-tools for clangd ++ optional withDtrace linuxPackages.systemtap ++ optional withLlvmLit lit + ++ optional withQEMU qemu ++ (if (! stdenv.isDarwin) then [ pxz ] else [ @@ -146,12 +147,6 @@ let darwin.libobjc darwin.apple_sdk.frameworks.Foundation ]) - ++ optional withQEMU ( - if crossTarget == null then - qemu - else - pkgsCross.${crossTarget}.buildPackages.buildPackages.qemu - ) ); happy = From 1cfc9f75cd0662dd132eca0376803b00cb1e9c32 Mon Sep 17 00:00:00 2001 From: Sven Tennie Date: Tue, 18 Apr 2023 15:54:24 +0000 Subject: [PATCH 04/11] Add FileCheck for LLVM lit --- ghc.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ghc.nix b/ghc.nix index 6e0c505..68763ee 100644 --- a/ghc.nix +++ b/ghc.nix @@ -86,8 +86,8 @@ let ps = if crossTarget == null then pkgs else pkgs-cross.buildPackages; in if lib.versionAtLeast version "9.1" - then ps.llvm_12 - else ps.llvm_9; + then ps.llvmPackages_12 + else ps.llvmPackages_9; stdenv = if useClang @@ -128,7 +128,7 @@ let hlint ] ++ docsPackages - ++ optional withLlvm llvmForGhc + ++ optional withLlvm llvmForGhc.llvm ++ optional withGrind valgrind ++ optional withEMSDK emscripten ++ optionals withWasm' [ wasi-sdk wasmtime ] @@ -138,7 +138,7 @@ let ++ optional withIde hspkgs.haskell-language-server ++ optional withIde clang-tools # N.B. clang-tools for clangd ++ optional withDtrace linuxPackages.systemtap - ++ optional withLlvmLit lit + ++ optionals withLlvmLit [ lit llvmForGhc.libllvm ] ++ optional withQEMU qemu ++ (if (! stdenv.isDarwin) then [ pxz ] From bae5d2952b231e9c0a5bfd4e7b309d1736acebf3 Mon Sep 17 00:00:00 2001 From: Sven Tennie Date: Wed, 7 Jun 2023 12:41:16 +0000 Subject: [PATCH 05/11] Fixup: llvm derivation path --- ghc.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ghc.nix b/ghc.nix index 68763ee..fd00a70 100644 --- a/ghc.nix +++ b/ghc.nix @@ -304,8 +304,8 @@ hspkgs.shellFor rec { >&2 echo "N.B. You will need to invoke Hadrian with --bignum=native" >&2 echo "" ''} - ${lib.optionalString withLlvm "export LLC=${llvmForGhc}/bin/llc"} - ${lib.optionalString withLlvm "export OPT=${llvmForGhc}/bin/opt"} + ${lib.optionalString withLlvm "export LLC=${llvmForGhc.llvm}/bin/llc"} + ${lib.optionalString withLlvm "export OPT=${llvmForGhc.llvm}/bin/opt"} # "nix-shell --pure" resets LANG to POSIX, this breaks "make TAGS". export LANG="en_US.UTF-8" From 5116dbb14f6b1a4934034a459f63fb3ccedd4327 Mon Sep 17 00:00:00 2001 From: Sven Tennie Date: Sun, 26 Nov 2023 18:26:46 +0100 Subject: [PATCH 06/11] Don't configure ghc-platform and ghc-toolchain for old GHC versions Both packages were added pretty recently. --- ghc.nix | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/ghc.nix b/ghc.nix index fd00a70..965cf23 100644 --- a/ghc.nix +++ b/ghc.nix @@ -181,13 +181,15 @@ let then hspkgs.callCabal2nix "hadrian" hadrianCabal ( - let - guessedGhcSrcDir = dirOf (dirOf hadrianCabal); - in - rec { - ghc-platform = hspkgs.callCabal2nix "ghc-platform" (/. + guessedGhcSrcDir + "/libraries/ghc-platform") { }; - ghc-toolchain = hspkgs.callCabal2nix "ghc-toolchain" (/. + guessedGhcSrcDir + "/utils/ghc-toolchain") { inherit ghc-platform; }; - } + if lib.versionAtLeast version "9.9" then + let + guessedGhcSrcDir = dirOf (dirOf hadrianCabal); + in + rec { + ghc-platform = hspkgs.callCabal2nix "ghc-platform" (/. + guessedGhcSrcDir + "/libraries/ghc-platform") { }; + ghc-toolchain = hspkgs.callCabal2nix "ghc-toolchain" (/. + guessedGhcSrcDir + "/utils/ghc-toolchain") { inherit ghc-platform; }; + } + else {} ) else (hspkgs.mkDerivation { From e75c4ec950908de8a3eb4378d2822de5072d8ef9 Mon Sep 17 00:00:00 2001 From: Sven Tennie Date: Mon, 25 Mar 2024 09:16:31 +0100 Subject: [PATCH 07/11] Sync --- ghc.nix | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/ghc.nix b/ghc.nix index 965cf23..5a5d330 100644 --- a/ghc.nix +++ b/ghc.nix @@ -75,7 +75,7 @@ let }; pkgs = import nixpkgs { inherit system; overlays = [ overlay ]; }; - pkgs-cross = if crossTarget != null then pkgs.pkgsCross.${crossTarget} else null; + pkgs-cross = if crossTargetPkgs != null then pkgs.pkgsCross.${crossTargetPkgs} else null; in with pkgs; @@ -86,13 +86,19 @@ let ps = if crossTarget == null then pkgs else pkgs-cross.buildPackages; in if lib.versionAtLeast version "9.1" - then ps.llvmPackages_12 + then ps.llvmPackages_14 else ps.llvmPackages_9; stdenv = if useClang then pkgs.clangStdenv else pkgs.stdenv; + + crossStdenv = + if useClang + then pkgs-cross.clangStdenv + else pkgs-cross.stdenv; + noTest = haskell.lib.dontCheck; hspkgs = pkgs.haskell.packages.${bootghc}; @@ -112,8 +118,8 @@ let automake m4 less - gmp.dev - gmp.out +# gmp.dev +# gmp.out glibcLocales ncurses.dev ncurses.out @@ -140,6 +146,11 @@ let ++ optional withDtrace linuxPackages.systemtap ++ optionals withLlvmLit [ lit llvmForGhc.libllvm ] ++ optional withQEMU qemu + ++ optionals (crossTargetPkgs != null) [ + pkgs-cross.gmp.dev + pkgs-cross.gmp.out +# pkgs-cross.gcc.cc.libgcc + ] ++ (if (! stdenv.isDarwin) then [ pxz ] else [ @@ -267,7 +278,7 @@ hspkgs.shellFor rec { "--with-curses-includes=${pkgs-cross.ncurses.dev}/include" "--with-curses-libraries=${pkgs-cross.ncurses.out}/lib" "--host=${stdenv.hostPlatform.config}" - "--target=${pkgs-cross.stdenv.hostPlatform.config}" + "--target=${crossStdenv.hostPlatform.config}" ]; @@ -277,16 +288,17 @@ hspkgs.shellFor rec { export CC=${stdenv.cc}/bin/cc '' else let - prefix = pkgs-cross.stdenv.cc.targetPrefix; + prefix = crossStdenv.cc.targetPrefix; in '' # somehow, CC gets overridden so we set it again here. - export CC=${pkgs-cross.stdenv.cc}/bin/${prefix}cc - export CXX=${pkgs-cross.stdenv.cc}/bin/${prefix}c++ - export AR=${pkgs-cross.stdenv.cc.bintools.bintools}/bin/${prefix}ar - export RANLIB=${pkgs-cross.stdenv.cc.bintools.bintools}/bin/${prefix}ranlib - export NM=${pkgs-cross.stdenv.cc.bintools.bintools}/bin/${prefix}nm - export LD=${pkgs-cross.stdenv.cc.bintools}/bin/${prefix}ld + export CC=${crossStdenv.cc}/bin/${prefix}cc + export CXX=${crossStdenv.cc}/bin/${prefix}c++ + export AR=${crossStdenv.cc.bintools.bintools}/bin/${prefix}ar + export RANLIB=${crossStdenv.cc.bintools.bintools}/bin/${prefix}ranlib + export NM=${crossStdenv.cc.bintools.bintools}/bin/${prefix}nm + export LD=${crossStdenv.cc.bintools}/bin/${prefix}ld + export LLVMAS=${pkgs-cross.clangStdenv.cc.cc}/bin/clang ''; shellHook = '' From ca55c1fddfde76c0184e084f51ec0b4ef6df6b0b Mon Sep 17 00:00:00 2001 From: Sven Tennie Date: Fri, 19 Apr 2024 20:38:44 +0200 Subject: [PATCH 08/11] Bump nixpkgs --- flake.lock | 8 ++++---- flake.nix | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/flake.lock b/flake.lock index 98c947b..6fac938 100644 --- a/flake.lock +++ b/flake.lock @@ -129,16 +129,16 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1695825837, - "narHash": "sha256-4Ne11kNRnQsmSJCRSSNkFRSnHC4Y5gPDBIQGjjPfJiU=", + "lastModified": 1711668574, + "narHash": "sha256-u1dfs0ASQIEr1icTVrsKwg2xToIpn7ZXxW3RHfHxshg=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5cfafa12d57374f48bcc36fda3274ada276cf69e", + "rev": "219951b495fc2eac67b1456824cc1ec1fd2ee659", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-23.05", + "ref": "nixos-23.11", "repo": "nixpkgs", "type": "github" } diff --git a/flake.nix b/flake.nix index 6a141ba..aae6f15 100644 --- a/flake.nix +++ b/flake.nix @@ -7,7 +7,7 @@ }; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11"; flake-compat = { url = "github:edolstra/flake-compat"; flake = false; From 9946aff9c06c18b491bc2f0032f5a361d79fcb26 Mon Sep 17 00:00:00 2001 From: Sven Tennie Date: Fri, 19 Apr 2024 20:39:14 +0200 Subject: [PATCH 09/11] LLVM 15 --- ghc.nix | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/ghc.nix b/ghc.nix index 5a5d330..4e22a4a 100644 --- a/ghc.nix +++ b/ghc.nix @@ -86,7 +86,7 @@ let ps = if crossTarget == null then pkgs else pkgs-cross.buildPackages; in if lib.versionAtLeast version "9.1" - then ps.llvmPackages_14 + then ps.llvmPackages_15 else ps.llvmPackages_9; stdenv = @@ -132,6 +132,9 @@ let zlib.out zlib.dev hlint + pkgs-cross.buildPackages.clang_15 + pkgs-cross.buildPackages.gcc + pkgs-cross.buildPackages.lld_15 ] ++ docsPackages ++ optional withLlvm llvmForGhc.llvm @@ -149,6 +152,9 @@ let ++ optionals (crossTargetPkgs != null) [ pkgs-cross.gmp.dev pkgs-cross.gmp.out + pkgs-cross.libffi.dev +# pkgs-cross.glibc.out +# pkgs-cross.glibc.dev # pkgs-cross.gcc.cc.libgcc ] ++ (if (! stdenv.isDarwin) @@ -281,7 +287,6 @@ hspkgs.shellFor rec { "--target=${crossStdenv.hostPlatform.config}" ]; - targetDependentShellHook = if crossTargetPkgs == null then '' @@ -298,7 +303,8 @@ hspkgs.shellFor rec { export RANLIB=${crossStdenv.cc.bintools.bintools}/bin/${prefix}ranlib export NM=${crossStdenv.cc.bintools.bintools}/bin/${prefix}nm export LD=${crossStdenv.cc.bintools}/bin/${prefix}ld - export LLVMAS=${pkgs-cross.clangStdenv.cc.cc}/bin/clang + export LD=${pkgs-cross.pkgsCross.riscv64.buildPackages.lld_15}/bin/ld.lld + export LLVMAS=${pkgs-cross.pkgsCross.riscv64.buildPackages.clang_15}/bin/${prefix}clang ''; shellHook = '' From 8963a4843bf73a99b731db98b55825d30f5e481b Mon Sep 17 00:00:00 2001 From: Sven Tennie Date: Tue, 4 Jun 2024 17:39:38 +0200 Subject: [PATCH 10/11] Add ncurses cross dev packages --- ghc.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ghc.nix b/ghc.nix index 4e22a4a..d52044e 100644 --- a/ghc.nix +++ b/ghc.nix @@ -156,6 +156,9 @@ let # pkgs-cross.glibc.out # pkgs-cross.glibc.dev # pkgs-cross.gcc.cc.libgcc + + pkgs-cross.ncurses.dev + pkgs-cross.ncurses.out ] ++ (if (! stdenv.isDarwin) then [ pxz ] From 78e80fb5a7ccca410443385316429b005e59d7aa Mon Sep 17 00:00:00 2001 From: Sven Tennie Date: Sun, 1 Sep 2024 12:14:50 +0200 Subject: [PATCH 11/11] Update dependencies --- flake.lock | 86 +++++++++++++++++------------------------------------- flake.nix | 2 +- 2 files changed, 27 insertions(+), 61 deletions(-) diff --git a/flake.lock b/flake.lock index 6fac938..719fd0e 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "all-cabal-hashes": { "flake": false, "locked": { - "lastModified": 1696116924, - "narHash": "sha256-c6R3PkzqDCeAIqB+aygnjIMOmnkAmepyakOqtb8oQrg=", + "lastModified": 1725030825, + "narHash": "sha256-wk4e/MLkvr8Am40chWvY4NAqNPMRIhA1nfeS0uUnvH0=", "owner": "commercialhaskell", "repo": "all-cabal-hashes", - "rev": "bd2d976d126b7730d82c772a207cf34e927aa69d", + "rev": "56288303833cbb3edd9875a6be3912c3b9a4c65e", "type": "github" }, "original": { @@ -20,11 +20,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "owner": "edolstra", "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { @@ -38,29 +38,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1692799911, - "narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_2": { - "inputs": { - "systems": "systems_2" - }, - "locked": { - "lastModified": 1685518550, - "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -76,11 +58,11 @@ }, "locked": { "host": "gitlab.haskell.org", - "lastModified": 1695834759, - "narHash": "sha256-VwlqAhx5zv/i7Z8jSoHbdHV7xj6OlIVhCz8X8pxjF8M=", + "lastModified": 1724059870, + "narHash": "sha256-f+R7FKK++zFnIZ9Y675JKfKNpPgfsl+FO64nKaR1cVI=", "owner": "ghc", "repo": "ghc-wasm-meta", - "rev": "bd1b3778e8100a5e8c89962903a8c2ae3ff5c611", + "rev": "9163934b059292b56dc69b51aad65cae72df9adf", "type": "gitlab" }, "original": { @@ -98,11 +80,11 @@ ] }, "locked": { - "lastModified": 1660459072, - "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", "owner": "hercules-ci", "repo": "gitignore.nix", - "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", "type": "github" }, "original": { @@ -113,32 +95,32 @@ }, "nixpkgs": { "locked": { - "lastModified": 1694343207, - "narHash": "sha256-jWi7OwFxU5Owi4k2JmiL1sa/OuBCQtpaAesuj5LXC8w=", + "lastModified": 1723637854, + "narHash": "sha256-med8+5DSWa2UnOqtdICndjDAEjxr5D7zaIiK4pn0Q7c=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "78058d810644f5ed276804ce7ea9e82d92bee293", + "rev": "c3aa7b8938b17aebd2deecf7be0636000d62a2b9", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-unstable", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_2": { "locked": { - "lastModified": 1711668574, - "narHash": "sha256-u1dfs0ASQIEr1icTVrsKwg2xToIpn7ZXxW3RHfHxshg=", + "lastModified": 1724855419, + "narHash": "sha256-WXHSyOF4nBX0cvHN3DfmEMcLOVdKH6tnMk9FQ8wTNRc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "219951b495fc2eac67b1456824cc1ec1fd2ee659", + "rev": "ae2fc9e0e42caaf3f068c1bfdc11c71734125e06", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-23.11", + "ref": "nixos-24.05", "repo": "nixpkgs", "type": "github" } @@ -148,7 +130,6 @@ "flake-compat": [ "flake-compat" ], - "flake-utils": "flake-utils_2", "gitignore": "gitignore", "nixpkgs": [ "nixpkgs" @@ -158,11 +139,11 @@ ] }, "locked": { - "lastModified": 1695576016, - "narHash": "sha256-71KxwRhTfVuh7kNrg3/edNjYVg9DCyKZl2QIKbhRggg=", + "lastModified": 1724857454, + "narHash": "sha256-Qyl9Q4QMTLZnnBb/8OuQ9LSkzWjBU1T5l5zIzTxkkhk=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "cb770e93516a1609652fa8e945a0f310e98f10c0", + "rev": "4509ca64f1084e73bc7a721b20c669a8d4c5ebe6", "type": "github" }, "original": { @@ -194,21 +175,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" - } } }, "root": "root", diff --git a/flake.nix b/flake.nix index aae6f15..99af5e0 100644 --- a/flake.nix +++ b/flake.nix @@ -7,7 +7,7 @@ }; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; flake-compat = { url = "github:edolstra/flake-compat"; flake = false;