about summary refs log tree commit diff
path: root/src/doc
AgeCommit message (Collapse)AuthorLines
2025-01-10add `-Zmin-function-alignment`Folkert de Vries-0/+24
2025-01-11Merge pull request #2205 from ehuss/ci-config许杰友 Jieyou Xu (Joe)-0/+15
2025-01-10Fix calculate-job-matrix.py linkEric Huss-2/+2
2025-01-10Document how to find the configuration used in CIEric Huss-0/+15
This documents how to determine which settings are used in CI, since I see this question come up regularly. We currently don't have a great way to answer the question, but at least there is something.
2025-01-10Rollup merge of #134855 - estebank:default-field-values-unstable-docs, ↵Matthias Krüger-0/+93
r=jieyouxu Add `default_field_values` entry to unstable book Tracking issue: https://github.com/rust-lang/rust/issues/132162 RFC: https://github.com/rust-lang/rfcs/blob/master/text/3681-default-field-values.md
2025-01-09Add `default_field_values` entry to unstable bookEsteban Küber-0/+93
2025-01-09ci: Remove incorrect use of `continue-on-error`Noah Lev-2/+1
This will cause the CI build to be marked successful even if the build failed. Instead, use `if: '!cancelled()'` to always save the cache (except when the job is cancelled), even if the linkcheck failed. See https://stackoverflow.com/a/58859404 for more.
2025-01-09Auto merge of #135286 - matthiaskrgr:rollup-sxuq1nh, r=matthiaskrgrbors-5/+13
Rollup of 3 pull requests Successful merges: - #134898 (Make it easier to run CI jobs locally) - #135195 (Make `lit_to_mir_constant` and `lit_to_const` infallible) - #135261 (Account for identity substituted items in symbol mangling) r? `@ghost` `@rustbot` modify labels: rollup
2025-01-09Rollup merge of #134898 - Kobzol:ci-python-script, r=MarcoIeniMatthias Krüger-5/+13
Make it easier to run CI jobs locally This PR extends the Python CI script to perform a poor man's CI-like execution of a given CI job locally. It's not perfect, but it's better than nothing. r? `@jieyouxu`
2025-01-09Auto merge of #135268 - pietroalbini:pa-bump-stage0, r=Mark-Simulacrumbors-1/+1
Master bootstrap update Part of the release process. r? `@Mark-Simulacrum`
2025-01-09Rollup merge of #134609 - tbu-:pr_win7_gnu, r=davidtwcoMatthias Krüger-11/+66
Add new `{x86_64,i686}-win7-windows-gnu` targets These are in symmetry with `{x86_64,i686}-win7-windows-msvc`. > ## Tier 3 target policy > > At this tier, the Rust project provides no official support for a target, so we > place minimal requirements on the introduction of targets. > > A proposed new tier 3 target must be reviewed and approved by a member of the > compiler team based on these requirements. The reviewer may choose to gauge > broader compiler team consensus via a [Major Change Proposal (MCP)][https://forge.rust-lang.org/compiler/mcp.html]. > > A proposed target or target-specific patch that substantially changes code > shared with other targets (not just target-specific code) must be reviewed and > approved by the appropriate team for that shared code before acceptance. > > - A tier 3 target must have a designated developer or developers (the "target > maintainers") on record to be CCed when issues arise regarding the target. > (The mechanism to track and CC such developers may evolve over time.) This is me, `@tbu-` on github. > - Targets must use naming consistent with any existing targets; for instance, a > target for the same CPU or OS as an existing Rust target should use the same > name for that CPU or OS. Targets should normally use the same names and > naming conventions as used elsewhere in the broader ecosystem beyond Rust > (such as in other toolchains), unless they have a very good reason to > diverge. Changing the name of a target can be highly disruptive, especially > once the target reaches a higher tier, so getting the name right is important > even for a tier 3 target. > - Target names should not introduce undue confusion or ambiguity unless > absolutely necessary to maintain ecosystem compatibility. For example, if > the name of the target makes people extremely likely to form incorrect > beliefs about what it targets, the name should be changed or augmented to > disambiguate it. > - If possible, use only letters, numbers, dashes and underscores for the name. > Periods (`.`) are known to cause issues in Cargo. Consistent with `{x86_64,i686}-win7-windows-msvc`, see also #118150. > - Tier 3 targets may have unusual requirements to build or use, but must not > create legal issues or impose onerous legal terms for the Rust project or for > Rust developers or users. > - The target must not introduce license incompatibilities. > - Anything added to the Rust repository must be under the standard Rust > license (`MIT OR Apache-2.0`). > - The target must not cause the Rust tools or libraries built for any other > host (even when supporting cross-compilation to the target) to depend > on any new dependency less permissive than the Rust licensing policy. This > applies whether the dependency is a Rust crate that would require adding > new license exceptions (as specified by the `tidy` tool in the > rust-lang/rust repository), or whether the dependency is a native library > or binary. In other words, the introduction of the target must not cause a > user installing or running a version of Rust or the Rust tools to be > subject to any new license requirements. > - Compiling, linking, and emitting functional binaries, libraries, or other > code for the target (whether hosted on the target itself or cross-compiling > from another target) must not depend on proprietary (non-FOSS) libraries. > Host tools built for the target itself may depend on the ordinary runtime > libraries supplied by the platform and commonly used by other applications > built for the target, but those libraries must not be required for code > generation for the target; cross-compilation to the target must not require > such libraries at all. For instance, `rustc` built for the target may > depend on a common proprietary C runtime library or console output library, > but must not depend on a proprietary code generation library or code > optimization library. Rust's license permits such combinations, but the > Rust project has no interest in maintaining such combinations within the > scope of Rust itself, even at tier 3. > - "onerous" here is an intentionally subjective term. At a minimum, "onerous" > legal/licensing terms include but are *not* limited to: non-disclosure > requirements, non-compete requirements, contributor license agreements > (CLAs) or equivalent, "non-commercial"/"research-only"/etc terms, > requirements conditional on the employer or employment of any particular > Rust developers, revocable terms, any requirements that create liability > for the Rust project or its developers or users, or any requirements that > adversely affect the livelihood or prospects of the Rust project or its > developers or users. AFAICT, it's the same legal situation as the tier 1 `{x86_64,i686}-pc-windows-gnu`. > - Neither this policy nor any decisions made regarding targets shall create any > binding agreement or estoppel by any party. If any member of an approving > Rust team serves as one of the maintainers of a target, or has any legal or > employment requirement (explicit or implicit) that might affect their > decisions regarding a target, they must recuse themselves from any approval > decisions regarding the target's tier status, though they may otherwise > participate in discussions. > - This requirement does not prevent part or all of this policy from being > cited in an explicit contract or work agreement (e.g. to implement or > maintain support for a target). This requirement exists to ensure that a > developer or team responsible for reviewing and approving a target does not > face any legal threats or obligations that would prevent them from freely > exercising their judgment in such approval, even if such judgment involves > subjective matters or goes beyond the letter of these requirements. Understood. > - Tier 3 targets should attempt to implement as much of the standard libraries > as possible and appropriate (`core` for most targets, `alloc` for targets > that can support dynamic memory allocation, `std` for targets with an > operating system or equivalent layer of system-provided functionality), but > may leave some code unimplemented (either unavailable or stubbed out as > appropriate), whether because the target makes it impossible to implement or > challenging to implement. The authors of pull requests are not obligated to > avoid calling any portions of the standard library on the basis of a tier 3 > target not implementing those portions. This target supports the whole libstd surface, since it's essentially reusing all of the x86_64-pc-windows-gnu target. Understood. > - The target must provide documentation for the Rust community explaining how > to build for the target, using cross-compilation if possible. If the target > supports running binaries, or running tests (even if they do not pass), the > documentation must explain how to run such binaries or tests for the target, > using emulation if possible or dedicated hardware if necessary. I tried to write some documentation on that. > - Tier 3 targets must not impose burden on the authors of pull requests, or > other developers in the community, to maintain the target. In particular, > do not post comments (automated or manual) on a PR that derail or suggest a > block on the PR based on a tier 3 target. Do not send automated messages or > notifications (via any medium, including via ``@`)` to a PR author or others > involved with a PR regarding a tier 3 target, unless they have opted into > such messages. > - Backlinks such as those generated by the issue/PR tracker when linking to > an issue or PR are not considered a violation of this policy, within > reason. However, such messages (even on a separate repository) must not > generate notifications to anyone involved with a PR who has not requested > such notifications. Understood. > - Patches adding or updating tier 3 targets must not break any existing tier 2 > or tier 1 target, and must not knowingly break another tier 3 target without > approval of either the compiler team or the maintainers of the other tier 3 > target. > - In particular, this may come up when working on closely related targets, > such as variations of the same architecture with different features. Avoid > introducing unconditional uses of features that another variation of the > target may not have; use conditional compilation or runtime detection, as > appropriate, to let each target run code supported by that target. > - Tier 3 targets must be able to produce assembly using at least one of > rustc's supported backends from any host target. (Having support in a fork > of the backend is not sufficient, it must be upstream.) Understood. > If a tier 3 target stops meeting these requirements, or the target maintainers > no longer have interest or time, or the target shows no signs of activity and > has not built for some time, or removing the target would improve the quality > of the Rust codebase, we may post a PR to remove it; any such PR will be CCed > to the target maintainers (and potentially other people who have previously > worked on the target), to check potential interest in improving the situation. > Understood. r? compiler-team
2025-01-08update version placeholdersPietro Albini-1/+1
2025-01-08Error if there is nothing to pullJakub Beránek-0/+10
2025-01-08Print an explicit message if the base repo head commit is up-to-dateJakub Beránek-0/+5
2025-01-08Update keyMartin Liska-3/+3
2025-01-08Save linkcheck cache alwaysMartin Liska-7/+19
2025-01-08Merge from rustcJakub Beránek-0/+116
2025-01-08Preparing for merge from rustcJakub Beránek-1/+1
2025-01-07Fix rib exampleSamson-3/+3
related zulip thread: https://rust-lang.zulipchat.com/#narrow/channel/182449-t-compiler.2Fhelp/topic/Ribs.20in.20name.20resolution
2025-01-07Update rustc-dev-guideJakub Beránek-5/+13
2025-01-07Fix broken raw HTML (#2198)Max Heller-2/+2
2025-01-06Rollup merge of #131830 - hoodmane:emscripten-wasm-eh, r=workingjubileeJacob Pratt-0/+6
Add support for wasm exception handling to Emscripten target This is a draft because we need some additional setting for the Emscripten target to select between the old exception handling and the new exception handling. I don't know how to add a setting like that, would appreciate advice from Rust folks. We could maybe choose to use the new exception handling if `Ctarget-feature=+exception-handling` is passed? I tried this but I get errors from llvm so I'm not doing it right.
2025-01-06Only keep label description in Forge docs许杰友 Jieyou Xu (Joe)-61/+1
2025-01-06Add new `{x86_64,i686}-win7-windows-gnu` targetsTobias Bucher-2/+57
These are in symmetry with `{x86_64,i686}-win7-windows-msvc`.
2025-01-06Escape all `*` in rustc's SUMMARY.mdTobias Bucher-9/+9
2025-01-06Add rustc-dev-guide to the list of repositories managed by josh (#2197)Jakub Beránek-1/+3
2025-01-06Add support for wasm exception handling to Emscripten targetHood Chatham-0/+6
Gated behind an unstable `-Z emscripten-wasm-eh` flag
2025-01-06Auto merge of #135085 - knickish:m68k_unknown_none, r=workingjubileebors-0/+110
add m68k-unknown-none-elf target r? `@workingjubilee` The existing `m68k-unknown-linux-gnu` target builds `std` by default, requires atomics, and has a base cpu with an fpu. A smaller/more embedded target is desirable both to have a baseline target for the ISA, as well to make debugging easier for working on the llvm backend. Currently this target is using the `M68010` as the minimum CPU due, but as missing features are merged into the `M68k` llvm backend I am hoping to lower this further. I have been able to build very small crates using a toolchain built against this target (together with a later version of `object`) using the configuration described in the target platform-support documentation, although getting anything of substantial complexity to build quickly hits errors in the llvm backend
2025-01-06add josh-sync build dir to gitignore (#2196)Boxy-0/+2
2025-01-05Preparing for merge from rustcJakub Beránek-0/+1
2025-01-05Preparing for merge from rustcJakub Beránek-0/+1
2025-01-05Remove other maintainersknickish-2/+0
Co-authored-by: Jubilee <workingjubilee@gmail.com>
2025-01-05Split stuff out of representing types, and rewrite early/late bound chapter ↵Boxy-370/+433
(#2192)
2025-01-05Describe how to use rust-analyzer with `rmake.rs` (#2191)Stuart Cook-0/+40
2025-01-05fix commentTshepang Mbambo-2/+1
2025-01-05make paragraph more readableTshepang Mbambo-3/+5
2025-01-05repetition not neededTshepang Mbambo-5/+5
2025-01-05Document josh subtrees and update subtree repository list (#2182)Jakub Beránek-9/+21
2025-01-05Add tooling for performing Josh synces (#2183)Jakub Beránek-43/+728
2025-01-05comment out FIXMEs to not display them on UI (#2186)Onur Özkan-6/+20
2025-01-05Auto merge of #135074 - wzssyqa:mips-mti, r=oli-obkbors-0/+34
Target: Add mips mti baremetal support Do the same thing as gcc, which use the vendor `mti` to mark the toolchain as MIPS32r2 default. We support both big endian and little endian flavor: mips-mti-none-elf mipsel-mti-none-elf
2025-01-05Update src/doc/rustc/src/platform-support/mips-mti-none-elf.mdYunQiang Su-1/+1
Co-authored-by: Oli Scherer <github35764891676564198441@oli-obk.de>
2025-01-04Rollup merge of #134996 - bdbai:uwp-support, r=jieyouxu,ChrisDentonJubilee-5/+58
Add UWP (msvc) target support page - Added Platform Support page for `x86_64-uwp-windows-msvc`, `i686-uwp-windows-msvc`, `thumbv7a-uwp-windows-msvc` and `aarch64-uwp-windows-msvc` - Adding myself as a maintainer - Removing the ticks for `thumbv7a-pc-windows-msvc` and `thumbv7a-uwp-windows-msvc` as they do not currently build due to #134565 and https://github.com/rust-lang/backtrace-rs/pull/685 - Fixed a few minor issues to let most of the UWP targets compile - Happy new year to all! r? jieyouxu
2025-01-04Apply suggestions from workingjubilee's code reviewknickish-11/+11
Co-authored-by: Jubilee <workingjubilee@gmail.com>
2025-01-03add m68k-unknown-none-elf targetkirk-0/+112
2025-01-03Target: Add mips mti baremetal supportYunQiang Su-0/+34
Do the same thing as gcc, which use the vendor `mti` to mark the toolchain as MIPS32r2 default. We support both big endian and little endian flavor: mips-mti-none-elf mipsel-mti-none-elf
2025-01-03Rollup merge of #131729 - Urgau:check-cfg-test-userspace, r=petrochenkovMatthias Krüger-2/+4
Make the `test` cfg a userspace check-cfg This PR implements MCP https://github.com/rust-lang/compiler-team/issues/785, which makes the `test` cfg a "userspace" check-cfg, i.e. no longer included in the well known cfg list. Things to do: - [x] Accept the MCP (https://github.com/rust-lang/compiler-team/issues/785#issuecomment-2424121886) - [x] Mark `test` in Cargo (https://github.com/rust-lang/cargo/pull/14963) `@rustbot` labels +S-waiting-on-MCP +F-check_cfg r? `@petrochenkov`
2025-01-03Add UWP support pagebdbai-5/+58
2025-01-02Make the `test` cfg a "userspace" check-cfgUrgau-2/+4
2025-01-01Add rustc-dev-guide as a josh subtreeJakub Beránek-0/+348503