-
Notifications
You must be signed in to change notification settings - Fork 46
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
support for Mac with M series chips #380
Comments
We currently do not have Apple hardware for development and testing. Cross-compilation for Apple might not work. That operating system is special. 💰 If an SMT solver provides native libraries on its own, such as Z3 maybe, we can include it. |
The latest Z3 has native support for arm64 Mac: https://github.com/Z3Prover/z3/releases/tag/z3-4.13.0. I downloaded the dylib files and plugged them into JavaSMT on my arm64 Mac. It works fine so far. But I would prefer a centralized approach like JavaSMT so that I don't have to tell my teammates how to set it up. Thanks. |
See this long-standing discussion. The issue seems to be somewhat orthogonal to MacOS as it applies to all ARM machines. |
@kfriedberger since z3 already provides native libraries for arm, would it be possible to make these available via maven? |
Hi @hernanponcedeleon . The topic appeared often enough to make me really think about it. 😄 Step 1: Define a goal.Users want X64 and ARM64 binaries for Z3. Step 2: Make a plan.Therefore we need:
Step 3: Do it. ... Coming soon. |
I am pretty sure @ThomasHaas would be willing to help with the testing 😉 |
Sure, I can test it on my machine. |
Step 3: Collect data and knowhowZ3Z3 is available in x64 and arm64 version for Linux, Windows, and OSX. This is impressive. 👍
The nightly build des not provide the Java bindings for Linux. We either wait for an upcoming release, ignore Linux for now, or compile it on our own.
Directory structures to consider:(The symbol ⚙️ implies work to do.)
Step 4: Do it. ... Coming soon. |
This should keep the existing cache valid and re-usable. Otherwise, we would create a new cache structure within the existing cache, with redundant entries. With this change, we limit the redundancy to arch- or classifier-specific entries.
…cture. Additionally, we upload Java sources and JavaDoc for z3 to the Maven repository. We need to test whether the uploaded files work as expected.
Step 4: Do it.Work in progress. I updated the previous comment with more details. Step 5: TestingZ3 v4.13.0 was published to Maven: https://central.sonatype.com/artifact/org.sosy-lab/javasmt-solver-z3/4.13.0 |
Let the user decide what to load, e.g. on a minimal system only load for one specific OS and arch.
This should keep the existing cache valid and re-usable. Otherwise, we would create a new cache structure within the existing cache, with redundant entries. With this change, we limit the redundancy to arch- or classifier-specific entries.
…cture. Additionally, we upload Java sources and JavaDoc for z3 to the Maven repository. We need to test whether the uploaded files work as expected.
Let the user decide what to load, e.g. on a minimal system only load for one specific OS and arch.
… for multiple architectures. We aim for backwards-compatibility and provide the x64-version as default for most public configurations. The solver-specific configuration "runtime-z3" does provide more than x64, and comes with arm64 included.
Curious about the timeline to support Mac with Apple M1,2,3?
The text was updated successfully, but these errors were encountered: