Joshua Nelson
7b823df489
Link to #capacity-and-reallocation
when using with_capacity
2020-09-03 18:08:25 -04:00
The8472
2f23a0fcca
fix debug assertion
...
The InPlaceIterable debug assert checks that the write pointer
did not advance beyond the read pointer. But TrustedRandomAccess
never advances the read pointer, thus triggering the assert.
Skip the assert if the source pointer did not change during iteration.
2020-09-03 22:15:47 +02:00
Rune Tynan
2278c7255a
Remove vec-to_str.rs, merge the remaining test in with vec
2020-09-03 15:43:07 -04:00
The8472
8e5fe5569b
improve comments and naming
2020-09-03 20:59:37 +02:00
The8472
6464586542
add explanation to specialization marker
2020-09-03 20:59:36 +02:00
The8472
acdd441cc3
remove separate no-drop code path since it resulted in more LLVM IR
2020-09-03 20:59:36 +02:00
The8472
435219dd82
remove empty Vec extend optimization
...
The optimization meant that every extend code path had to emit llvm
IR for from_iter and extend spec_extend, which likely impacts
compile times while only improving a few edge-cases
2020-09-03 20:59:35 +02:00
The8472
9aeea00222
get things to work under min_specialization by leaning more heavily on #[rustc_unsafe_specialization_marker]
2020-09-03 20:59:34 +02:00
The8472
a62cd1b44c
fix benchmark compile errors
2020-09-03 20:59:33 +02:00
The8472
bec9f9223c
apply required min_specialization attributes
2020-09-03 20:59:32 +02:00
The8472
80638330f2
support in-place collect for MapWhile adapters
2020-09-03 20:59:32 +02:00
The8472
5530858a08
generalize in-place collect to types of same size and alignment
2020-09-03 20:59:31 +02:00
The8472
fa34b39cd6
increase comment verbosity
2020-09-03 20:59:30 +02:00
The8472
872ab780c0
work around compiler overhead around lambdas in generics by extracting them into free functions
2020-09-03 20:59:29 +02:00
The8472
771b8ecc83
extract IntoIter drop/forget used by specialization into separate methods
2020-09-03 20:59:29 +02:00
The8472
6ad133443a
add benchmark to cover in-place extend
2020-09-03 20:59:28 +02:00
The8472
a7a8b52e91
remove redundant cast
2020-09-03 20:59:28 +02:00
The8472
470bf54f94
test drops during in-place iteration
2020-09-03 20:59:27 +02:00
The8472
fe350dd82d
move unsafety into method, not relevant to caller
2020-09-03 20:59:27 +02:00
The8472
0d2d033415
replace unsafe ptr::write with deref-write, benchmarks show no difference
2020-09-03 20:59:26 +02:00
The8472
9596e5a2f2
pacify tidy
2020-09-03 20:59:26 +02:00
The8472
6ed05fd995
replace drop flag with ManuallyDrop
2020-09-03 20:59:25 +02:00
The8472
ab382b7661
mark as_inner as unsafe and update comments
2020-09-03 20:59:24 +02:00
The8472
2a51e579f5
avoid exposing that binary heap's IntoIter is backed by vec::IntoIter, use a private trait instead
2020-09-03 20:59:24 +02:00
The8472
c731648e77
fix: bench didn't black_box its results
2020-09-03 20:59:23 +02:00
The8472
0856771248
fix build issue due to stabilized feature
2020-09-03 20:59:23 +02:00
The8472
e85cfa4f22
impl TrustedRandomAccess for vec::IntoIter
2020-09-03 20:59:22 +02:00
The8472
e1151844fa
bench larger allocations
2020-09-03 20:59:22 +02:00
The8472
fd16202e36
include in-place .zip() in test
2020-09-03 20:59:21 +02:00
The8472
fbb3371e5b
remove unecessary feature flag
...
# Conflicts:
# library/alloc/src/lib.rs
2020-09-03 20:59:21 +02:00
The8472
085eb20a61
move free-standing method into trait impl
2020-09-03 20:59:19 +02:00
The8472
3d5e9f1904
bench in-place zip
2020-09-03 20:59:18 +02:00
The8472
2b0b2ae9f6
additional specializations tests
2020-09-03 20:59:17 +02:00
The8472
00a32eb54f
fix some in-place-collect edge-cases
...
- it's an allocation optimization, so don't attempt to do it on ZSTs
- drop the tail of partially exhausted iters
2020-09-03 20:59:17 +02:00
The8472
8c816b96dd
remove redundant code
2020-09-03 20:59:16 +02:00
The8472
cc67c8eb91
improve comments
2020-09-03 20:59:16 +02:00
The8472
290fe895ba
specialize creating a Vec from a slice iterator where T: Copy
...
this was already implemented for Extend but not for FromIterator
2020-09-03 20:59:15 +02:00
The8472
dac0edfaaa
restore SpecFrom<T, TrustedLen<Item=T>> specialization by nesting
...
specializations
2020-09-03 20:59:15 +02:00
The8472
582fbb1d62
use From specializations on extend if extended Vec is empty
...
this enables in-place iteration and allocation reuse in additional cases
2020-09-03 20:59:14 +02:00
The8472
a596ff36b5
exercise more of the in-place pipeline in the bench
2020-09-03 20:59:14 +02:00
The8472
a9c78e371e
bench in-place collect of droppables
2020-09-03 20:59:13 +02:00
The8472
8ac96e6a98
cyclic in-place reuse bench
2020-09-03 20:59:13 +02:00
The8472
bb4f888a59
return the things under test so they get black_box()'ed
2020-09-03 20:59:12 +02:00
The8472
2f700d085a
add benches from bluss' gists
2020-09-03 20:59:12 +02:00
The8472
a4e385a0d0
use memmove instead of generic in-place iteration for IntoIter source
...
this is the original SpecExtend<_, IntoIter> logic except generalizing
the fast-path to include a memmove
2020-09-03 20:59:11 +02:00
The8472
631543dcb4
restore Vec::extend specialization for vec::IntoIter sources that
...
was lost during refactoring
2020-09-03 20:59:11 +02:00
The8472
07a8c1b95a
hide binary_heap::IntoIter internals behind impl Trait
2020-09-03 20:59:10 +02:00
The8472
232065074d
recover vectorization
...
switch to try_fold and segregate the drop handling to keep
collect::<Vec<u8>>() and similar optimizer-friendly
It comes at the cost of less accurate debug_asserts and code complexity
2020-09-03 20:59:09 +02:00
The8472
6c5c47b82b
update benches
2020-09-03 20:59:09 +02:00
The8472
bead910b21
simplify pointer arithmetic
2020-09-03 20:59:08 +02:00
The8472
328a75f766
use add instead of offset
2020-09-03 20:59:07 +02:00
The8472
88b7ae642c
implement drop handling
2020-09-03 20:59:06 +02:00
The8472
73a982e9ec
assert that SourceIter requirements have not been violated by the pipeline
2020-09-03 20:59:06 +02:00
The8472
2a327394e4
mark SourceIter as unsafe, document invariants
2020-09-03 20:59:05 +02:00
The8472
bb2d533bb9
in-place collect for Vec. Box<[]> and BinaryHeap IntoIter and some adapters
2020-09-03 20:59:03 +02:00
The8472
038394a330
bench
2020-09-03 20:56:34 +02:00
The8472
076417e978
unrelated typo fix
2020-09-03 20:56:34 +02:00
Ivan Tham
4df64905ea
Link & primitive using relative link
2020-09-03 23:02:27 +08:00
bors
08deb863bd
Auto merge of #76235 - jyn514:std-intra-links, r=poliorcetics
...
Convert many files to intra-doc links
Helps with https://github.com/rust-lang/rust/issues/75080
r? @poliorcetics
I recommend reviewing one commit at a time, but the diff is small enough you can do it all at once if you like :)
2020-09-03 05:53:48 +00:00
Rune Tynan
3e29fdb0fb
Remove a number of vec UI tests, make them unit tests in the alloc library
2020-09-03 01:40:15 -04:00
Joshua Nelson
44bacc3ffa
Revert change to MaybeUninit until rustdoc bugs are fixed
...
https://github.com/rust-lang/rust/issues/76106
2020-09-02 17:38:21 -04:00
Joshua Nelson
59a1a05bff
Convert many files to intra-doc links
...
- Use intra-doc links for `std::io` in `std::fs`
- Use intra-doc links for File::read in unix/ext/fs.rs
- Remove explicit intra-doc links for `true` in `net/addr.rs`
- Use intra-doc links in alloc/src/sync.rs
- Use intra-doc links in src/ascii.rs
- Switch to intra-doc links in alloc/rc.rs
- Use intra-doc links in core/pin.rs
- Use intra-doc links in std/prelude
- Use shorter links in `std/fs.rs`
`io` is already in scope.
2020-09-02 17:37:40 -04:00
Anton
dbe50f5c24
Same typos in vec_deque
2020-09-02 14:09:42 +02:00
Anton
b67006422e
Fix typos in vec try_reserve(_exact) docs
...
`try_reserve` and `try_reserve_exact` docs refer to calling `reserve` and `reserve_exact`.
`try_reserve_exact` example uses `try_reserve` method instead of `try_reserve_exact`.
2020-09-02 13:12:44 +02:00
Joshua Nelson
726b187546
Use intra-doc links for MaybeUninit
in boxed.rs
2020-09-01 23:54:17 -04:00
Jon Gjengset
8b55360f70
Will land in 1.48, not 1.47
2020-09-01 09:50:32 -04:00
Jon Gjengset
010891f8b8
Merge branch 'master' into stabilize-vecdeque-make_contiguous
2020-09-01 09:49:42 -04:00
mental
0f301e8bb4
Removed [inline] and copied over comments from Arc::new_cyclic
2020-09-01 09:46:48 +01:00
Tyler Mandry
c307e90daa
Rollup merge of #76139 - CDirkx:cow-is-borrowed, r=ecstatic-morse
...
Make `cow_is_borrowed` methods const
Constify the following methods of `alloc::borrow::Cow`:
- `is_borrowed`
- `is_owned`
Analogous to the const methods `is_some` and `is_none` for Option, and `is_ok` and `is_err` for Result.
These methods are still unstable under `cow_is_borrowed`.
Possible because of #49146 (Allow if and match in constants).
Tracking issue: #65143
2020-08-31 19:18:21 -07:00
Aleksey Kladov
13c4f04561
Rollup merge of #76069 - pickfire:patch-16, r=jyn514
...
Use explicit intra-doc link in path for Vec resize
r? @jyn514
2020-08-31 12:51:53 +02:00
Aleksey Kladov
d829a5bcb1
Rollup merge of #76058 - pickfire:patch-11, r=jyn514
...
Use assertions on Vec doc
Clarify what the state of Vec after with_capacity on doc.
r? @jyn514
2020-08-31 12:51:51 +02:00
Aleksey Kladov
af1f46cf99
Rollup merge of #76055 - pickfire:patch-9, r=jyn514
...
Keep doc standard for Vec DrainFilter
r? @jyn514
2020-08-31 12:51:49 +02:00
Aleksey Kladov
6ce3243995
Rollup merge of #76033 - camelid:patch-7, r=Dylan-DPC
...
Add missing hyphen
reference counted pointer -> reference-counted pointer
@rustbot modify labels: T-doc
2020-08-31 12:51:45 +02:00
Aleksey Kladov
e59eb4e0fa
Rollup merge of #76023 - pickfire:patch-4, r=jyn514
...
Liballoc extend use intra doc link
Superseeds https://github.com/rust-lang/rust/pull/75729/commits
r? @jyn514
2020-08-31 12:51:42 +02:00
CDirkx
af24bdbd96
Make cow_is_borrowed
methods const
...
Constify the following methods of `alloc::borrow::Cow`:
- `is_borrowed`
- `is_owned`
These methods are still unstable under `cow_is_borrowed`.
Possible because of #49146 (Allow if and match in constants).
Tracking issue: #65143
2020-08-31 03:43:47 +02:00
Ivan Tham
20a68666d8
Try removing [prim@reference]
2020-08-30 09:17:22 +08:00
Dylan DPC
75d6b109c2
Rollup merge of #75874 - pickfire:patch-3, r=jyn514
...
Shorten liballoc doc intra link while readable
r? @jyn514
Do you want to reviews these sort of pull requests in the future? I might send a few of them while reading vec code.
2020-08-30 01:43:41 +02:00
Ivan Tham
2d1ab83834
Remove empty vec assertion flow distrupt
...
Co-authored-by: Joshua Nelson <joshua@yottadb.com>
2020-08-29 23:07:40 +08:00
Ivan Tham
be8b5eb529
Reuse description from drain_filter
...
Co-authored-by: Joshua Nelson <joshua@yottadb.com>
2020-08-29 22:39:34 +08:00
Ivan Tham
237c5005d6
Use explicit intra-doc link in path for Vec resize
2020-08-29 20:40:05 +08:00
Ivan Tham
7148412100
Vec slice example fix style and show type elision
2020-08-29 18:57:49 +08:00
Ivan Tham
bb5e79cbd1
Link vec doc to & reference
...
It is not always obvious that people could see the docs for `&`
especially for beginners, it also helps learnability.
2020-08-29 18:47:11 +08:00
Ivan Tham
12b4cf8c6c
Use assertions on Vec doc
...
Clarify what the state of Vec after with_capacity on doc.
2020-08-29 18:38:18 +08:00
Ivan Tham
ba4c498816
Add more info for Vec Drain doc
...
See its documentation for more
2020-08-29 18:25:17 +08:00
Ivan Tham
d727442f2d
Remove brackets in drain filter docs
2020-08-29 18:23:29 +08:00
Ivan Tham
d504d553f1
Keep doc standard for Vec DrainFilter
2020-08-29 18:21:47 +08:00
Ivan Tham
c7e428e862
Liballoc vec doc use associated function
...
Co-authored-by: Joshua Nelson <joshua@yottadb.com>
2020-08-29 16:13:05 +08:00
mental
42fb27001e
typo
...
Co-authored-by: Andrew Hickman <andrew.hickman1@sky.com>
2020-08-29 07:39:03 +01:00
Camelid
7be129e53a
Add missing hyphen
...
reference counted pointer -> reference-counted pointer
2020-08-28 09:29:06 -07:00
Ivan Tham
2d6ab122b7
Liballoc extend use intra doc link
2020-08-28 19:33:53 +08:00
mental32
f03d0b38d6
impl Rc::new_cyclic
2020-08-27 19:19:29 +01:00
Dylan DPC
11e9769a97
Rollup merge of #75875 - pickfire:patch-4, r=jyn514
...
Shorten liballoc vec resize intra-doc link
r? @jyn514
2020-08-27 01:14:17 +02:00
bors
ffd59bf9c6
Auto merge of #75687 - TimDiekmann:realloc-align, r=Amanieu
...
Allow reallocation to different alignment in `AllocRef`
The allocator-wg [has decided](https://github.com/rust-lang/wg-allocators/issues/5#issuecomment-672591112 ) to support reallocating to a different alignment in `AllocRef`. For more details please see the linked issue.
r? @Amanieu
closes https://github.com/rust-lang/wg-allocators/issues/5
2020-08-26 10:44:28 +00:00
dylni
d9e877fb98
Add more information to safety comment
2020-08-24 10:53:25 -04:00
Ivan Tham
a7468705cb
Use translated variable for test string
...
Test should be educative, added english translation and pronounciation.
2020-08-24 22:47:15 +08:00
Ivan Tham
adc492573e
Shorten liballoc vec resize intra-doc link
2020-08-24 20:52:41 +08:00
Ivan Tham
bc7ea6f52e
Shorten liballoc doc intra link while readable
2020-08-24 20:02:02 +08:00
bors
aa7010df90
Auto merge of #75815 - jyn514:ambiguous-primitives, r=guillaumegomez
...
Report an ambiguity if both modules and primitives are in scope for intra-doc links
Closes https://github.com/rust-lang/rust/issues/75381
- Add a new `prim@` disambiguator, since both modules and primitives are in the same namespace
- Refactor `report_ambiguity` into a closure
Additionally, I noticed that rustdoc would previously allow `[struct@char]` if `char` resolved to a primitive (not if it had a DefId). I fixed that and added a test case.
I also need to update libstd to use `prim@char` instead of `type@char`. If possible I would also like to refactor `ambiguity_error` to use `Disambiguator` instead of its own hand-rolled match - that ran into issues with `prim@` (I updated one and not the other) and it would be better for them to be in sync.
2020-08-24 10:29:29 +00:00
bors
9d74562432
Auto merge of #75505 - Dylan-DPC:feature/arc_new, r=KodrAus
...
Add Arc::new_cyclic
Rework of #72443
References #75861
cc @Diggsey @RalfJung
r? @KodrAus
2020-08-24 08:26:59 +00:00
Yuki Okushi
25a677ccef
Rollup merge of #75831 - lzutao:https, r=Dylan-DPC
...
doc: Prefer https link for wikipedia URLs
A tiny changes.
2020-08-24 11:48:47 +09:00