From 394763b58355aac20f9fe2ba094cce716ef75faa Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 2 Jul 2023 06:39:14 +0000 Subject: [PATCH 1/7] halide: 15.0.1 -> 16.0.0 --- pkgs/development/compilers/halide/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/compilers/halide/default.nix b/pkgs/development/compilers/halide/default.nix index 0f5a330faa18..8a93b3cbb9d1 100644 --- a/pkgs/development/compilers/halide/default.nix +++ b/pkgs/development/compilers/halide/default.nix @@ -18,13 +18,13 @@ assert blas.implementation == "openblas" && lapack.implementation == "openblas"; stdenv.mkDerivation rec { pname = "halide"; - version = "15.0.1"; + version = "16.0.0"; src = fetchFromGitHub { owner = "halide"; repo = "Halide"; rev = "v${version}"; - sha256 = "sha256-mnZ6QMqDr48bH2W+andGZj2EhajXKApjuW6B50xtzx0="; + sha256 = "sha256-lJQrXkJgBmGb/QMSxwuPkkHOSgEDowLWzIolp1km2Y8="; }; cmakeFlags = [ From 77486e6c93353cdabccb650bc257e270be0cddb1 Mon Sep 17 00:00:00 2001 From: Tom Westerhout <14264576+twesterhout@users.noreply.github.com> Date: Mon, 21 Aug 2023 15:44:11 +0200 Subject: [PATCH 2/7] halide: build against llvmPackages_16 --- pkgs/top-level/all-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ae6f3be59fef..e6b3f91f133a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8648,7 +8648,7 @@ with pkgs; halibut = callPackage ../tools/typesetting/halibut { }; halide = callPackage ../development/compilers/halide { - llvmPackages = llvmPackages_14; + llvmPackages = llvmPackages_16; }; harePackages = recurseIntoAttrs (callPackage ../development/compilers/hare { }); From ed6e240d32e6359be3947bdd8c852876e4464e4f Mon Sep 17 00:00:00 2001 From: Tom Westerhout <14264576+twesterhout@users.noreply.github.com> Date: Mon, 21 Aug 2023 19:34:53 +0200 Subject: [PATCH 3/7] halide: disable float16 support on aarch16-linux --- pkgs/development/compilers/halide/default.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkgs/development/compilers/halide/default.nix b/pkgs/development/compilers/halide/default.nix index 8a93b3cbb9d1..b508433bf94b 100644 --- a/pkgs/development/compilers/halide/default.nix +++ b/pkgs/development/compilers/halide/default.nix @@ -27,6 +27,15 @@ stdenv.mkDerivation rec { sha256 = "sha256-lJQrXkJgBmGb/QMSxwuPkkHOSgEDowLWzIolp1km2Y8="; }; + postPatch = '' + # See https://github.com/halide/Halide/issues/7785 + substituteInPlace 'src/runtime/HalideRuntime.h' \ + --replace '#if defined(__x86_64__) || defined(__i386__) || defined(__arm__) || defined(__aarch64__) + #define HALIDE_CPP_COMPILER_HAS_FLOAT16' \ + '#if defined(__x86_64__) || defined(__i386__) + #define HALIDE_CPP_COMPILER_HAS_FLOAT16' + ''; + cmakeFlags = [ "-DWARNINGS_AS_ERRORS=OFF" "-DWITH_PYTHON_BINDINGS=OFF" From b55f063caf98b12852f33d159d8fbb6b3dfc6646 Mon Sep 17 00:00:00 2001 From: Tom Westerhout <14264576+twesterhout@users.noreply.github.com> Date: Mon, 21 Aug 2023 22:36:44 +0200 Subject: [PATCH 4/7] halide: patch to remove dependency on Apple SDK --- pkgs/development/compilers/halide/default.nix | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pkgs/development/compilers/halide/default.nix b/pkgs/development/compilers/halide/default.nix index b508433bf94b..9e04c5a2424b 100644 --- a/pkgs/development/compilers/halide/default.nix +++ b/pkgs/development/compilers/halide/default.nix @@ -34,6 +34,18 @@ stdenv.mkDerivation rec { #define HALIDE_CPP_COMPILER_HAS_FLOAT16' \ '#if defined(__x86_64__) || defined(__i386__) #define HALIDE_CPP_COMPILER_HAS_FLOAT16' + + # AvailabilityVersions.h is part of Apple SDK, and we do not want to depend on it + substituteInPlace 'src/runtime/HalideBuffer.h' \ + --replace '#ifdef __APPLE__ + #include + #include + #endif' \ + ' ' \ + --replace 'TARGET_OS_OSX && (__MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_15)' \ + '0' \ + --replace 'TARGET_OS_IPHONE && (__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_14_0)' \ + '0' ''; cmakeFlags = [ @@ -46,6 +58,15 @@ stdenv.mkDerivation rec { doCheck = true; + # Note: disable mullapudi2016_fibonacci because it requires too much + # parallelism for remote builders + ctestArgs = "--output-on-failure -E 'mullapudi2016_fibonacci'"; + checkPhase = '' + runHook preCheck + ctest ${ctestArgs} + runHook postCheck + ''; + # Note: only openblas and not atlas part of this Nix expression # see pkgs/development/libraries/science/math/liblapack/3.5.0.nix # to get a hint howto setup atlas instead of openblas From c841f93dd98880f5a62c4995a3c9082f4478d2d6 Mon Sep 17 00:00:00 2001 From: Tom Westerhout <14264576+twesterhout@users.noreply.github.com> Date: Tue, 22 Aug 2023 10:57:32 +0200 Subject: [PATCH 5/7] halide: ::aligned_alloc is not available on x86_64-darwin --- pkgs/development/compilers/halide/default.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/halide/default.nix b/pkgs/development/compilers/halide/default.nix index 9e04c5a2424b..232a006e4cf5 100644 --- a/pkgs/development/compilers/halide/default.nix +++ b/pkgs/development/compilers/halide/default.nix @@ -34,8 +34,11 @@ stdenv.mkDerivation rec { #define HALIDE_CPP_COMPILER_HAS_FLOAT16' \ '#if defined(__x86_64__) || defined(__i386__) #define HALIDE_CPP_COMPILER_HAS_FLOAT16' - - # AvailabilityVersions.h is part of Apple SDK, and we do not want to depend on it + '' + # Note: on x86_64-darwin, clang fails to find AvailabilityVersions.h, so we remove it. + # Halide uses AvailabilityVersions.h and TargetConditionals.h to determine whether + # ::aligned_alloc is available. For us, it isn't. + + lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) '' substituteInPlace 'src/runtime/HalideBuffer.h' \ --replace '#ifdef __APPLE__ #include @@ -43,7 +46,7 @@ stdenv.mkDerivation rec { #endif' \ ' ' \ --replace 'TARGET_OS_OSX && (__MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_15)' \ - '0' \ + '1' \ --replace 'TARGET_OS_IPHONE && (__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_14_0)' \ '0' ''; From f6370efdfbb57b08b5ee1b18a535dea1b2938c52 Mon Sep 17 00:00:00 2001 From: Tom Westerhout <14264576+twesterhout@users.noreply.github.com> Date: Fri, 3 Nov 2023 18:54:02 +0100 Subject: [PATCH 6/7] halide: disable fuzzing tests --- pkgs/development/compilers/halide/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/compilers/halide/default.nix b/pkgs/development/compilers/halide/default.nix index 232a006e4cf5..7684ffded9ea 100644 --- a/pkgs/development/compilers/halide/default.nix +++ b/pkgs/development/compilers/halide/default.nix @@ -57,6 +57,10 @@ stdenv.mkDerivation rec { "-DTARGET_WEBASSEMBLY=OFF" # Disable performance tests since they may fail on busy machines "-DWITH_TEST_PERFORMANCE=OFF" + # Disable fuzzing tests -- this has become the default upstream after the + # v16 release (See https://github.com/halide/Halide/commit/09c5d1d19ec8e6280ccbc01a8a12decfb27226ba) + # These tests also fail to compile on Darwin because of some missing command line options... + "-DWITH_TEST_FUZZ=OFF" ]; doCheck = true; From da893e4d17861e4a716d1d842ea141656e09a663 Mon Sep 17 00:00:00 2001 From: Tom Westerhout <14264576+twesterhout@users.noreply.github.com> Date: Mon, 6 Nov 2023 18:04:02 +0100 Subject: [PATCH 7/7] halide: use preCheck instead of overwriting checkPhase --- pkgs/development/compilers/halide/default.nix | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/pkgs/development/compilers/halide/default.nix b/pkgs/development/compilers/halide/default.nix index 7684ffded9ea..738ecc81a156 100644 --- a/pkgs/development/compilers/halide/default.nix +++ b/pkgs/development/compilers/halide/default.nix @@ -67,11 +67,8 @@ stdenv.mkDerivation rec { # Note: disable mullapudi2016_fibonacci because it requires too much # parallelism for remote builders - ctestArgs = "--output-on-failure -E 'mullapudi2016_fibonacci'"; - checkPhase = '' - runHook preCheck - ctest ${ctestArgs} - runHook postCheck + preCheck = '' + checkFlagsArray+=("ARGS=-E 'mullapudi2016_fibonacci'") ''; # Note: only openblas and not atlas part of this Nix expression