rust-lang / rust-lang/rfcs

Rust platform triples should omit and ignore the vendor

Open
#1,763 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

T-dev-tools
Dominant language
Markdown
Stars
6.6k
Forks
1.7k
Avg merge
16h 14m
Merged PRs (30d)
1

Description

Currently, rust and cargo use the full platform identity for identifying platforms (<arch>-<vendor>-<os>[-<libc]).

However, the vendor attribute in a platform identity (commonly known as platform triples) is a private attribute intended to indicate variants and configurations. For example, RH/Fedora based distros use <arch>-redhat-linux-gnu for the platform identity, Mageia based ones use <arch>-mageia-linux-gnu, and so on. However, for the purposes of determining platform equivalence, only arch, os, and libc matter.

The tooling should be changed to ignore the vendor attribute and platforms should be similarly altered so that the platform triple should only contain the meaningful attributes.

For example, instead of saying x86_64-unknown-linux-gnu, it would be x86_64-linux-gnu. Alternatively, simply forcing the vendor to always be considered something generic (like pc) would be sufficient.

The vendor attribute is meaningful to humans, but not tools.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing how Rust and Cargo represent and compare platform identities, then trace where the vendor attribute affects platform triples. Compare identities that differ only by vendor, such as x86_64-unknown-linux-gnu and x86_64-linux-gnu. Done means equivalent platforms ignore vendor differences and the resulting platform representation contains only meaningful attributes.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.