Skip to content

Tracking Issue: Tier System #23665

@alexrp

Description

@alexrp

Zig's level of support for various targets is broadly categorized into four tiers with Tier 1 being the highest. The goal is for Tier 1 targets to have zero disabled tests - this will become a requirement for post-1.0.0 Zig releases.

This issue serves as an overview of the current status of Zig's target support. Each target is categorized based on its current tier.

Tier 1

Criteria

  • All non-experimental language features are known to work correctly.
  • The compiler can generate machine code for this target without relying on LLVM, while being comparable to LLVM in terms of feature support.
  • The CI machines automatically run the module tests for this target on every push.

Targets

Tier 2

Criteria

  • The standard library's cross-platform abstractions have implementations for this target.
  • This target has debug info capabilities and therefore produces stack traces on failed assertions and crashes.
  • libc is available for this target even when cross-compiling.
  • The CI machines automatically build the module tests for this target on every push.

Targets

Linux

Tier 3

Criteria

  • The compiler can generate machine code for this target by relying on an external backend such as LLVM.
  • The linker can produce object files, libraries, and executables for this target.

Targets

Tier 4

Criteria

  • The compiler can generate assembly source code for this target by relying on an external backend such as LLVM.
  • This target may be considered experimental by LLVM, in which case it is necessary to build LLVM and Zig from source to be able to use it.

Targets

Unsupported

Criteria

  • These are targets that Zig has either chosen to never add support for, or has dropped existing support for.

Targets

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementSolving this issue will likely involve adding new logic or components to the codebase.tier systemIssues that track the support tier for a platform.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions