-
Notifications
You must be signed in to change notification settings - Fork 120
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
Add native support for Apple M1 #546
Comments
Would this mean we could drop the version shenanigans in |
Yes (assuming we require Julia >= 1.6 throughout). I mean, personally, I'd be all for that. Perhaps we can just do it now for most of our packages and JLLs (dunno if this would be acceptable for Nemo now or not, ping @wbhart) |
There's still no Julia LTS after 1.0.5. I am personally using 1.6, but I have to build docs on 1.5 due to the changes they made to the way arrays are printed. Those would be my main objections right now. Otherwise I am not opposed. |
The LTS thing would be also my concern. Let's hope that 1.6 becomes LTS once 1.7 is out. |
I asked on the Julia slack regarding LTS and how (un)likely it is that 1.6 would become the next LTS. I was told: "I would say quite likely" by one person. I expressed that I was looking forward to this as some of my colleagues have concerns about not supporting the LTS, to which Stefan Karpinski replied:
Anyway, for Oscar/Singular/GAP/Polymake we should be free to drop support for versions before 1.6, and doing that would remove at least one of the various major headaches we currently have with updating JLLs. (We still need to submit staggered PRs for each JLL, but at least one per JLL, not one per JLL and supported Julia version). |
While experimenting with some preliminary polymake binaries for Apple M1:
I ran into some other errors when trying to test Oscar and it seems similar errors also appear when running just the Singular testsuite. Singular prints several non-fatal errors during the tests, mostly about divisions by 0:
And then complains rather loudly about some missing NTL/FLINT stuff:
Is this known? |
These are indeed fatal and will be checked in the next singular.jl verions. Something is very wrong here. Does the flint test code (
Of course the errors from singular here are self-explanatory. I would just like to add that they may or may not be printing to the screen at the correct time. |
I don't really know, this is just using the binaries that were built on Yggdrasil with the recipes max added. Not really sure how to run the check in this environment, as they binaries are cross-compiled. Is there some way to run these (flint or singular) against an existing (installed) library?
Why would this be missing on Apple M1 only? |
It would probably be easier to just run the test suit for Nemo.jl if you can. It doesn't catch everything, but should fail if there is something seriously wrong with the bins.
Not sure, the logs in |
Good catch, I would have expected the configuration to fail if
I think we need something like this for Singular? (@fingolfin)
Or .101 at the end instead? |
Now that the list in the first post is complete I did some more experiments: With self-built Oscar dies here (no idea where that message comes from and no there is no backtrace):
GAP (this might be fixed by the switch to jll based GAP packages?):
The error log ends like this:
For Hecke and AbstractAlgebra I got two similar errors once but they seem to have disappeared now: Hecke:
AbstractAlgebra:
|
The |
Regarding the
So it looks like this might be code in Regarding the GAP error building |
That error message does indeed look like one of those from msolve. |
Yes, this seems to come from |
There is a machine sitting around in Kaiserslautern. The friendly system administrator on your floor will give you access. |
Getting access to a machine is not the problem, but how can I get |
Ah sorry, my bad, I hadn't updated all my packages on the M1 system. Working on it over the weekend. |
The |
I re-ran the tests and all Oscar test pass now on the latest master, thanks everyone! The only thing that remains are the GAP packages for the GAP.jl tests but those have separate issues anyway. |
This would be nice to have, as Julia 1.7 will probably support it "officially", and so people will start asking for this.
So, here is a list of JLLs that someone will have to update with support for M1 (I've omitted a few which already have it; I may have missed some, though):
There is a catch, though: to support new architectures, the JLL must require Julia >= 1.6, as Julia <= 1.5 chokes on platform "triples" in
Artifact.toml
it doesn't know.Luckily, we already know in principle how to do these things. Also, in the version with Julia >= 1.6 support, we could then make use of the new extended "platform triplets" ("tuplets" now, really), which are now able to arbitrary (?) key-value pairs, so that one can specify "julia_version=XXX". Here is an example of a JLL doing that (search for
julia_version
to find the relevant parts of the code). BTW this is another reason why I look forward to eventually dropping support for Julia <= 1.5...The text was updated successfully, but these errors were encountered: