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

[FFTW] Build for experimental platforms #3585

Merged
merged 3 commits into from
Sep 15, 2021

Conversation

jeremiahpslewis
Copy link
Contributor

@jeremiahpslewis jeremiahpslewis commented Sep 4, 2021

FFTW.jl now requires Julia 1.6. In order to support experimental platforms like Apple Silicon, a new FFTW_jll needs to be built with an updated version number and then FFTW.jl can be updated. This PR seeks to resolve the open point for FFTW in #2763.

@staticfloat
Copy link
Member

I'm seeing if I can get an actual new release one more time FFTW/fftw3#248 (comment)

@jeremiahpslewis
Copy link
Contributor Author

@staticfloat Quick question, the 1:1 mapping of (raw) binary versions to Julia _jll versions is ingenious and simplifies many things except where it makes things infinitely more complicated like with the min 1.6 version / adding experimental platforms transition. Any thoughts about whether this set up feels 'solved' or worth tweaking?

@staticfloat
Copy link
Member

Absolutely! Mosè and I have discussed this at length. The critical design error is that we try to shove semantically useful information into the "build number" of the JLL version number (e.g. the X in v1.2.3+X). While this worked just fine while I was prototyping this system out, eventually we realized that the Julia package resolver doesn't allow packages to change attributes about itself if the major, minor and patch versions are the same. 😞

After a lot of back and forth with the Pkg team, (of which I am also a part) we decided that we would eventually decouple JLL version numbers from upstream source numbers, and we would have an automated tool to help keep track of what the "true" version number is. So, as an example, you would have a table somewhere that looks something like:

fftw FFTW_jll
v3.3.8 v3.3.8
v3.3.9 v3.3.9
v3.3.9 v4.0.0

And then we would have tooling to allow you to do things like ask "what version of the fftw binary do I actually have?", and "Allow me to specify version requirements on the actual library version itself", which would basically translate to the JLL version number ranges.

@staticfloat
Copy link
Member

To be clear though, this tooling doesn't exist yet. :)

@jeremiahpslewis
Copy link
Contributor Author

@staticfloat Nice! Thanks for the clear explanation, makes a lot of sense!

@staticfloat
Copy link
Member

The chain of notifications went from me to Valentin to Steven to Matteo, but we finally managed to get a new version of FFTW released!

@staticfloat staticfloat merged commit 9b47a01 into JuliaPackaging:master Sep 15, 2021
@jeremiahpslewis jeremiahpslewis deleted the jl/fftw branch October 19, 2021 19:22
simeonschaub pushed a commit to simeonschaub/Yggdrasil that referenced this pull request Feb 23, 2022
…ing#3585)

* [FFTW] Build for experimental platforms

* Update build_tarballs.jl

* Update build_tarballs.jl

Co-authored-by: Jeremiah Lewis <[email protected]>
Co-authored-by: Elliot Saba <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants