Commit cc0843c
committed
rust: update to version 1.64.0.
Pkgsrc changes:
* This package now contains rust-analyzer, so implicitly
conflicts with that pkgsrc package. The same goes for
the rust-src package.
* Add NetBSD/arm6 port
* Add unfinished NetBSD/mipsel port
* Revert the use of the internal LLVM,
should now build with the new pkgsrc LLVM (15).
* Add depndence on compat80 for sparc64 to fix the build
* Adapt patches
* Add CHECK_INTERPRETER_SKIP for a few (mostly unused) files.
(A proper fix may come later.)
Upstream changes:
Version 1.64.0 (2022-09-22)
===========================
Language
--------
- [Unions with mutable references or tuples of allowed types are
now allowed](rust-lang/rust#97995)
- It is now considered valid to deallocate memory pointed to by a
shared reference `&T` [if every byte in `T` is inside an
`UnsafeCell`](rust-lang/rust#98017)
- Unused tuple struct fields are now warned against in an
allow-by-default lint, [`unused_tuple_struct_fields`]
(rust-lang/rust#95977), similar to the
existing warning for unused struct fields. This lint will become
warn-by-default in the future.
Compiler
--------
- [Add Nintendo Switch as tier 3 target]
(rust-lang/rust#88991)
- Refer to Rust's [platform support page][platform-support-doc] for more
information on Rust's tiered platform support.
- [Only compile `#[used]` as llvm.compiler.used for ELF targets]
(rust-lang/rust#93718)
- [Add the `--diagnostic-width` compiler flag to define the terminal width.]
(rust-lang/rust#95635)
- [Add support for link-flavor `rust-lld` for iOS, tvOS and watchOS]
(rust-lang/rust#98771)
Libraries
---------
- [Remove restrictions on compare-exchange memory ordering.]
(rust-lang/rust#98383)
- You can now `write!` or `writeln!` into an `OsString`: [Implement
`fmt::Write` for `OsString`](rust-lang/rust#97915)
- [Make RwLockReadGuard covariant]
(rust-lang/rust#96820)
- [Implement `FusedIterator` for `std::net::[Into]Incoming`]
(rust-lang/rust#97300)
- [`impl<T: AsRawFd> AsRawFd for {Arc,Box}<T>`]
(rust-lang/rust#97437)
- [`ptr::copy` and `ptr::swap` are doing untyped copies]
(rust-lang/rust#97712)
- [Add cgroupv1 support to `available_parallelism`]
(rust-lang/rust#97925)
- [Mitigate many incorrect uses of `mem::uninitialized`]
(rust-lang/rust#99182)
Stabilized APIs
---------------
- [`future::IntoFuture`]
(https://doc.rust-lang.org/stable/std/future/trait.IntoFuture.html)
- [`future::poll_fn`]
(https://doc.rust-lang.org/stable/std/future/fn.poll_fn.html)
- [`task::ready!`]
(https://doc.rust-lang.org/stable/std/task/macro.ready.html)
- [`num::NonZero*::checked_mul`]
(https://doc.rust-lang.org/stable/std/num/struct.NonZeroUsize.html#method.checked_mul)
- [`num::NonZero*::checked_pow`]
(https://doc.rust-lang.org/stable/std/num/struct.NonZeroUsize.html#method.checked_pow)
- [`num::NonZero*::saturating_mul`]
(https://doc.rust-lang.org/stable/std/num/struct.NonZeroUsize.html#method.saturating_mul)
- [`num::NonZero*::saturating_pow`]
(https://doc.rust-lang.org/stable/std/num/struct.NonZeroUsize.html#method.saturating_pow)
- [`num::NonZeroI*::abs`]
(https://doc.rust-lang.org/stable/std/num/struct.NonZeroIsize.html#method.abs)
- [`num::NonZeroI*::checked_abs`]
(https://doc.rust-lang.org/stable/std/num/struct.NonZeroIsize.html#method.checked_abs)
- [`num::NonZeroI*::overflowing_abs`]
(https://doc.rust-lang.org/stable/std/num/struct.NonZeroIsize.html#method.overflowing_abs)
- [`num::NonZeroI*::saturating_abs`]
(https://doc.rust-lang.org/stable/std/num/struct.NonZeroIsize.html#method.saturating_abs)
- [`num::NonZeroI*::unsigned_abs`]
(https://doc.rust-lang.org/stable/std/num/struct.NonZeroIsize.html#method.unsigned_abs)
- [`num::NonZeroI*::wrapping_abs`]
(https://doc.rust-lang.org/stable/std/num/struct.NonZeroIsize.html#method.wrapping_abs)
- [`num::NonZeroU*::checked_add`]
(https://doc.rust-lang.org/stable/std/num/struct.NonZeroUsize.html#method.checked_add)
- [`num::NonZeroU*::checked_next_power_of_two`]
(https://doc.rust-lang.org/stable/std/num/struct.NonZeroUsize.html#method.checked_next_power_of_two)
- [`num::NonZeroU*::saturating_add`]
(https://doc.rust-lang.org/stable/std/num/struct.NonZeroUsize.html#method.saturating_add)
- [`os::unix::process::CommandExt::process_group`]
(https://doc.rust-lang.org/stable/std/os/unix/process/trait.CommandExt.html#tymethod.process_group)
- [`os::windows::fs::FileTypeExt::is_symlink_dir`]
(https://doc.rust-lang.org/stable/std/os/windows/fs/trait.FileTypeExt.html#tymethod.is_symlink_dir)
- [`os::windows::fs::FileTypeExt::is_symlink_file`]
(https://doc.rust-lang.org/stable/std/os/windows/fs/trait.FileTypeExt.html#tymethod.is_symlink_file)
These types were previously stable in `std::ffi`, but are now also
available in `core` and `alloc`:
- [`core::ffi::CStr`]
(https://doc.rust-lang.org/stable/core/ffi/struct.CStr.html)
- [`core::ffi::FromBytesWithNulError`]
(https://doc.rust-lang.org/stable/core/ffi/struct.FromBytesWithNulError.html)
- [`alloc::ffi::CString`]
(https://doc.rust-lang.org/stable/alloc/ffi/struct.CString.html)
- [`alloc::ffi::FromVecWithNulError`]
(https://doc.rust-lang.org/stable/alloc/ffi/struct.FromVecWithNulError.html)
- [`alloc::ffi::IntoStringError`]
(https://doc.rust-lang.org/stable/alloc/ffi/struct.IntoStringError.html)
- [`alloc::ffi::NulError`]
(https://doc.rust-lang.org/stable/alloc/ffi/struct.NulError.html)
These types were previously stable in `std::os::raw`, but are now
also available in `core::ffi` and `std::ffi`:
- [`ffi::c_char`]
(https://doc.rust-lang.org/stable/std/ffi/type.c_char.html)
- [`ffi::c_double`]
(https://doc.rust-lang.org/stable/std/ffi/type.c_double.html)
- [`ffi::c_float`]
(https://doc.rust-lang.org/stable/std/ffi/type.c_float.html)
- [`ffi::c_int`]
(https://doc.rust-lang.org/stable/std/ffi/type.c_int.html)
- [`ffi::c_long`]
(https://doc.rust-lang.org/stable/std/ffi/type.c_long.html)
- [`ffi::c_longlong`]
(https://doc.rust-lang.org/stable/std/ffi/type.c_longlong.html)
- [`ffi::c_schar`]
(https://doc.rust-lang.org/stable/std/ffi/type.c_schar.html)
- [`ffi::c_short`]
(https://doc.rust-lang.org/stable/std/ffi/type.c_short.html)
- [`ffi::c_uchar`]
(https://doc.rust-lang.org/stable/std/ffi/type.c_uchar.html)
- [`ffi::c_uint`]
(https://doc.rust-lang.org/stable/std/ffi/type.c_uint.html)
- [`ffi::c_ulong`]
(https://doc.rust-lang.org/stable/std/ffi/type.c_ulong.html)
- [`ffi::c_ulonglong`]
(https://doc.rust-lang.org/stable/std/ffi/type.c_ulonglong.html)
- [`ffi::c_ushort`]
(https://doc.rust-lang.org/stable/std/ffi/type.c_ushort.html)
These APIs are now usable in const contexts:
- [`slice::from_raw_parts`]
(https://doc.rust-lang.org/stable/core/slice/fn.from_raw_parts.html)
Cargo
-----
- [Packages can now inherit settings from the workspace so that
the settings can be centralized in one place.]
(rust-lang/cargo#10859) See
[`workspace.package`](https://doc.rust-lang.org/nightly/cargo/reference/workspaces.html#the-workspacepackage-table)
and
[`workspace.dependencies`](https://doc.rust-lang.org/nightly/cargo/reference/workspaces.html#the-workspacedependencies-table)
for more details on how to define these common settings.
- [Cargo commands can now accept multiple `--target` flags to build
for multiple targets at once]
(rust-lang/cargo#10766), and the
[`build.target`](https://doc.rust-lang.org/nightly/cargo/reference/config.html#buildtarget)
config option may now take an array of multiple targets.
- [The `--jobs` argument can now take a negative number to count
backwards from the max CPUs.]
(rust-lang/cargo#10844)
- [`cargo add` will now update `Cargo.lock`.]
(rust-lang/cargo#10902)
- [Added](rust-lang/cargo#10838) the
[`--crate-type`](https://doc.rust-lang.org/nightly/cargo/commands/cargo-rustc.html#option-cargo-rustc---crate-type)
flag to `cargo rustc` to override the crate type.
- [Significantly improved the performance fetching git dependencies from GitHub
when using a hash in the `rev` field.]
(rust-lang/cargo#10079)
Misc
----
- [The `rust-analyzer` rustup component is now available on the stable channel.]
(rust-lang/rust#98640)
Compatibility Notes
-------------------
- The minimum required versions for all `-linux-gnu` targets are
now at least kernel 3.2 and glibc 2.17, for targets that previously
supported older versions: [Increase the minimum linux-gnu
versions](rust-lang/rust#95026)
- [Network primitives are now implemented with the ideal Rust
layout, not the C system layout]
(rust-lang/rust#78802). This can
cause problems when transmuting the types.
- [Add assertion that `transmute_copy`'s `U` is not larger than `T`]
(rust-lang/rust#98839)
- [A soundness bug in `BTreeMap` was fixed]
(rust-lang/rust#99413) that allowed data
it was borrowing to be dropped before the container.
- [The Drop behavior of C-like enums cast to ints has changed]
(rust-lang/rust#96862). These are already
discouraged by a compiler warning.
- [Relate late-bound closure lifetimes to parent fn in NLL]
(rust-lang/rust#98835)
- [Errors at const-eval time are now in future incompatibility reports]
(rust-lang/rust#97743)
- On the `thumbv6m-none-eabi` target, some incorrect `asm!` statements
were erroneously accepted if they used the high registers (r8 to
r14) as an input/output operand. [This is no longer accepted]
(rust-lang/rust#99155).
- [`impl Trait` was accidentally accepted as the associated type
value of return-position `impl Trait`]
(rust-lang/rust#97346), without
fulfilling all the trait bounds of that associated type, as long
as the hidden type satisfies said bounds. This has been fixed.
Internal Changes
----------------
These changes do not affect any public interfaces of Rust, but they
represent significant improvements to the performance or internals
of rustc and related tools.
- Windows builds now use profile-guided optimization, providing
10-20% improvements to compiler performance: [Utilize PGO for
windows x64 rustc dist builds]
(rust-lang/rust#96978)
- [Stop keeping metadata in memory before writing it to disk]
(rust-lang/rust#96544)
- [compiletest: strip debuginfo by default for mode=ui]
(rust-lang/rust#98140)
- Many improvements to generated code for derives, including
performance improvements:
- [Don't use match-destructuring for derived ops on structs.]
(rust-lang/rust#98446)
- [Many small deriving cleanups]
(rust-lang/rust#98741)
- [More derive output improvements]
(rust-lang/rust#98758)
- [Clarify deriving code](rust-lang/rust#98915)
- [Final derive output improvements]
(rust-lang/rust#99046)
- [Stop injecting `#[allow(unused_qualifications)]` in generated
`derive` implementations](rust-lang/rust#99485)
- [Improve `derive(Debug)`](rust-lang/rust#98190)
- [Bump to clap 3](rust-lang/rust#98213)
- [fully move dropck to mir](rust-lang/rust#98641)
- [Optimize `Vec::insert` for the case where `index == len`.]
(rust-lang/rust#98755)
- [Convert rust-analyzer to an in-tree tool]
(rust-lang/rust#99603)1 parent 712a03f commit cc0843c
File tree
35 files changed
+536
-262
lines changed- lang/rust
- patches
35 files changed
+536
-262
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | | - | |
6 | 5 | | |
7 | 6 | | |
8 | 7 | | |
| |||
104 | 103 | | |
105 | 104 | | |
106 | 105 | | |
107 | | - | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
108 | 109 | | |
109 | 110 | | |
110 | 111 | | |
| |||
127 | 128 | | |
128 | 129 | | |
129 | 130 | | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
130 | 159 | | |
131 | 160 | | |
132 | 161 | | |
| |||
187 | 216 | | |
188 | 217 | | |
189 | 218 | | |
190 | | - | |
| 219 | + | |
191 | 220 | | |
192 | 221 | | |
193 | 222 | | |
194 | 223 | | |
195 | 224 | | |
196 | 225 | | |
197 | | - | |
| 226 | + | |
198 | 227 | | |
199 | 228 | | |
200 | 229 | | |
201 | 230 | | |
202 | 231 | | |
203 | 232 | | |
204 | | - | |
| 233 | + | |
205 | 234 | | |
206 | 235 | | |
207 | 236 | | |
208 | 237 | | |
209 | 238 | | |
210 | 239 | | |
211 | | - | |
| 240 | + | |
212 | 241 | | |
213 | 242 | | |
214 | 243 | | |
215 | 244 | | |
216 | 245 | | |
217 | 246 | | |
218 | | - | |
| 247 | + | |
219 | 248 | | |
220 | 249 | | |
221 | 250 | | |
222 | 251 | | |
223 | 252 | | |
224 | 253 | | |
225 | | - | |
| 254 | + | |
226 | 255 | | |
227 | 256 | | |
228 | 257 | | |
229 | 258 | | |
230 | 259 | | |
231 | 260 | | |
232 | | - | |
| 261 | + | |
233 | 262 | | |
234 | 263 | | |
235 | 264 | | |
| |||
241 | 270 | | |
242 | 271 | | |
243 | 272 | | |
244 | | - | |
| 273 | + | |
245 | 274 | | |
246 | 275 | | |
247 | 276 | | |
| |||
254 | 283 | | |
255 | 284 | | |
256 | 285 | | |
257 | | - | |
| 286 | + | |
258 | 287 | | |
259 | 288 | | |
260 | 289 | | |
261 | 290 | | |
262 | 291 | | |
263 | 292 | | |
264 | | - | |
| 293 | + | |
265 | 294 | | |
266 | 295 | | |
267 | 296 | | |
| |||
281 | 310 | | |
282 | 311 | | |
283 | 312 | | |
284 | | - | |
| 313 | + | |
285 | 314 | | |
286 | 315 | | |
287 | 316 | | |
288 | 317 | | |
289 | 318 | | |
290 | 319 | | |
291 | | - | |
| 320 | + | |
292 | 321 | | |
293 | 322 | | |
294 | 323 | | |
| |||
311 | 340 | | |
312 | 341 | | |
313 | 342 | | |
314 | | - | |
| 343 | + | |
315 | 344 | | |
316 | 345 | | |
317 | 346 | | |
| |||
320 | 349 | | |
321 | 350 | | |
322 | 351 | | |
323 | | - | |
| 352 | + | |
324 | 353 | | |
325 | 354 | | |
326 | 355 | | |
| |||
329 | 358 | | |
330 | 359 | | |
331 | 360 | | |
332 | | - | |
| 361 | + | |
333 | 362 | | |
334 | 363 | | |
335 | 364 | | |
336 | 365 | | |
337 | 366 | | |
338 | 367 | | |
339 | 368 | | |
340 | | - | |
341 | | - | |
| 369 | + | |
| 370 | + | |
342 | 371 | | |
343 | 372 | | |
344 | 373 | | |
345 | 374 | | |
346 | 375 | | |
347 | 376 | | |
348 | 377 | | |
349 | | - | |
350 | | - | |
351 | | - | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
352 | 381 | | |
353 | 382 | | |
354 | 383 | | |
355 | 384 | | |
356 | 385 | | |
357 | 386 | | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
358 | 396 | | |
359 | 397 | | |
360 | 398 | | |
| |||
387 | 425 | | |
388 | 426 | | |
389 | 427 | | |
390 | | - | |
391 | | - | |
392 | | - | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
393 | 431 | | |
394 | 432 | | |
395 | | - | |
396 | | - | |
| 433 | + | |
| 434 | + | |
397 | 435 | | |
398 | 436 | | |
399 | 437 | | |
400 | | - | |
| 438 | + | |
401 | 439 | | |
402 | 440 | | |
403 | 441 | | |
404 | 442 | | |
405 | 443 | | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
406 | 448 | | |
407 | 449 | | |
408 | 450 | | |
409 | 451 | | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
410 | 480 | | |
411 | | - | |
412 | | - | |
| 481 | + | |
| 482 | + | |
413 | 483 | | |
414 | 484 | | |
415 | 485 | | |
| |||
602 | 672 | | |
603 | 673 | | |
604 | 674 | | |
605 | | - | |
| 675 | + | |
| 676 | + | |
606 | 677 | | |
607 | 678 | | |
608 | 679 | | |
| |||
613 | 684 | | |
614 | 685 | | |
615 | 686 | | |
616 | | - | |
| 687 | + | |
| 688 | + | |
617 | 689 | | |
618 | 690 | | |
619 | 691 | | |
| |||
622 | 694 | | |
623 | 695 | | |
624 | 696 | | |
| 697 | + | |
625 | 698 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
| |||
31 | 32 | | |
32 | 33 | | |
33 | 34 | | |
| 35 | + | |
34 | 36 | | |
35 | 37 | | |
36 | 38 | | |
37 | 39 | | |
38 | 40 | | |
39 | 41 | | |
40 | 42 | | |
41 | | - | |
| 43 | + | |
42 | 44 | | |
43 | 45 | | |
44 | 46 | | |
45 | 47 | | |
46 | 48 | | |
47 | 49 | | |
| 50 | + | |
48 | 51 | | |
49 | 52 | | |
50 | 53 | | |
| |||
0 commit comments