-
-
Notifications
You must be signed in to change notification settings - Fork 620
Singular 4.4.1 + Flint 3.3.2 #40033
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
Singular 4.4.1 + Flint 3.3.2 #40033
Conversation
every system we support has a decent enough version of patch. So we just purge it, like we did with tar a while ago.
I'll need some instructions on what reviewing this will entail. I just updated FLINT on my computer to 3.2.3 and am building develop from scratch, using that, so can start from there tomorrow. |
I'll close #39967 in favor of this PR. Have not checked singular-4.4.2 yet, but I'd be optimistic that the build issue with clang17 resolved with the upgrade to singular-4.4.1 is (still) resolved with singular-4.4.2. |
The usual:
|
Not sure what 4.4.2 is. Note that https://github.com/Singular/Singular/tags is still on 4.4.1. |
Ah, your PR title has Singular 4.4.2, and I didn't actually check the upstream sources or the diff here. 😄 |
thanks for pointing this out. Fixed |
with this PR and using |
@dimpase I am following your instructions (except with make -j7 on my laptop) but the build has not yet finished. |
My build seems to have frozen in the middle of installing maxima. The last lines are [maxima-5.47.0] [spkg-install] ;;; End of Pass 1. and it has not moved for a long time, and there are no relevant processes running. I will kill it and restart. |
I've done a PR to fix Homebrew's singular build to link to flint - this should allow it to work with Sage |
With this PR it is possible to build singular with gcc 15 in fedora 42 |
CI is failing. Looks like it still refers to the old packages?!
|
I had this problem in one installation, rebuilding packages depending on flint solved the problem |
I did that and this time it failed at this point: |
added #39977 to the dependencies - not merged in |
while you at are it, could you fix a Fedora 42 CI run? |
I don't think the sage-distro build system can handle soname changes. I used this masterpiece to get the CI to pass on the last GAP upgrade. |
are such things fixed in meson build? |
Yes, I think meson (or better ninja) will correctly recognize when you upgrade an external dependency and recompile the cython files. |
sagemathgh-40033: Singular 4.4.1 + Flint 3.3.2 Update flint and singular. This will catch up with Conda and Homebrew, possibly other distros (Homebrew needs Homebrew/homebrew-core#222142 merged) ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation and checked the documentation preview. ### ⌛ Dependencies sagemath#39943: - just not to build patch from source (if you have systemwide patch 2.8) sagemath#39977: - patches to allow gcc-15, etc URL: sagemath#40033 Reported by: Dima Pasechnik Reviewer(s):
sagemathgh-40033: Singular 4.4.1 + Flint 3.3.2 Update flint and singular. This will catch up with Conda and Homebrew, possibly other distros (Homebrew needs Homebrew/homebrew-core#222142 merged) EDIT Homebrew/homebrew-core#222142 has been merged, so now you can install singular from Homebrew and use it! ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation and checked the documentation preview. ### ⌛ Dependencies sagemath#39943: - just not to build patch from source (if you have systemwide patch 2.8) sagemath#39977: - patches to allow gcc-15, etc URL: sagemath#40033 Reported by: Dima Pasechnik Reviewer(s):
sagemathgh-40033: Singular 4.4.1 + Flint 3.3.2 Update flint and singular. This will catch up with Conda and Homebrew, possibly other distros (Homebrew needs Homebrew/homebrew-core#222142 merged) EDIT Homebrew/homebrew-core#222142 has been merged, so now you can install singular from Homebrew and use it! ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation and checked the documentation preview. ### ⌛ Dependencies sagemath#39943: - just not to build patch from source (if you have systemwide patch 2.8) sagemath#39977: - patches to allow gcc-15, etc URL: sagemath#40033 Reported by: Dima Pasechnik Reviewer(s):
Something like this is now needed again to fix the CI. It's broken currently for all PRs. |
how far are we from the point where we can switch to meson? |
Depends on what you want. If you just care about the long tests, then we can easily migrate them over to meson (on conda). Sage-the-distro changes would still be covered by CI using the "CI-incremental" runs. If you want to completely replace sagelib in sage-the-distro by the meson build, then things are more complicated. |
Ideally, the latter - this would alleviate this soname change issue all together. |
Okay, moving sage-the-distro to use meson was/is the point of #39030. But I'm not sure if this path is really a good way forward. I think it makes more sense to add a few missing, major dependencies (ecl, maxima, gap, singular) as meson subprojects, so that a |
I am not sure I follow - I meant a sagelib build, moving it from setuptools to meson. Or you mean that in such a setting meson won't be able to do a rebuild based on a soname change? |
My point is that Meson is a complete build system with built-in support for building missing dependencies on-the-fly (see Meson documentation on subprojects). This means there's no need for something like sage-the-distro, because Meson can automatically build any missing dependencies during the build process. If we combine sage-the-distro with Meson (e.g., by migrating Proposed migration path:
|
Well, one way or another, meson build for sagelib has to check/resolve dependencies, isn't it? And it should be environment-agnostic, in the sense it should not matter whether the dependencies come from Conda, or from OS, or are manually installed in /home/user/foobar and made available via pkg-config, isn't it? I don't understand what duplication you mean. I fear that this "installing on the fly" leads us into the same trap as sage the distro has led us into. |
@tobiasdiez - to elaborate a bit on my previous comment - I think it's important from the design modularity point of view, as there are uses of sagelib where no on the fly rebuilding of dependencies is needed. Dependencies can come from another meson project, which can be thought of as a replacement of sage the distro (slimmed down a lot, of course). |
The duplication would be that the configure scripts try to detect the correct dependencies - and in a second step meson will do it again to build sagelib. But both detection mechanisms are different, so either one might reject a certain dependency that the other build system would accept; and vice-versa. Also you would need to make sure that meson is able to find the dependencies that sage-the-distro build.
I completely agree! Meson actually works in such a modular way: it only builds a dependency, if no suitable version can be found (either as a system package, or conda, or manually installed). The whole subproject mechanism can also be disabled, which is important for downstream distros which need to provide all dependencies as separate packages. Meson's subprojects are very similar to the existing sage-the-distro except that the whole infrastructure is built into meson (so rather stable) and will be run as part of |
I think it would actually be a good step in switching to meson to start with sagelib. This would make sure that meson detections are done in such a seemingly unusual setting as sage's venv with its Sage-built things mixed with system-wide packages - and extra robustness. Is this a lot of work?
How about tarballs/repos to install deps on the fly? Would it still be a variation of sage mirrors, or, apart from very few packages, this can go? |
If sage-the-distro sets the correct compiler flags and/or installs pkgconfig files in a place where meson can find them, then it should work.
You can specify an url where meson will download the tarball. Normally that would be the upstream release. Or you specify a git repo (+ branch/commit/tag). So, except if the hosting of the tarball is very unreliable, I don't see the need for a sage mirror. There is also an official db with such subprojects (https://mesonbuild.com/Wrapdb-projects.html), but I think no math project are in there yet. |
does it mean the usual calling of pkg-config done by meson, or is it different, in the sense that it's a different API? |
The usual call done by meson. |
OK, so what does stop us from switching sagelib build to meson now? |
Someone needs to finish #39030. |
I have a feeling it's got to be me :-) |
Update flint and singular.
This will catch up with Conda and Homebrew, possibly other distros
(Homebrew needs Homebrew/homebrew-core#222142 merged)
EDIT Homebrew/homebrew-core#222142 has been merged, so now you can install singular from Homebrew and use it!
📝 Checklist
⌛ Dependencies
#39943: - just not to build patch from source (if you have systemwide patch 2.8)
#39977: - patches to allow gcc-15, etc