Skip to content

doc: Clarify supported platforms and tiers #29055

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

Merged
merged 1 commit into from
Oct 21, 2015
Merged

Conversation

alexcrichton
Copy link
Member

This commit expands the "supported platforms" section of the book to include
documentation on the tiers that Rust currently has as well as organizing all
supported platforms into these various tiers. Infrastructure improvements over
the next few months are likely to change the location of may of these platforms
over, but for now this should faithfully represent what we've got today!

@rust-highfive
Copy link
Contributor

r? @steveklabnik

(rust_highfive has picked a reviewer for you, use r? to override)

@alexcrichton
Copy link
Member Author

r? @brson

@rust-highfive rust-highfive assigned brson and unassigned steveklabnik Oct 14, 2015
@alexcrichton alexcrichton force-pushed the tiers branch 2 times, most recently from 40700be to f5e891a Compare October 14, 2015 21:49
doesn't work, it is a bug. Please let us know if that happens. Each and every
commit is tested against Windows just like any other platform.
Rust supports a wide variety of platforms each of which is organized into one of
three tiers of support. Each tier brings with it a different set of guarantees,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sentence contains 'support' twice, awkward. "The Rust compiler runs on, and compiles to, a great number of platforms, though not all platforms are equally supported. Rust's support levels are organized into three tiers, each with a different set of guarantees." Not sure, tired.

@brson
Copy link
Contributor

brson commented Oct 14, 2015

I do think it would be ideal to punt the fine details about specific low-tier platforms somewhere else, but this location is ok for now.

r? @steveklabnik

@alexcrichton
Copy link
Member Author

Updated!


* Automated testing is set up to run tests for the platform.
* Landing changes to the `rust-lang/rust` repository's master branch is gated on
tests passing.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On that particular configuration buildbots use. There’re some tests that do not pass on certain configurations.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While a good point, I'm not sure if there's a great way to put this succinctly. We test a good deal of configurations but it's basically impossible for us to test every configuration so I'm not sure we'd gain much in breaking down exactly what configurations of what tests are run here.

Tier 2 platforms can be thought of as "guaranteed to build". Automated tests are
not run so it's not guaranteed to produce a working build, but platforms often
work to quite a good degree and patches are always welcome! Specifially, these
platforms satisfy:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't think the list read correctly based on the preceding statement. Satisfy sounds like it should be followed by a series of check marks or something and I couldn't work it in with that. I tried to set it up so each statement starts with a qualified verb (must do/may build/can compile/does not fly) (I don't know what they're actually called so I'm sorta guessing here).

The 3rd bullet may not be exactly what was meant originally though. I'm not really sure.


Specifically, these platforms:
* must be automatically built
* may or may not run the compiler test-suite
* successfully compile the `rust-lang/rust` master branch. This requires either:
  - just compiling the std library or
  - running the full bootstrap
* provide official release artifacts

@larsbergstrom
Copy link
Contributor

@alexcrichton One thing that the Gecko tiers page (https://developer.mozilla.org/en/docs/Supported_build_configurations) has is contact names for the community members who are the official maintainer, where such a thing exists. Perhaps that makes sense here, too?

@lambda
Copy link
Contributor

lambda commented Oct 17, 2015

A questions on this; this appears to indicate the platforms that rustc supports running on, but that can be different than the platforms it supports targeting. In particular, I believe that limited support for targeting Windows XP has landed. Would it be at all useful to make the distinction between level of support for running on vs. targeting a platform in this description, or maybe adding a "Tier 4" for such platforms that can be targeted by a limited subset of the language and stdlib but not necessarily run the compiler or support all of std? Or is XP supposed to be covered by the i686-pc-windows-msvc target? In that case, you may want to update the comment about that target.

@SimonSapin
Copy link
Contributor

What do the columns mean? I’m guessing that rustc and cargo columns are for "runs on platform X", while std is "can cross-compile targetting platform X", but this should be documented.

@alexcrichton
Copy link
Member Author

@larsbergstrom

Sounds like a good idea to me! I'd want to clear it with everyone before adding them to this page, but I suspect those maintainers can be added here over time.


@lambda

Ah good point! XP support falls into the tier 3 category I believe where it's not guaranteed to build or work but support is in theory there, I'll add a note.


@SimonSapin

It means that the corresponding column is expected to build for that platform. In general there are many ways to cross to a platform (e.g. from any host), but I'll try to clarify.

This commit expands the "supported platforms" section of the book to include
documentation on the tiers that Rust currently has as well as organizing all
supported platforms into these various tiers. Infrastructure improvements over
the next few months are likely to change the location of may of these platforms
over, but for now this should faithfully represent what we've got today!
@steveklabnik
Copy link
Member

@bors: r+ rollup

@bors
Copy link
Collaborator

bors commented Oct 20, 2015

📌 Commit 93e419c has been approved by steveklabnik

bors added a commit that referenced this pull request Oct 21, 2015
This commit expands the "supported platforms" section of the book to include
documentation on the tiers that Rust currently has as well as organizing all
supported platforms into these various tiers. Infrastructure improvements over
the next few months are likely to change the location of may of these platforms
over, but for now this should faithfully represent what we've got today!
@bors
Copy link
Collaborator

bors commented Oct 21, 2015

⌛ Testing commit 93e419c with merge 4aec7c7...

@bors bors merged commit 93e419c into rust-lang:master Oct 21, 2015
@alexcrichton alexcrichton deleted the tiers branch October 28, 2015 05:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants