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

#380 support multiple architectures for solver binaries z3 #395

Draft
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

kfriedberger
Copy link
Member

@kfriedberger kfriedberger commented Sep 17, 2024

This branch / pull request exists for tracking some steps towards supporting multiple architectures. I will use Z3 as example, because it was requested several times. Some explanation can be found in #380 .

I will not yet commit binaries to any public archive (Ivy or Maven) until we can make sure that the new approach is backwards-compatible (e.g. default architecture x86 can be used as before) and we have a maintainable code base (including scripts and documentation for publication and testing).

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.
@kfriedberger
Copy link
Member Author

kfriedberger commented Sep 29, 2024

This PR is currently blocked by sosy-lab/java-common-lib#43 to test execution on ARM64.

// UPDATE: The wording "blocked" is too much. Z3 is still not available for ARM64 on Linux, so local development is not affected and we could merge this PR.

We could include x64 and ARM64 dependencies for Z3.
However, the default stays by only x64.
…rs, but only all other files.

This cleanup aligns better with Maven guidelines.
This is a small change for all upcoming publications to Maven and the Maven users.
…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.
@kfriedberger
Copy link
Member Author

kfriedberger commented Sep 29, 2024

The current state seems to work as expected. I tested:

  • publishing solver Z3 to Ivy and Maven, including x64 and arm64 for several operating systems (/)
  • downloading from Ivy is backwards-compatible for Z3 (e.g., just increment the version of Z3). This works without changing the ivy-settings. We still need to find a way for publishing JavaSMT itself with a reasonable configuration.
  • downloading from Maven requires more smaller changes. For example, as shown in this change: 958dbc3

Z3 is already published in Maven and Ivy, and works well with JavaSMT 5.0.1.
Feel free to test and give feedback.

As I do not have an ARM-based Apple machine available, maybe @ThomasHaas and @hernanponcedeleon can test whether it works as expected. Thanks.

@kfriedberger
Copy link
Member Author

kfriedberger commented Sep 29, 2024

If there is positive feedback, I will also publish Z3 in its latest version 4.13.2 to Ivy and Maven. The publication of Z3 is even more automated now than it was before.

@ThomasHaas
Copy link
Contributor

It seems to work on ARM-based Macs now. Good job :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

2 participants