- 27 4月, 2020 1 次提交
-
-
由 Dylan DPC 提交于
Add a function to turn Box<T> into Box<[T]> Hi, I think this is very useful, as currently it's not possible in safe rust to do this without re-allocating. an alternative implementation of the same function can be: ```rust pub fn into_boxed_slice<T>(boxed: Box<T>) -> Box<[T]> { unsafe { let slice = slice::from_raw_parts_mut(Box::into_raw(boxed), 1); Box::from_raw(slice) } } ``` The only thing that makes me a little uncomfortable is this line : > The alignment of array types is greater or equal to the alignment of its element type from https://rust-lang.github.io/unsafe-code-guidelines/layout/arrays-and-slices.html But then I see: > The alignment of &T, &mut T, *const T and *mut T are the same, and are at least the word size. > The alignment of &[T] is the word size. from https://rust-lang.github.io/unsafe-code-guidelines/layout/pointers.html#representation So I do believe this is valid(FWIW it also passes in miri https://play.rust-lang.org/?gist=c002b99364ee6b29862aeb3565a91c19)
-
- 26 4月, 2020 34 次提交
-
-
由 bors 提交于
Rollup of 5 pull requests Successful merges: - #71490 (Cleanup and document `-C relocation-model`) - #71562 (fix more clippy warnings) - #71571 (Fix since attribute for nonzero_bitor impl's) - #71574 (proc_macro: Fix since attributes for new Span methods) - #71575 (Fix stable(since) attribute for BTreeMap::remove_entry) Failed merges: r? @ghost
-
由 Elichai Turkel 提交于
-
由 Elichai Turkel 提交于
-
由 Dylan DPC 提交于
Fix stable(since) attribute for BTreeMap::remove_entry Stabilized in #70712. Maybe checking that the since attributes are added correctly should be automated through tidy? This is the third PR I'm opening that fixes a stable(since) attribute for something meant to be stabilized in 1.43 / 1.44 initially but then only stabilized in 1.45. (the other two are #71571, #71574)
-
由 Dylan DPC 提交于
proc_macro: Fix since attributes for new Span methods Added in #69041, took a while to merge so the since attributes went out of date.
-
由 Dylan DPC 提交于
Fix since attribute for nonzero_bitor impl's Added in #69813, took a while to merge so the since attributes went out of date.
-
由 Dylan DPC 提交于
fix more clippy warnings clippy::{redundant_pattern_matching, clone_on_copy, iter_cloned_collect, option_as_ref_deref, match_ref_pats} r? @Dylan-DPC
-
由 Dylan DPC 提交于
Cleanup and document `-C relocation-model` As the title says, this is mostly a refactoring and documentation. One potentially observable change here is that `-C relocation-model=default` now takes the default from the Rust target, rather than from the underlying LLVM target. In other words, `-C relocation-model=default` is now equivalent to not specifying the relocation model on command line at all. Apparently no one used that option because it has other bugs as well, e.g. PIC `default` wasn't treated as PIC in some places.
-
由 Jonas Platte 提交于
-
由 Jonas Platte 提交于
-
由 Jonas Platte 提交于
-
由 Vadim Petrochenkov 提交于
The referenced `sanitizer-address/Makefile` no longer exists, so perhaps these options are no longer necessary as well. Even if they are still necessary, they should use `-C relocation-model=static` instead.
-
由 Vadim Petrochenkov 提交于
-
由 Vadim Petrochenkov 提交于
-
由 Vadim Petrochenkov 提交于
-
由 Vadim Petrochenkov 提交于
Introduce `enum RelocModel` instead.
-
由 bors 提交于
Update stdarch submodule Includes : - https://github.com/rust-lang/stdarch/pull/849 which stabilizes the remaining x86 features for feature detection. - https://github.com/rust-lang/stdarch/pull/850 which fixes building stdarch on FreeBSD. Fixes #71473
-
由 bors 提交于
Shrink GHA configuration This shrinks our GHA configuration by [taking advantage of two new features GitHub just announced](https://github.blog/2020-04-22-github-actions-community-momentum-enterprise-capabilities-and-developer-improvements/): * [Default values for `steps[].shell`](https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#defaultsrun) * [Being able to include values in a matrix without having to duplicate the job names.](https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#example-including-new-combinations) The configuration should be functionally equivalent to the previous one. r? @Mark-Simulacrum
-
由 bors 提交于
Rollup of 5 pull requests Successful merges: - #70043 (Add all remaining `DefKind`s.) - #71140 ([breaking change] Disallow statics initializing themselves) - #71392 (Don't hold the predecessor cache lock longer than necessary) - #71541 (Add regression test for #26376) - #71554 (Replace thread_local with generator resume arguments in box_region.) Failed merges: r? @ghost
-
由 Matthias Krüger 提交于
clippy::{redundant_pattern_matching, clone_on_copy, iter_cloned_collect, option_as_ref_deref, match_ref_pats}
-
由 Dylan DPC 提交于
Replace thread_local with generator resume arguments in box_region. Fixes #68922. Continuation of #70622. Added a short doc, hope it makes sense. r? @jonas-schievink
-
由 Dylan DPC 提交于
Add regression test for #26376 Closes #26376
-
由 Dylan DPC 提交于
Don't hold the predecessor cache lock longer than necessary #71044 returns a `LockGuard` with the predecessor cache to callers of `Body::predecessors`. As a result, the lock around the predecessor cache could be held for an arbitrarily long time. This PR uses reference counting for ownership of the predecessor cache, meaning the lock is only ever held within `PredecessorCache::compute`. Checking this API for potential sources of deadlock is much easier now, since we no longer have to consider its consumers, only its internals. This required removing `predecessors_for`, since there is no equivalent to `LockGuard::map` for `Arc` and `Rc`. I believe this could be emulated with `owning_ref::{Arc,Rc}Ref`, but I don't think it's necessary. Also, we continue to return an opaque type from `Body::predecessors` with the lifetime of the `Body`, not `'static`. This depends on #71044. Only the last two commits are new. r? @nikomatsakis
-
由 Dylan DPC 提交于
[breaking change] Disallow statics initializing themselves fixes #71078 Self-initialization is unsound because it breaks privacy assumptions that unsafe code can make. In ```rust pub mod foo { #[derive(Debug, Copy, Clone)] pub struct Foo { x: (), } } pub static FOO: foo::Foo = FOO; ``` unsafe could could expect that ony functions inside the `foo` module were able to create a value of type `Foo`.
-
由 Dylan DPC 提交于
Add all remaining `DefKind`s. r? @EddyB or @Centril ~~I'm not sure if this is what you were thinking of. There are also a few places where I'm not sure what the correct choice is because I don't fully understand the meaning of some variants.~~ ~~In general, it feels a bit odd to add some of these as `DefKind`s (e.g. `Arm`) because they don't feel like definitions. Are there things that it makes sense not to add?~~
-
由 bors 提交于
Rollup of 7 pull requests Successful merges: - #69041 (proc_macro: Stabilize `Span::resolved_at` and `Span::located_at`) - #69813 (Implement BitOr and BitOrAssign for the NonZero integer types) - #70712 (stabilize BTreeMap::remove_entry) - #71168 (Deprecate `{Box,Rc,Arc}::into_raw_non_null`) - #71544 (Replace filter_map().next() calls with find_map()) - #71545 (Fix comment in docstring example for Error::kind) - #71548 (Add missing Send and Sync impls for linked list Cursor and CursorMut.) Failed merges: r? @ghost
-
由 Dylan DPC 提交于
Add missing Send and Sync impls for linked list Cursor and CursorMut. Someone pointed out these to me, and i think it's indeed reasonable to add those impl. r? @Amanieu
-
由 Dylan DPC 提交于
Fix comment in docstring example for Error::kind Saw it while reading the docs.
-
由 Dylan DPC 提交于
Replace filter_map().next() calls with find_map() These are semantically the same, but `find_map()` is more concise.
-
由 Dylan DPC 提交于
Deprecate `{Box,Rc,Arc}::into_raw_non_null` Per ongoing FCP at https://github.com/rust-lang/rust/issues/47336#issuecomment-586589016 See also https://github.com/rust-lang/rust/issues/47336#issuecomment-614054164
-
由 Dylan DPC 提交于
stabilize BTreeMap::remove_entry This PR stabilizes `BTreeMap::remove_entry` as implemented in https://github.com/rust-lang/rust/pull/68378. Closes https://github.com/rust-lang/rust/issues/66714
-
由 Dylan DPC 提交于
Implement BitOr and BitOrAssign for the NonZero integer types This provides overloaded operators for `NonZero$Int | NonZero$Int`, `NonZero$Int | $Int`, and `$Int | NonZero$Int`. It also provides `BitOrAssign` where `self` is `NonZero$Int`, for symmetry. It's a pretty small conceptual addition, but is good becasue but avoids a case where the operation is obviously sound, but you'd otherwise need unsafe to do it. In crates trying to minimize `unsafe` usage, this is unfortunate and makes working with `NonZero` types often not worth it, even if the operations you're doing are clearly sound. I've marked these as stable as I've been told in the past that trait impls are automatically stable. I'm happy to change it to unstable if this wasn't correct information. I'm not entirely confident what version I should have put down, so I followed https://www.whatrustisit.com. Hopefully it's correct for this. Apologies in advance if this has come up before, but I couldn't find it.
-
由 Dylan DPC 提交于
proc_macro: Stabilize `Span::resolved_at` and `Span::located_at` Introduced in https://github.com/rust-lang/rust/pull/47149. Part of https://github.com/rust-lang/rust/issues/54725. Motivation: https://github.com/rust-lang/rust/pull/68716#issuecomment-583918919. Identifiers in proc macros may want to inherit span locations for diagnostics from one tokens (e.g. some tokens from the macro input), but resolve those identifiers from some different location (e.g. from the macro's definition site). This becomes especially important when multiple resolution locations become available with stabilization of [`Span::mixed_site`](https://github.com/rust-lang/rust/pull/68716). Why I think this is the right API for setting span's location and hygiene - https://github.com/rust-lang/rust/pull/69041#issuecomment-586644778. r? @dtolnay
-
由 Alex Aktsipetrov 提交于
-
- 25 4月, 2020 5 次提交
-
-
由 crlf0710 提交于
Co-Authored-By: NAmanieu d'Antras <amanieu@gmail.com>
-
由 bors 提交于
Bump bootstrap compiler This bumps the bootstrap compiler and the rustfmt that x.py fmt uses.
-
由 Mark Rousskov 提交于
-
由 Mark Rousskov 提交于
-
由 Vadim Petrochenkov 提交于
-