Skip to content

Platform tiers #1430

@wks

Description

@wks

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions