Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Another try at fixing FFTW #707

Closed
wants to merge 4 commits into from
Closed

Another try at fixing FFTW #707

wants to merge 4 commits into from

Conversation

svchb
Copy link
Collaborator

@svchb svchb commented Jan 21, 2025

No description provided.

Copy link

codecov bot commented Jan 21, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 68.75%. Comparing base (b91c603) to head (4db7407).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #707   +/-   ##
=======================================
  Coverage   68.75%   68.75%           
=======================================
  Files          93       93           
  Lines        5840     5840           
=======================================
  Hits         4015     4015           
  Misses       1825     1825           
Flag Coverage Δ
unit 68.75% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@svchb
Copy link
Collaborator Author

svchb commented Jan 21, 2025

One package pulls in FFTW < 1.7.0 on MacOS and Windows. Unclear which one it is...

@svchb
Copy link
Collaborator Author

svchb commented Jan 21, 2025

It is https://github.com/JuliaStats/KernelDensity.jl which is included by Makie.
The problem is the way to wide specification of compatible versions since only versions > 1.6 of FFTW are compatible with Julia 1.8+. This somehow resolves incorrectly on windows and MAC to FFTW 1.1

@svchb
Copy link
Collaborator Author

svchb commented Jan 21, 2025

This includes than BinaryProvider
[[deps.FFTW]]
deps = ["AbstractFFTs", "BinaryProvider", "Conda", "Libdl", "LinearAlgebra", "Reexport"]
git-tree-sha1 = "e0823a0ea2990b28a8398e958327333e8af53b27"
uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341"
version = "1.1.1"

@svchb svchb requested a review from efaulhaber January 21, 2025 23:39
@svchb svchb self-assigned this Jan 21, 2025
@svchb svchb added the dependencies Pull requests that update a dependency file label Jan 21, 2025
@efaulhaber
Copy link
Member

I did some more digging. The problem is that BinaryProvider is not compatible with macOS. This package is a dependency of [email protected], which is 4 years old. The reason why this old version is getting installed, as @ranocha figured out, is that newer versions of FFTW are not compatible with 2025 versions of MKL_jll. So Pkg has the choice between new FFTW and old MKL_jll or vice versa, and apparently chooses the latest version of MKL_jll and this ancient version of FFTW:

(test) pkg> status --outdated -m
Status `~/git/TrixiParticles.jl/test/Manifest.toml`
⌅ [621f4979] AbstractFFTs v0.5.0 (<v1.5.0): FFTW
⌅ [13f3f980] CairoMakie v0.12.18 (<v0.13.1) [compat]
⌅ [3da002f7] ColorTypes v0.11.5 (<v0.12.0): ColorVectorSpace, ShaderAbstractions
⌃ [c3611d14] ColorVectorSpace v0.10.0 (<v0.11.0)
⌅ [6b7a57c9] Expronicon v0.8.5 (<v0.10.13): SciMLBase
⌃ [7a1cc6ca] FFTW v1.1.1 (<v1.8.0)
⌅ [5c1252a2] GeometryBasics v0.4.11 (<v0.5.1): CairoMakie, Makie, MakieCore, ShaderAbstractions
⌅ [ee78f7c6] Makie v0.21.18 (<v0.22.1): CairoMakie
⌅ [20f20a25] MakieCore v0.8.12 (<v0.9.0): Makie
⌅ [65257c39] ShaderAbstractions v0.4.1 (<v0.5.0): Makie
⌅ [09ab397b] StructArrays v0.6.21 (<v0.7.0): GeometryBasics, ShaderAbstractions
⌅ [b22a6f82] FFMPEG_jll v4.4.4+1 (<v7.1.0+0): FFMPEG, Makie
⌅ [e9f186c6] Libffi_jll v3.2.2+2 (<v3.4.6+4): Glib_jll, HarfBuzz_jll, Wayland_jll
⌅ [30392449] Pixman_jll v0.43.4+0 (<v0.44.2+0): Cairo_jll
⌅ [c0090381] Qt6Base_jll v6.7.1+1 (<v6.8.1+0): GR_jll, Qt6Declarative_jll, Qt6ShaderTools_jll, Qt6Wayland_jll
⌅ [1270edf5] x264_jll v2021.5.5+0 (<v10164.0.1+0): FFMPEG_jll
⌅ [dfaa095f] x265_jll v3.5.0+0 (<v4.1.0+0): FFMPEG_jll

Upgrading FFTW shows the incompatibility with new versions of MKL_jll:

(test) pkg> add [email protected]
   Resolving package versions...
    Updating `~/git/TrixiParticles.jl/test/Project.toml`
  [7a1cc6ca] + FFTW v1.8.0
    Updating `~/git/TrixiParticles.jl/test/Manifest.toml`
  [621f4979] ↑ AbstractFFTs v0.5.0 ⇒ v1.5.0
  [b99e7846] - BinaryProvider v0.5.10
  [8f4d0f93] - Conda v1.10.2
  [7a1cc6ca] ↑ FFTW v1.1.1 ⇒ v1.8.0
  [81def892] - VersionParsing v1.3.0
  [f5851436] + FFTW_jll v3.3.10+3
⌅ [1d5cc7b8] ↓ IntelOpenMP_jll v2025.0.4+0 ⇒ v2024.2.1+0
⌅ [856f044c] ↓ MKL_jll v2025.0.1+0 ⇒ v2024.2.0+0

This problem should be fixed upstream and not here. See JuliaMath/FFTW.jl#314.

What a nice way to waste time...

@efaulhaber efaulhaber closed this Jan 22, 2025
@sloede sloede deleted the FFTW-error-in-CI branch January 24, 2025 09:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants