-
Notifications
You must be signed in to change notification settings - Fork 81
Open
Description
This issue is about establishing our list of platform tiers.
Tiers
Similar to the Rust project which categorizes platforms (targets) into multiple tiers, we can define our own platform tiers.
According to Rust's tiers,
- Tier 1 targets are guaranteed to work.
- Tier 2 targets are guaranteed to build.
- Tier 3 targets have support in the Rust code base.
We can extend this definition to MMTk based on the amount of test we do.
- Tier 1: We test it in minimal-tests-core, and test it in minimal-tests-bindings or extended-tests-bindings or both.
- Tier 2: We test it in minimal-tests-core.
- Tier 3: We don't test it on CI, but we support it. Users (from the core team or from outside) can test and use it if needed.
Status quo
Here is a list of platforms which MMTk currently supports or we plan to support.
| Platform | Rust tier | MMTk tier | Notes |
|---|---|---|---|
| x86_64-unknown-linux-gnu | 1 | 1 | This is our most actively supported platform |
| i686-unknown-linux-gnu | 1 | 1 | We test it with JikesRVM |
| x86_64-apple-darwin | 2 | 2 | We test it with the core, but Rust has demoted it recently. |
| aarch64-unknown-linux-gnu | 1 | 3 | We don't test it in CI for now, but it is known to work with OpenJDK 21. |
| riscv64gc-unknown-linux-gnu | 2 | 3 | We don't test it in CI for now, but it is known to work with OpenJDK 21. |
| aarch64-linux-android | 2 | 3 | We don't test it in CI for now, but an art binding exists. |
| aarch64-apple-darwin | 1 | x | Bug about page size prevents MMTk to work on this platform |
| x86_64-pc-windows-gnu | 1 | x | Contribution exists, but not merged. |
What should we do?
We may document it somewhere in the user guide or README file in mmtk-core.
We may also list on the website of the MMTk project.
Tier changes
We should discuss this at some point.
Here is a list of known decisions:
- aarch64-apple-darwin: This should be Tier 2 at least, and replace x86_64-apple-darwin.
- x86_64-apple-darwin: We should drop it.
- x86_64-pc-windows-gnu: We should eventually support Windows as a Tier 1 or Tier 2 platform because we need it in Julia.
The following can be considered (not decided yet):
- aarch64-unknown-linux-gnu: May promote to Tier 2 or Tier 1. GitHub runner is available. OpenJDK 21 supports it. We have machines in our lab in the ANU.
Metadata
Metadata
Assignees
Labels
No labels