about summary refs log tree commit diff
path: root/src/doc
AgeCommit message (Collapse)AuthorLines
2024-10-11Note Integer MVE hard-float use-case in arm platform docs.Jonathan 'theJPster' Pallant-0/+5
2024-10-11Clarify wording around use of `-fpregs` for amr platform docs.Jonathan 'theJPster' Pallant-3/+4
2024-10-11Make asm label blocks safe contextGary Guo-1/+3
`asm!()` is forced to be wrapped inside unsafe. If there's no special treatment, the label blocks would also always be unsafe with no way of opting out.
2024-10-10Rename `needs-profiler-support` to `needs-profiler-runtime` (#2095)Stuart Cook-4/+5
2024-10-09Document compiletest directives `ignore-coverage-map` and ↵Stuart Cook-2/+5
`ignore-coverage-run` (#2094)
2024-10-07Purge `run-pass-valgrind` mentions许杰友 Jieyou Xu (Joe)-16/+0
2024-10-07Update booksrustbot-0/+0
2024-10-07rustdoc: docs for search deduplication (#1850)Michael Howell-3/+73
2024-10-07Revise test naming advice to discourage using issue numbers alone许杰友 Jieyou Xu (Joe)-8/+14
But accept test names that include non-prefix issue number.
2024-10-07Document `bootstrap` integration with `rustc-perf` (#2005)Jakub Beránek-31/+49
2024-10-07building: Update instructions for ./x setup editorKajetan Puchalski-40/+56
2024-10-07[Testing 2/2] Revise revisions docs (#2089)许杰友 Jieyou Xu (Joe)-268/+262
Co-authored-by: nora <48135649+Noratrieb@users.noreply.github.com>
2024-10-07[Testing 1/2] Revise testing chapters excluding the directives chapter (#2088)许杰友 Jieyou Xu (Joe)-1043/+1406
2024-10-06Fixed links to rust-analyzer configs for Emacs and Helix (#2087)Yoh Deadfall-2/+3
2024-10-05Add platform support doc for rv32eHenri Lunnikivi-1/+31
2024-10-05doc: platform-support.md: Document portHenri Lunnikivi-0/+3
2024-10-04Rollup merge of #131240 - taiki-e:typo, r=jieyouxuJubilee-1/+1
Fix typo in csky-unknown-linux-gnuabiv2.md
2024-10-04Rollup merge of #130453 - randomPoison:trusty-x86, r=pnkfelixJubilee-0/+1
Add x86_64-unknown-trusty as tier 3 target This PR adds a third target for the Trusty platform, `x86_64-unknown-trusty`. Please let me know if an MCP is required. https://github.com/rust-lang/compiler-team/issues/582 was made when adding the first two targets, I can make another one for the new target as well if needed. # Target Tier Policy Acknowledgements > 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.) - Nicole LeGare (```@randomPoison)``` - Andrei Homescu (```@ahomescu)``` - Chris Wailes (chriswailes@google.com) - As a fallback trusty-dev-team@google.com can be contacted Note that this does not reflect the maintainers currently listed in [`trusty.md`](https://github.com/rust-lang/rust/blob/c52c23b6f44cd19718721a5e3b2eeb169e9c96ff/src/doc/rustc/src/platform-support/trusty.md). #130452 is currently open to update the list of maintainers in the documentation. > 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. The new target `x86_64-unknown-trusty` follows the existing naming convention for similar targets. > 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. 👍 > 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. There are no known legal issues or license incompatibilities. > 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. 👍 > 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 PR only adds the target. `std` support is being worked on and will be added in a future PR. > 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. 👍 > 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. 👍 > 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. 👍 > 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.) 👍
2024-10-04Fix typo in csky-unknown-linux-gnuabiv2.mdTaiki Endo-1/+1
2024-10-04Rollup merge of #131034 - Urgau:cfg-true-false, r=nnethercoteGuillaume Gomez-0/+22
Implement RFC3695 Allow boolean literals as cfg predicates This PR implements https://github.com/rust-lang/rfcs/pull/3695: allow boolean literals as cfg predicates, i.e. `cfg(true)` and `cfg(false)`. r? `@nnethercote` *(or anyone with parser knowledge)* cc `@clubby789`
2024-10-04Feature gate boolean lit support in cfg predicatesUrgau-0/+22
2024-10-04update `x install` documentation (#2084)Onur Özkan-12/+14
2024-10-03Rename "object safe" to "dyn compatible" (#2083)León Orell Valerian Liehr-3/+3
2024-10-03fixups (#2082)León Orell Valerian Liehr-4/+4
2024-10-01Auto merge of #131111 - matthiaskrgr:rollup-n6do187, r=matthiaskrgrbors-12/+44
Rollup of 4 pull requests Successful merges: - #130005 (Replace -Z default-hidden-visibility with -Z default-visibility) - #130229 (ptr::add/sub: do not claim equivalence with `offset(c as isize)`) - #130773 (Update Unicode escapes in `/library/core/src/char/methods.rs`) - #130933 (rustdoc: lists items that contain multiple paragraphs are more clear) r? `@ghost` `@rustbot` modify labels: rollup
2024-10-01Rollup merge of #130005 - davidlattimore:protected-vis-flag, r=UrgauMatthias Krüger-12/+44
Replace -Z default-hidden-visibility with -Z default-visibility Issue #105518
2024-10-01Rollup merge of #130630 - taiki-e:s390x-clobber-abi, r=AmanieuGuillaume Gomez-0/+7
Support clobber_abi and vector/access registers (clobber-only) in s390x inline assembly This supports `clobber_abi` which is one of the requirements of stabilization mentioned in #93335. This also supports vector registers (as `vreg`) and access registers (as `areg`) as clobber-only, which need to support clobbering of them to implement clobber_abi. Refs: - "1.2.1.1. Register Preservation Rules" section in ELF Application Binary Interface s390x Supplement, Version 1.6.1 (lzsabi_s390x.pdf in https://github.com/IBM/s390x-abi/releases/tag/v1.6.1) - Register definition in LLVM: - Vector registers https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td#L249 - Access registers https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td#L332 I have three questions: - ~~ELF Application Binary Interface s390x Supplement says that `cc` (condition code, bits 18-19 of PSW) is "Volatile". However, we do not have a register class for `cc` and instead mark `cc` as clobbered unless `preserves_flags` is specified (https://github.com/rust-lang/rust/pull/111331). Therefore, in the current implementation, if both `preserves_flags` and `clobber_abi` are specified, `cc` is not marked as clobbered. Is this okay? Or even if `preserves_flags` is used, should `cc` be marked as clobbered if `clobber_abi` is used?~~ UPDATE: resolved https://github.com/rust-lang/rust/pull/130630#issuecomment-2367923121 - ~~ELF Application Binary Interface s390x Supplement says that `pm` (program mask, bits 20-23 of PSW) is "Cleared". There does not appear to be any registers associated with this in either [LLVM](https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td) or [GCC](https://github.com/gcc-mirror/gcc/blob/33ccc1314dcdb0b988a9276ca6b6ce9b07bea21e/gcc/config/s390/s390.h#L407-L431), so at this point I don't see any way other than to just ignore it. Is this okay as-is?~~ UPDATE: resolved https://github.com/rust-lang/rust/pull/130630#issuecomment-2367923121 - Is "areg" a good name for register class name for access registers? It may be a bit confusing between that and `reg_addr`, which uses the “a” constraint (https://github.com/rust-lang/rust/pull/119431)... Note: - GCC seems to [recognize only `a0` and `a1`](https://github.com/gcc-mirror/gcc/blob/33ccc1314dcdb0b988a9276ca6b6ce9b07bea21e/gcc/config/s390/s390.h#L428-L429), and using `a[2-15]` [causes errors](https://godbolt.org/z/a46vx8jjn). Given that cg_gcc has a similar problem with other architecture (https://github.com/rust-lang/rustc_codegen_gcc/issues/485), I don't feel this is a blocker for this PR, but it is worth mentioning here. - `vreg` should be able to accept `#[repr(simd)]` types as input if the `vector` target feature added in https://github.com/rust-lang/rust/pull/127506 is enabled, but core_arch has no s390x vector type and both `#[repr(simd)]` and `core::simd` are unstable, so I have not implemented it in this PR. EDIT: And supporting it is probably more complex than doing the equivalent on other architectures... https://github.com/rust-lang/rust/pull/88245#issuecomment-905559591 cc `@uweigand` r? `@Amanieu` `@rustbot` label +O-SystemZ
2024-10-01Replace -Z default-hidden-visibility with -Z default-visibilityDavid Lattimore-12/+44
MCP: https://github.com/rust-lang/compiler-team/issues/782 Co-authored-by: bjorn3 <17426603+bjorn3@users.noreply.github.com>
2024-10-01Auto merge of #130587 - coolreader18:field-variant-doclink-disambig, ↵bors-2/+2
r=notriddle,jyn514 Add `field@` and `variant@` doc-link disambiguators I'm not sure if this is big enough to need an fcp or not, but this is something I found missing when trying to refer to a field in macro-generated docs, not knowing if a method might be defined as well. Obviously, there are definitely other uses. In the case where it's not disambiguated, methods (and I suppose other associated items in the value namespace) still take priority, which `@jyn514` said was an oversight but I think is probably the desired behavior 99% of the time anyway - shadowing a field with an accessor method is a very common pattern. If fields and methods with the same name started conflicting, it would be a breaking change. Though, to quote them: > jyn: maybe you can break this only if both [the method and the field] are public > jyn: rustc has some future-incompat warning level > jyn: that gets through -A warnings and --cap-lints from cargo That'd be out of scope of this PR, though. Fixes #80283
2024-09-30Rollup merge of #131053 - Urgau:print-check-cfg-doc, r=jieyouxuMatthias Krüger-11/+16
Improve `--print=check-cfg` documentation This PR improves the `--print=check-cfg` documentation by: 1. switching to a table for better readability 2. adding a clear indication where the specific check-cfg syntax starts 3. adding a link to the main `--check-cfg` documentation `@rustbot` label +F-check-cfg
2024-09-30Improve `--print=check-cfg` documentationUrgau-11/+16
2024-09-29Add documentation for `{{rust-src-base}}` (#2079)Urgau-0/+1
2024-09-29Rename doctest attribute `standalone-crate` into `standalone_crate` for ↵Guillaume Gomez-2/+2
coherency
2024-09-28Add warning to arm-none-eabi.md instead of a Note:Jonathan 'theJPster' Pallant-1/+5
2024-09-28Suggested -fpregs instead of +soft-float.Jonathan 'theJPster' Pallant-16/+30
Has the same effect, but turning off a feature matches the other flags better than turning on a feature (which actually turns off a feature).
2024-09-28Rename `standalone` doctest attribute into `standalone-crate`Guillaume Gomez-2/+2
2024-09-28Fix typos in arm-none-eabi.mdJonathan 'theJPster' Pallant-5/+4
These arrived in #125690, I think by mistake.
2024-09-28building/suggested: Add instructions for Emacs & Helix (#2080)Kajetan Puchalski-138/+171
Co-authored-by: 许杰友 Jieyou Xu (Joe) <39484203+jieyouxu@users.noreply.github.com>
2024-09-28ci update freebsd version proposal, freebsd 12 being eol.David Carlier-9/+9
raising to the lowest still active supported freebsd version. From 13.1 (already eol too), freebsd introduces a cpu affinity layer with linux. It also introduces a api compatible copy_file_range which can be used like its linux's counterpart. The former is essential to build #120589, therefore breaks the backward compatibility with the previous FreeBSD releases.
2024-09-25Fix file paths to section 35.1 & 35.2 example code (#2078)Christopher Speir-2/+2
2024-09-25Rollup merge of #130549 - biabbas:riscv32_wrs_vxworks, r=nnethercoteMatthias Krüger-0/+4
Add RISC-V vxworks targets Risc-V 32 and RISC-V 64 targets are to be added in the target list.
2024-09-24elaborate on warningsNoratrieb-3/+4
2024-09-24Apply suggestions from code reviewYuri Astrakhan-1/+1
Co-authored-by: 许杰友 Jieyou Xu (Joe) <39484203+jieyouxu@users.noreply.github.com>
2024-09-24Clarify how to disable warnings in depsYuri Astrakhan-0/+7
2024-09-24Update compiler-src.mdTbkhi-79/+92
Various link additions and minor edits for clarity. revisions fix line length adding links minor edits
2024-09-24Update rustdoc build instructionsLeón Orell Valerian Liehr-2/+2
2024-09-24minor editsNoratrieb-23/+23
2024-09-24doc editsTbkhi-19/+17
2024-09-24Update salsa.mdTbkhi-41/+42
Formatting updates.
2024-09-24Update memory.mdTbkhi-19/+33
Minor updates to formatting. documentation updates Update memory.md minor edits