| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2020-01-16 | Auto merge of #67339 - CAD97:rc-provenance, r=sfackler | bors | -4/+24 | |
| Use pointer offset instead of deref for A/Rc::into_raw Internals thread: https://internals.rust-lang.org/t/rc-and-internal-mutability/11463/2?u=cad97 The current implementation of (`A`)`Rc::into_raw` uses the `Deref::deref` implementation to get the pointer-to-data that is returned. This is problematic in the proposed Stacked Borrow rules, as this only gets shared provenance over the data location. (Note that the strong/weak counts are `UnsafeCell` (`Cell`/`Atomic`) so shared provenance can still mutate them, but the data itself is not.) When promoted back to a real reference counted pointer, the restored pointer can be used for mutation through `::get_mut` (if it is the only surviving reference). However, this mutates through a pointer ultimately derived from a `&T` borrow, violating the Stacked Borrow rules. There are three known potential solutions to this issue: - Stacked Borrows is wrong, liballoc is correct. - Fully admit (`A`)`Rc` as an "internal mutability" type and store the data payload in an `UnsafeCell` like the strong/weak counts are. (Note: this is not needed generally since the `RcBox`/`ArcInner` is stored behind a shared `NonNull` which maintains shared write provenance as a raw pointer.) - Adjust `into_raw` to do direct manipulation of the pointer (like `from_raw`) so that it maintains write provenance and doesn't derive the pointer from a reference. This PR implements the third option, as recommended by @RalfJung. Potential future work: provide `as_raw` and `clone_raw` associated functions to allow the [`&T` -> (`A`)`Rc<T>` pattern](https://internals.rust-lang.org/t/rc-and-internal-mutability/11463/2?u=cad97) to be used soundly without creating (`A`)`Rc` from references. | ||||
| 2020-01-15 | Rollup merge of #68123 - crlf0710:linked_list_cursor, r=Amanieu | Dylan DPC | -24/+707 | |
| Implement Cursor for linked lists. (RFC 2570). cc. #58533 cc. @Gankra r? @Amanieu | ||||
| 2020-01-14 | Stabilize ptr::slice_from_raw_parts[_mut] | CAD97 | -1/+0 | |
| 2020-01-14 | Update APIs according to RFC change suggestions. | Charles Lew | -18/+85 | |
| 2020-01-12 | Add more BTreeMap/BTreeSet benchmarks regarding iteration | Stein Somers | -8/+69 | |
| 2020-01-12 | Address review comments. | Charles Lew | -2/+33 | |
| 2020-01-12 | Address review comments. | Charles Lew | -83/+161 | |
| 2020-01-12 | Implement Cursor for linked lists. (RFC 2570). | Charles Lew | -24/+531 | |
| 2020-01-11 | Revert "Rollup merge of #67727 - Dylan-DPC:stabilise/remove_item, ↵ | Lzu Tao | -1/+3 | |
| r=alexcrichton" This reverts commit 4ed415b5478c74094c2859abfddb959588cd6bb1, reversing changes made to 3cce950743e8aa74a4378dfdefbbc80223a00865. | ||||
| 2020-01-10 | Ammend Rc/Arc::from_raw() docs regarding unsafety | Lukas Lueg | -6/+8 | |
| Constructing an Rc/Arc is unsafe even if the wrapped `T` is never dereferenced. | ||||
| 2020-01-10 | Simplify NodeHeader by avoiding slices in BTreeMaps with shared roots | Stein Somers | -60/+19 | |
| 2020-01-09 | Apply suggestions from code review | Stein Somers | -1/+2 | |
| Co-Authored-By: Ralf Jung <post@ralfj.de> | ||||
| 2020-01-09 | Simplify into_key_slice_mut and document bits and bobs | Stein Somers | -13/+20 | |
| 2020-01-07 | Auto merge of #67312 - cuviper:clone-box-slice, r=SimonSapin | bors | -42/+1 | |
| Simplify Clone for Box<[T]> The bespoke `BoxBuilder` was basically a very simple `Vec`. Instead, let's clone to a real `Vec`, with all of its specialization for the task, then convert back to `Box<[T]>`. | ||||
| 2020-01-07 | Rollup merge of #67929 - mgrachev:patch-1, r=jonas-schievink | Yuki Okushi | -1/+1 | |
| Formatting an example for method Vec.retain | ||||
| 2020-01-06 | oh the one that was left behind | dylan_DPC | -1/+0 | |
| 2020-01-06 | stabilise it | dylan_DPC | -1/+1 | |
| 2020-01-06 | stabilise remove_item | dylan_DPC | -1/+0 | |
| 2020-01-06 | Formatting an example for method Vec.retain | Grachev Mikhail | -1/+1 | |
| 2020-01-06 | Rollup merge of #67873 - Dylan-DPC:feature/change-remove-to-partial, r=Amanieu | Dylan DPC | -1/+22 | |
| change remove to have a PartialEq bound Addresses [comment](https://github.com/rust-lang/rust/pull/67727#issuecomment-570660301). References #40062 r? @Amanieu | ||||
| 2020-01-05 | add feature gate | dylan_DPC | -0/+1 | |
| 2020-01-05 | removed blank line | dylan_DPC | -1/+0 | |
| 2020-01-04 | ef em ti ... :P | dylan_DPC | -7/+6 | |
| 2020-01-04 | Rollup merge of #67812 - ssomers:btreemap_internal_doc, r=rkruppe | Dylan DPC | -15/+39 | |
| Tweak and extend internal BTreeMap documentation, including debug asserts. Gathered from work on various other pull requests (e.g. #67725, #67686). | ||||
| 2020-01-04 | add tests | dylan_DPC | -0/+15 | |
| 2020-01-04 | add partial eq bound to remove_item | dylan_DPC | -1/+8 | |
| 2020-01-04 | Tweak and extend internal documentation, including debug asserts. | Stein Somers | -15/+39 | |
| Co-Authored-By: Robin Kruppe <robin.kruppe@gmail.com> | ||||
| 2020-01-02 | Use drop instead of the toilet closure `|_| ()` | Lzu Tao | -2/+2 | |
| 2019-12-31 | More thorough testing of BTreeMap::range | Stein Somers | -31/+150 | |
| 2019-12-28 | Auto merge of #67459 - ssomers:#67438, r=RalfJung | bors | -25/+152 | |
| prune ill-conceived BTreeMap iter_mut assertion and test its mutability Proposal to deal with #67438 (and I'm more sure now that this is the right thing to do). Passes testing with miri. | ||||
| 2019-12-28 | Rollup merge of #67629 - kraai:remove-redundant-link-texts, r=steveklabnik | Oliver Scherer | -8/+8 | |
| Remove redundant link texts Most of these links are followed by a parenthesized expression. I think that the redundant link texts were added to prevent interpretation as an inline link. This is unnecessary since the closing square bracket and opening parenthesis are separated by whitespace. | ||||
| 2019-12-26 | prune ill-conceived BTreeMap iter_mut assertion and test more | Stein Somers | -25/+152 | |
| 2019-12-26 | Remove redundant link texts | Matthew Kraai | -8/+8 | |
| 2019-12-24 | reuse `capacity` variable in slice::repeat | king6cong | -4/+4 | |
| 2019-12-23 | Add test for BTreeMap::clone_from | Charles Gleason | -0/+20 | |
| 2019-12-23 | Implement clone_from for BTree collections | Charles Gleason | -1/+66 | |
| 2019-12-23 | Make RangeMut::next_unchecked() output a mutable key reference | Charles Gleason | -7/+15 | |
| 2019-12-23 | Simplify Clone for Box<[T]> | Josh Stone | -42/+1 | |
| The bespoke `BoxBuilder` was basically a very simple `Vec`. Instead, let's clone to a real `Vec`, with all of its specialization for the task, then convert back to `Box<[T]>`. | ||||
| 2019-12-22 | Format the world | Mark Rousskov | -2061/+1698 | |
| 2019-12-22 | Rollup merge of #67504 - Mark-Simulacrum:note-data-offset, r=Centril | Mazdak Farrokhzad | -0/+4 | |
| Warn against relying on ?Sized being last Fixes #62522 | ||||
| 2019-12-21 | Warn against relying on ?Sized being last | Mark Rousskov | -0/+4 | |
| 2019-12-21 | Require issue = "none" over issue = "0" in unstable attributes | Ross MacArthur | -16/+16 | |
| 2019-12-20 | Rollup merge of #66755 - mark-i-m:const-vec-new, r=ecstatic-morse | Mazdak Farrokhzad | -18/+4 | |
| Remove a const-if-hack in RawVec r? @ecstatic-morse cc @Centril | ||||
| 2019-12-19 | Rollup merge of #67281 - llogiq:nonoverlapping-insert, r=alexcrichton | Mark Rousskov | -0/+40 | |
| add string.insert benchmarks This adds benchmarks for `String::insert` and `String::insert_str` | ||||
| 2019-12-18 | no need to bootstrap | Mark Mansi | -9/+2 | |
| 2019-12-18 | add fixme | Mark Mansi | -0/+1 | |
| 2019-12-18 | fix import | Mark Mansi | -1/+1 | |
| 2019-12-18 | use usize::MAX instead of !0 | Mark Mansi | -1/+1 | |
| 2019-12-18 | remove a bit more hackery | Mark Mansi | -41/+9 | |
| 2019-12-18 | Remove a const-if-hack in RawVec | Mark Mansi | -8/+32 | |
