Commit 5e000f2c authored by Emily's avatar Emily
Browse files

creduce: 2.10.0 -> 2.10.0-unstable-2024-06-01

We were already applying a ton of commits on top of the latest stable
release, including fixes for newer LLVM versions. Let’s bump to
the latest commit and pick up support for LLVM 18.

There are in‐flight PRs for LLVM 19 and 20:

* <https://github.com/csmith-project/creduce/pull/285>
* <https://github.com/csmith-project/creduce/pull/287>
parent e6a984ea
Loading
Loading
Loading
Loading
+15 −34
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  fetchurl,
  fetchpatch,
  fetchFromGitHub,
  cmake,
  makeWrapper,
  llvm,
@@ -15,38 +14,20 @@

stdenv.mkDerivation rec {
  pname = "creduce";
  version = "2.10.0";
  version = "2.10.0-unstable-2024-06-01";

  src = fetchurl {
    url = "https://embed.cs.utah.edu/${pname}/${pname}-${version}.tar.gz";
    sha256 = "2xwPEjln8k1iCwQM69UwAb89zwPkAPeFVqL/LhH+oGM=";
  src = fetchFromGitHub {
    owner = "csmith-project";
    repo = "creduce";
    rev = "31e855e290970cba0286e5032971509c0e7c0a80";
    hash = "sha256-RbxFqZegsCxnUaIIA5OfTzx1wflCPeF+enQt90VwMgA=";
  };

  patches = [
    # Port to LLVM 15
    (fetchpatch {
      url = "https://github.com/csmith-project/creduce/commit/e507cca4ccb32585c5692d49b8d907c1051c826c.patch";
      hash = "sha256-jO5E85AvHcjlErbUhzuQDXwQkhQsXklcTMQfWBd09OU=";
    })
    (fetchpatch {
      url = "https://github.com/csmith-project/creduce/commit/8d56bee3e1d2577fc8afd2ecc03b1323d6873404.patch";
      hash = "sha256-dRaBaJAYkvMyxKvfriOcg4D+4i6+6orZ85zws1AFx/s=";
    })
    # Port to LLVM 16
    (fetchpatch {
      url = "https://github.com/csmith-project/creduce/commit/8ab9a69caf13ce24172737e8bfd09de51a1ecb6a.patch";
      hash = "sha256-gPNXxYHnsyUvXmC0CGtsulH2Fu/EMnDE4GdOYc0UbiQ=";
    })
  ];

  postPatch = ''
    substituteInPlace CMakeLists.txt \
      --replace "-std=c++11" "-std=c++17"
  ''
  postPatch =
    # On Linux, c-reduce's preferred way to reason about
    # the cpu architecture/topology is to use 'lscpu',
    # so let's make sure it knows where to find it:
  + lib.optionalString stdenv.hostPlatform.isLinux ''
    lib.optionalString stdenv.hostPlatform.isLinux ''
      substituteInPlace creduce/creduce_utils.pm --replace \
        lscpu ${util-linux}/bin/lscpu
    '';
+1 −1
Original line number Diff line number Diff line
@@ -7011,7 +7011,7 @@ with pkgs;
  credstash = with python3Packages; toPythonApplication credstash;

  creduce = callPackage ../development/tools/misc/creduce {
    inherit (llvmPackages_16) llvm libclang;
    inherit (llvmPackages_18) llvm libclang;
  };

  inherit (nodePackages) csslint;