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

Update to Sundials 6.5 #413

Open
ViralBShah opened this issue Jul 11, 2023 · 5 comments
Open

Update to Sundials 6.5 #413

ViralBShah opened this issue Jul 11, 2023 · 5 comments

Comments

@ViralBShah
Copy link
Contributor

ViralBShah commented Jul 11, 2023

How breaking is Sundials 6.5 compared to Sundials 5 that we use? Just opening this issue in case someone can lead the charge to update the package.

Sundials_jll for v6.5.1: JuliaPackaging/Yggdrasil#7034

@ChrisRackauckas
Copy link
Member

The biggest break is the handling of the nonlinear solvers. It's not a big deal: the hardest thing is probably getting the binaries built and getting the API wrappers re-run. Once that's done, I could do the upgraded common interface stuff in probably like 2 hours maximum.

@ViralBShah
Copy link
Contributor Author

The binaries are almost ready. Will see what it takes to generate the wrappers.

@ViralBShah
Copy link
Contributor Author

ViralBShah commented Jul 13, 2023

@sjdaines You seem to have updated wrappers in the past. I wonder if you might have time to give it a look. Also pinging @Gnimuc for help here if possible.

These are the errors I see using the latest Clang.jl: #415

@ViralBShah
Copy link
Contributor Author

Bump @sjdaines @Gnimuc just in case you didn't see my ping earlier.

@sjdaines
Copy link
Contributor

sjdaines commented Aug 28, 2023

Apologies, just seen this.

Unfortunately I can't offer much help here as I didn't update the wrapper generation script or regenerate the wrappers, as just getting the clang generator toolchain to work looked non-trivial.

Instead I applied a global edit to the previously checked-in wrappers to fix the memory management issues that started showing up in Julia 1.8. A note for what I changed and what will be needed to update the wrapper generation scripts to include these fixes is in #385. The key change here was to update the wrappers to take NVector (not N_Vector) so that this can be supplied as an argument to ccall with memory management then handled by the combination of cconvert and unsafe_convert (and make it impossible to explicitly create an N_Vector so all of the higher-level or external API uses NVector consistently).

Once the clang generators work then it should be straightforward to update the generator.jl script. I doubt I'll have time to contribute to this but happy to help review and test.

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

No branches or pull requests

3 participants