Commit graph

160863 commits

Author SHA1 Message Date
Tshepang Mbambo
311ef44dca
readme: be copy-paste friendly 2025-04-19 13:08:43 +02:00
Manuel Drehwald
834dbf565c upstream autodiff build instructions 2025-04-17 20:52:07 -04:00
许杰友 Jieyou Xu (Joe)
35a3c3bfd5
Merge pull request #2339 from rust-lang/autodiff-docs 2025-04-17 14:03:30 +08:00
Manuel Drehwald
1236dcb9ce
add a first version of autodiff docs 2025-04-17 14:01:05 +08:00
Jakub Beránek
a9bcdb0ca1
Merge pull request #2337 from xizheyin/sync-code
Remind to update dev branch while behind too many commits
2025-04-16 07:36:00 +02:00
xizheyin
855ecf9a96
Remind to update dev branch while behind too many commits
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
2025-04-16 13:09:29 +08:00
Tshepang Mbambo
97be6a6131
Merge pull request #2333 from rust-lang/convetions-chapt-cleaning
Coding conventions chapter cleaning
2025-04-14 08:43:05 +02:00
Tshepang Mbambo
9e99fc3a73 clean "Coding conventions" chapter
- use correct code block markers
- add missing title
- rustfmt can now use edition setting in its config
  ... and this is set in Rust repo
- reduce visual noise
- needless repetition
- convention is to start sentence with upper case
- sembr
- whitespace
- semi-heading not adding much value
- fix grammar
2025-04-14 08:41:22 +02:00
许杰友 Jieyou Xu (Joe)
b3b89b6854
Merge pull request #2334 from rust-lang/consistency 2025-04-13 23:38:27 +08:00
Jieyou Xu
8c378f7990
tests: document -A {unused,internal_features} ui test mode presets 2025-04-13 23:34:24 +08:00
Urgau
40bfc14c7d
Enable [canonicalize-issue-links] and [no-mentions] in triagebot.toml 2025-04-12 18:24:59 +02:00
Tshepang Mbambo
2af7ec32be use consistent title capitalization 2025-04-12 13:01:16 +02:00
Tshepang Mbambo
667aa2e952
fix path 2025-04-12 10:41:48 +02:00
Tshepang Mbambo
f79a89da92
Merge pull request #2330 from rust-lang/tshepang-patch-5
date-check rdg contribution section
2025-04-12 10:28:49 +02:00
Tshepang Mbambo
e33a6d6f60
date-check rdg contribution section 2025-04-12 10:28:15 +02:00
许杰友 Jieyou Xu (Joe)
14ea903d4d
Merge pull request #2327 from rust-lang/tshepang-patch-1 2025-04-12 16:25:17 +08:00
Tshepang Mbambo
208e421ed3
Merge pull request #2329 from rust-lang/tshepang-patch-4
add missing word
2025-04-12 10:25:07 +02:00
Tshepang Mbambo
7ba53b7b75
add missing word 2025-04-12 10:24:31 +02:00
Tshepang Mbambo
770a6fcb48
remove implied text
"how much to trust" implies the opposite
2025-04-12 10:21:10 +02:00
Tshepang Mbambo
3ae1c9df5b
use more simple language
Not obvious what "sort by" means
2025-04-12 09:39:13 +02:00
Tshepang Mbambo
e0a2250f20
ease copy-paste 2025-04-12 06:14:37 +02:00
Freya Arbjerg
c5e23697c0 Update "crater" link to actually point to crater.md 2025-04-12 00:05:26 +02:00
Tshepang Mbambo
e6eb98f8a3
Merge pull request #2320 from smanilov/patch-1
Update table of contents in about-this-guide.md
2025-04-11 18:43:11 +02:00
Stan Manilov
b2fce61869 Update table of contents in about-this-guide.md
1. added two new parts: Bootstrapping and Supporting Infrastructure;
2. touched up names of pre-existing parts, to match actual names in sidebar;
3. syntactic nits (start description of Analysis with a capital letter); and
4. make numbered list use only 1.

Co-authored-by: Tshepang Mbambo <tshepang@gmail.com>
2025-04-11 16:57:44 +03:00
Stan Manilov
c285fe7256
Fix link to rustc_* TEST attributes in ui.md 2025-04-11 12:12:46 +03:00
Tshepang Mbambo
eb676fd2da
improve flow 2025-04-07 06:42:37 +02:00
The rustc-dev-guide Cronjob Bot
5a28e1e8de Merge from rustc 2025-04-07 04:12:22 +00:00
The rustc-dev-guide Cronjob Bot
f74e85e2c2 Preparing for merge from rustc 2025-04-07 04:06:33 +00:00
bors
2fa8b11f09 Auto merge of #136077 - rust-lang:cargo_update, r=clubby789
Weekly `cargo update`

Automation to keep dependencies in `Cargo.lock` current.

The following is the output from `cargo update`:

```txt

compiler & tools dependencies:
     Locking 11 packages to latest compatible versions
    Updating blake3 v1.8.0 -> v1.8.1
    Updating ctrlc v3.4.5 -> v3.4.6
    Updating env_logger v0.11.7 -> v0.11.8
    Updating errno v0.3.10 -> v0.3.11
    Updating flate2 v1.1.0 -> v1.1.1
    Updating indexmap v2.8.0 -> v2.9.0
    Updating miniz_oxide v0.8.5 -> v0.8.7
    Updating openssl-sys v0.9.106 -> v0.9.107
    Updating redox_syscall v0.5.10 -> v0.5.11
    Updating smallvec v1.14.0 -> v1.15.0
    Updating tokio v1.44.1 -> v1.44.2
note: pass `--verbose` to see 40 unchanged dependencies behind latest

library dependencies:
     Locking 1 package to latest compatible version
    Updating miniz_oxide v0.8.5 -> v0.8.7
note: pass `--verbose` to see 4 unchanged dependencies behind latest

rustbook dependencies:
     Locking 30 packages to latest compatible versions
    Updating cc v1.2.17 -> v1.2.18
    Updating clap v4.5.32 -> v4.5.35
    Updating clap_builder v4.5.32 -> v4.5.35
    Updating darling v0.20.10 -> v0.20.11
    Updating darling_core v0.20.10 -> v0.20.11
    Updating darling_macro v0.20.10 -> v0.20.11
    Updating env_logger v0.11.7 -> v0.11.8
    Updating errno v0.3.10 -> v0.3.11
    Updating flate2 v1.1.0 -> v1.1.1
    Updating iana-time-zone v0.1.61 -> v0.1.63
    Updating icu_locid_transform_data v1.5.0 -> v1.5.1
    Updating icu_normalizer_data v1.5.0 -> v1.5.1
    Updating icu_properties_data v1.5.0 -> v1.5.1
    Updating indexmap v2.8.0 -> v2.9.0
    Updating log v0.4.26 -> v0.4.27
    Updating miniz_oxide v0.8.5 -> v0.8.7
    Updating once_cell v1.21.1 -> v1.21.3
    Updating pest v2.7.15 -> v2.8.0
    Updating pest_derive v2.7.15 -> v2.8.0
    Updating pest_generator v2.7.15 -> v2.8.0
    Updating pest_meta v2.7.15 -> v2.8.0
    Updating redox_syscall v0.5.10 -> v0.5.11
    Updating rustix v1.0.3 -> v1.0.5
    Updating smallvec v1.14.0 -> v1.15.0
    Updating string_cache v0.8.8 -> v0.8.9
    Updating windows-core v0.52.0 -> v0.61.0
      Adding windows-implement v0.60.0
      Adding windows-interface v0.59.1
      Adding windows-result v0.3.2
      Adding windows-strings v0.4.0
```
2025-04-06 19:57:47 +00:00
bors
fd4dc18e68 Auto merge of #139452 - GuillaumeGomez:rollup-u9edkjo, r=GuillaumeGomez
Rollup of 6 pull requests

Successful merges:

 - #138562 (Optimize slice {Chunks,Windows}::nth)
 - #138876 (Trusty: Implement `write_vectored` for stdio )
 - #139072 (Add `slice::align_to_uninit_mut`)
 - #139367 (Add `*_value` methods to proc_macro lib)
 - #139391 (Check if merged attributes list is empty in expr)
 - #139414 (Fix typo in `RawList`'s documentation)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-04-06 16:46:30 +00:00
Guillaume Gomez
ed81e347f1
Rollup merge of #139367 - GuillaumeGomez:proc-macro-values, r=Urgau
Add `*_value` methods to proc_macro lib

This is the (re-)implementation of https://github.com/rust-lang/libs-team/issues/459.

It allows to get the actual value (unescaped) of the different string literals.

It was originally done in https://github.com/rust-lang/rust/pull/136355 but it broke the artifacts build so we decided to move the crate to crates.io to go around this limitation.

Part of https://github.com/rust-lang/rust/issues/136652.

Considering this is a copy-paste of the originally approved PR, no need to go through the whole process again. \o/

r? `@Urgau`
2025-04-06 18:08:10 +02:00
bors
175dcc7773 Auto merge of #139439 - weihanglo:update-cargo, r=weihanglo
Update cargo

17 commits in a6c604d1b8a2f2a8ff1f3ba6092f9fda42f4b7e9..0e93c5bf6a1d5ee7bc2af63d1afb16cd28793601
2025-03-26 18:11:00 +0000 to 2025-04-05 00:00:24 +0000
- chore(deps): bump openssl from 0.10.71 to 0.10.72 (rust-lang/cargo#15394)
- chore(ci): restore cargo-util semver check (rust-lang/cargo#15389)
- docs(changelog): polish changelog items (rust-lang/cargo#15379)
- chore(deps): update msrv (1 version) to v1.86 (rust-lang/cargo#15381)
- chore: add aarch64 linux runner (rust-lang/cargo#15077)
- Added `build_directory` field to cargo metadata output (rust-lang/cargo#15377)
- chore(deps): update rust crate rusqlite to 0.34.0 (rust-lang/cargo#15373)
- Prevent undeclared public network access (rust-lang/cargo#15368)
- rename the `author` field to be `authors` in book.toml (rust-lang/cargo#15362)
- move modules from kebab-case to snake_case (rust-lang/cargo#14439)
- chore: bump to 0.89.0; update changelog (rust-lang/cargo#15372)
- docs(unstable): update `-Zrustdoc-depinfo` tracking issue link (rust-lang/cargo#15371)
- fix(tree): Make output more deterministic (rust-lang/cargo#15369)
- feat: rustdoc depinfo rebuild detection via -Zrustdoc-depinfo (rust-lang/cargo#15359)
- Rename the gc config table (rust-lang/cargo#15367)
- Revert "Temporarily ignore cargo_test_doctest_xcompile_ignores" (rust-lang/cargo#15357)
- Don't canonicalize executable path in `cargo_exe` (rust-lang/cargo#15355)

r? ghost
2025-04-06 13:23:48 +00:00
Levi Zim
49ea23232c
Fix deadlink in libs-and-metadata.md 2025-04-06 20:05:03 +08:00
Stuart Cook
f55034b2eb
Rollup merge of #139347 - jieyouxu:rust_test_helpers, r=onur-ozkan
Only build `rust_test_helpers` for `{incremental,ui}` test suites

Only build `rust_test_helpers` for `{incremental,ui}` test suites.

Context: Trying to see what test suites actually need `rust_test_helpers`, because this was causing unnecessary local failures when trying to run `./x test tests/run-make --target=wasm32-unknown-unknown` when `run-make` tests don't need `rust_test_helpers` at all.

r? `@ghost`

try-job: armhf-gnu
try-job: test-various
try-job: x86_64-apple-1
try-job: aarch64-apple
try-job: x86_64-msvc-1
try-job: i686-msvc-1
try-job: x86_64-mingw-1
try-job: i686-mingw-1
2025-04-06 16:21:02 +10:00
Stuart Cook
fededb9906
Rollup merge of #139123 - thaliaarchi:core-alloc-test-paths, r=bjorn3
tidy: Fix paths to `coretests` and `alloctests`

Following `#135937` and `#136642`, tests for core and alloc are in coretests and alloctests. Fix tidy to lint for the new paths. Also, update comments referring to the old locations.

Some context for changes which don't match that pattern:
- `library/std/src/thread/local/dynamic_tests.rs` and `library/std/src/sync/mpsc/sync_tests.rs` were moved under `library/std/tests/` in 332fb7e6f1 (Move std::thread_local unit tests to integration tests, 2025-01-17) and b8ae372e48 (Move std::sync unit tests to integration tests, 2025-01-17), respectively, so are no longer special cases.
- There never was a `library/core/tests/fmt.rs` file. That comment previously referred to `src/test/ui/ifmt.rs`, which was folded into `library/alloc/tests/fmt.rs` in 949c96660c (move format! interface tests, 2020-09-08).

Now, the only matches for `(alloc|core)/tests` are in `compiler/rustc_codegen_{cranelift,gcc}/patches`. I don't know why CI hasn't broken because those patches can't apply. Or maybe they somehow still can apply?

r? `@bjorn3`
2025-04-06 16:21:02 +10:00
Weihang Lo
3034e571a4
Update cargo 2025-04-06 00:04:41 -04:00
github-actions
d1eebd4b8c cargo update
compiler & tools dependencies:
     Locking 11 packages to latest compatible versions
    Updating blake3 v1.8.0 -> v1.8.1
    Updating ctrlc v3.4.5 -> v3.4.6
    Updating env_logger v0.11.7 -> v0.11.8
    Updating errno v0.3.10 -> v0.3.11
    Updating flate2 v1.1.0 -> v1.1.1
    Updating indexmap v2.8.0 -> v2.9.0
    Updating miniz_oxide v0.8.5 -> v0.8.7
    Updating openssl-sys v0.9.106 -> v0.9.107
    Updating redox_syscall v0.5.10 -> v0.5.11
    Updating smallvec v1.14.0 -> v1.15.0
    Updating tokio v1.44.1 -> v1.44.2
note: pass `--verbose` to see 40 unchanged dependencies behind latest

library dependencies:
     Locking 1 package to latest compatible version
    Updating miniz_oxide v0.8.5 -> v0.8.7
note: pass `--verbose` to see 4 unchanged dependencies behind latest

rustbook dependencies:
     Locking 30 packages to latest compatible versions
    Updating cc v1.2.17 -> v1.2.18
    Updating clap v4.5.32 -> v4.5.35
    Updating clap_builder v4.5.32 -> v4.5.35
    Updating darling v0.20.10 -> v0.20.11
    Updating darling_core v0.20.10 -> v0.20.11
    Updating darling_macro v0.20.10 -> v0.20.11
    Updating env_logger v0.11.7 -> v0.11.8
    Updating errno v0.3.10 -> v0.3.11
    Updating flate2 v1.1.0 -> v1.1.1
    Updating iana-time-zone v0.1.61 -> v0.1.63
    Updating icu_locid_transform_data v1.5.0 -> v1.5.1
    Updating icu_normalizer_data v1.5.0 -> v1.5.1
    Updating icu_properties_data v1.5.0 -> v1.5.1
    Updating indexmap v2.8.0 -> v2.9.0
    Updating log v0.4.26 -> v0.4.27
    Updating miniz_oxide v0.8.5 -> v0.8.7
    Updating once_cell v1.21.1 -> v1.21.3
    Updating pest v2.7.15 -> v2.8.0
    Updating pest_derive v2.7.15 -> v2.8.0
    Updating pest_generator v2.7.15 -> v2.8.0
    Updating pest_meta v2.7.15 -> v2.8.0
    Updating redox_syscall v0.5.10 -> v0.5.11
    Updating rustix v1.0.3 -> v1.0.5
    Updating smallvec v1.14.0 -> v1.15.0
    Updating string_cache v0.8.8 -> v0.8.9
    Updating windows-core v0.52.0 -> v0.61.0
      Adding windows-implement v0.60.0
      Adding windows-interface v0.59.1
      Adding windows-result v0.3.2
      Adding windows-strings v0.4.0
2025-04-06 00:23:40 +00:00
Thalia Archibald
3af666ea91 tidy: Fix paths to coretests and alloctests
Following `#135937` and `#136642`, tests for core and alloc are in
coretests and alloctests. Fix tidy to lint for the new paths. Also,
update comments referring to the old locations.

Some context for changes which don't match that pattern:
* library/std/src/thread/local/dynamic_tests.rs and
  library/std/src/sync/mpsc/sync_tests.rs were moved under
  library/std/tests/ in 332fb7e6f1 (Move std::thread_local unit tests
  to integration tests, 2025-01-17) and b8ae372e48 (Move std::sync unit
  tests to integration tests, 2025-01-17), respectively, so are no
  longer special cases.
* There never was a library/core/tests/fmt.rs file. That comment
  previously referred to src/test/ui/ifmt.rs, which was folded into
  library/alloc/tests/fmt.rs in 949c96660c (move format! interface
  tests, 2020-09-08).
2025-04-05 12:15:49 -07:00
Josh Stone
12167d7064 Update the minimum external LLVM to 19 2025-04-05 11:44:38 -07:00
Guillaume Gomez
5797532940 Clean up rustc-literal-escaper usage in rust-analyzer 2025-04-05 20:06:52 +02:00
Matthias Krüger
a64ccf4a46
Rollup merge of #139092 - thaliaarchi:move-fd-pal, r=joboet
Move `fd` into `std::sys`

Move platform definitions of `fd` into `std::sys`, as part of https://github.com/rust-lang/rust/issues/117276.

Unlike other modules directly under `std::sys`, this is only available on some platforms and I have not provided a fallback abstraction for unsupported platforms. That is similar to how `std::os::fd` is gated to only supported platforms.

Also, fix the `unsafe_op_in_unsafe_fn` lint, which was allowed for the Unix fd impl. Since macro expansions from `std::sys::pal::unix::weak` trigger this lint, fix it there too.

cc `@joboet,` `@ChrisDenton`

try-job: x86_64-gnu-aux
2025-04-05 10:18:04 +02:00
Thalia Archibald
4085af0183 Move fd into sys 2025-04-04 20:11:08 -07:00
Stuart Cook
f04c935cf1
Rollup merge of #139274 - lolbinarycat:rustdoc-js-less-expect-error-part5, r=notriddle
Rustdoc: typecheck settings.js

This makes the file fully typechecked with no instances of ``````@ts-expect-error`````` and no type casts.

r? `````@notriddle`````
2025-04-05 13:18:16 +11:00
Stuart Cook
a038028eca
Rollup merge of #138024 - reitermarkus:unicode-panic-optimization, r=ibraheemdev
Allow optimizing out `panic_bounds_check` in Unicode checks.

Allow optimizing out `panic_bounds_check` in Unicode checks.

For context, see https://github.com/japaric/ufmt/issues/52#issuecomment-2699207241.
2025-04-05 13:18:14 +11:00
Stuart Cook
2e4e196a5b
Rollup merge of #136457 - calder:master, r=tgross35
Expose algebraic floating point intrinsics

# Problem

A stable Rust implementation of a simple dot product is 8x slower than C++ on modern x86-64 CPUs. The root cause is an inability to let the compiler reorder floating point operations for better vectorization.

See https://github.com/calder/dot-bench for benchmarks. Measurements below were performed on a i7-10875H.

### C++: 10us 

With Clang 18.1.3 and `-O2 -march=haswell`:
<table>
<tr>
    <th>C++</th>
    <th>Assembly</th>
</tr>
<tr>
<td>
<pre lang="cc">
float dot(float *a, float *b, size_t len) {
    #pragma clang fp reassociate(on)
    float sum = 0.0;
    for (size_t i = 0; i < len; ++i) {
        sum += a[i] * b[i];
    }
    return sum;
}
</pre>
</td>
<td>
<img src="https://github.com/user-attachments/assets/739573c0-380a-4d84-9fd9-141343ce7e68" />
</td>
</tr>
</table>

### Nightly Rust: 10us 

With rustc 1.86.0-nightly (8239a37f9) and `-C opt-level=3 -C target-feature=+avx2,+fma`:
<table>
<tr>
    <th>Rust</th>
    <th>Assembly</th>
</tr>
<tr>
<td>
<pre lang="rust">
fn dot(a: &[f32], b: &[f32]) -> f32 {
    let mut sum = 0.0;
    for i in 0..a.len() {
        sum = fadd_algebraic(sum, fmul_algebraic(a[i], b[i]));
    }
    sum
}
</pre>
</td>
<td>
<img src="https://github.com/user-attachments/assets/9dcf953a-2cd7-42f3-bc34-7117de4c5fb9" />
</td>
</tr>
</table>

### Stable Rust: 84us 

With rustc 1.84.1 (e71f9a9a9) and `-C opt-level=3 -C target-feature=+avx2,+fma`:
<table>
<tr>
    <th>Rust</th>
    <th>Assembly</th>
</tr>
<tr>
<td>
<pre lang="rust">
fn dot(a: &[f32], b: &[f32]) -> f32 {
    let mut sum = 0.0;
    for i in 0..a.len() {
        sum += a[i] * b[i];
    }
    sum
}
</pre>
</td>
<td>
<img src="https://github.com/user-attachments/assets/936a1f7e-33e4-4ff8-a732-c3cdfe068dca" />
</td>
</tr>
</table>

# Proposed Change

Add `core::intrinsics::f*_algebraic` wrappers to `f16`, `f32`, `f64`, and `f128` gated on a new `float_algebraic` feature.

# Alternatives Considered

https://github.com/rust-lang/rust/issues/21690 has a lot of good discussion of various options for supporting fast math in Rust, but is still open a decade later because any choice that opts in more than individual operations is ultimately contrary to Rust's design principles.

In the mean time, processors have evolved and we're leaving major performance on the table by not supporting vectorization. We shouldn't make users choose between an unstable compiler and an 8x performance hit.

# References

* https://github.com/rust-lang/rust/issues/21690
* https://github.com/rust-lang/libs-team/issues/532
* https://github.com/rust-lang/rust/issues/136469
* https://github.com/calder/dot-bench
* https://www.felixcloutier.com/x86/vfmadd132ps:vfmadd213ps:vfmadd231ps

try-job: x86_64-gnu-nopt
try-job: x86_64-gnu-aux
2025-04-05 13:18:12 +11:00
Calder Coalson
8ff70529f2 Expose algebraic floating point intrinsics 2025-04-04 16:13:57 -07:00
Guillaume Gomez
017e99b53b Add rustc-literal-escaper to allowed crates lists 2025-04-04 22:26:10 +02:00
Guillaume Gomez
2e3a161871 Update rustc-literal-escaper version to 0.0.2 2025-04-04 22:26:10 +02:00
Guillaume Gomez
2b533e6b49 bootstrap: Only add rustc_randomized_layouts if the crate has it 2025-04-04 22:26:10 +02:00
Matthias Krüger
bad6b7bad6
Rollup merge of #139378 - Kobzol:bootstrap-use-lld-fix, r=petrochenkov
Use target-agnostic LLD flags in bootstrap for `use-lld`

[Before](https://github.com/rust-lang/rust/pull/135001), I hardcoded LLD flags that pretty much only worked on GNU. The right way is to use `-Zlinker-features` instead though.

I *think* that this should also make this work on Windows mingw, and thus `@petrochenkov's` workaround is no longer necessary.

Fixes: https://github.com/rust-lang/rust/issues/139372
Closes: https://github.com/rust-lang/rust/pull/139375

r? `@lqd`
2025-04-04 21:55:00 +02:00