-
Notifications
You must be signed in to change notification settings - Fork 12.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
specialize some collection and iterator operations to run in-place #70793
Commits on Sep 3, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 076417e - Browse repository at this point
Copy the full SHA 076417eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 038394a - Browse repository at this point
Copy the full SHA 038394aView commit details -
Configuration menu - View commit details
-
Copy full SHA for bb2d533 - Browse repository at this point
Copy the full SHA bb2d533View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2a32739 - Browse repository at this point
Copy the full SHA 2a32739View commit details -
Configuration menu - View commit details
-
Copy full SHA for 73a982e - Browse repository at this point
Copy the full SHA 73a982eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 88b7ae6 - Browse repository at this point
Copy the full SHA 88b7ae6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 328a75f - Browse repository at this point
Copy the full SHA 328a75fView commit details -
Configuration menu - View commit details
-
Copy full SHA for f904d03 - Browse repository at this point
Copy the full SHA f904d03View commit details -
Configuration menu - View commit details
-
Copy full SHA for bead910 - Browse repository at this point
Copy the full SHA bead910View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6c5c47b - Browse repository at this point
Copy the full SHA 6c5c47bView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 2320650 - Browse repository at this point
Copy the full SHA 2320650View commit details -
Configuration menu - View commit details
-
Copy full SHA for b90816d - Browse repository at this point
Copy the full SHA b90816dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 07a8c1b - Browse repository at this point
Copy the full SHA 07a8c1bView commit details -
restore Vec::extend specialization for vec::IntoIter sources that
was lost during refactoring
Configuration menu - View commit details
-
Copy full SHA for 631543d - Browse repository at this point
Copy the full SHA 631543dView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for a4e385a - Browse repository at this point
Copy the full SHA a4e385aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2f700d0 - Browse repository at this point
Copy the full SHA 2f700d0View commit details -
Configuration menu - View commit details
-
Copy full SHA for bb4f888 - Browse repository at this point
Copy the full SHA bb4f888View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8ac96e6 - Browse repository at this point
Copy the full SHA 8ac96e6View commit details -
Configuration menu - View commit details
-
Copy full SHA for a9c78e3 - Browse repository at this point
Copy the full SHA a9c78e3View commit details -
Configuration menu - View commit details
-
Copy full SHA for a596ff3 - Browse repository at this point
Copy the full SHA a596ff3View commit details -
use From specializations on extend if extended Vec is empty
this enables in-place iteration and allocation reuse in additional cases
Configuration menu - View commit details
-
Copy full SHA for 582fbb1 - Browse repository at this point
Copy the full SHA 582fbb1View commit details -
Configuration menu - View commit details
-
Copy full SHA for dac0edf - Browse repository at this point
Copy the full SHA dac0edfView commit details -
specialize creating a Vec from a slice iterator where T: Copy
this was already implemented for Extend but not for FromIterator
Configuration menu - View commit details
-
Copy full SHA for 290fe89 - Browse repository at this point
Copy the full SHA 290fe89View commit details -
Configuration menu - View commit details
-
Copy full SHA for cc67c8e - Browse repository at this point
Copy the full SHA cc67c8eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8c816b9 - Browse repository at this point
Copy the full SHA 8c816b9View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 00a32eb - Browse repository at this point
Copy the full SHA 00a32ebView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2b0b2ae - Browse repository at this point
Copy the full SHA 2b0b2aeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3d5e9f1 - Browse repository at this point
Copy the full SHA 3d5e9f1View commit details -
add in-place iteration for Zip
this picks the left hand side as source since it might be more natural to consume that as IntoIter source
Configuration menu - View commit details
-
Copy full SHA for 0f122e1 - Browse repository at this point
Copy the full SHA 0f122e1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 085eb20 - Browse repository at this point
Copy the full SHA 085eb20View commit details -
support in-place iteration for most adapters
`Take` is not included since users probably call it with small constants and it doesn't make sense to hold onto huge allocations in that case
Configuration menu - View commit details
-
Copy full SHA for 21a17d1 - Browse repository at this point
Copy the full SHA 21a17d1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 70293c6 - Browse repository at this point
Copy the full SHA 70293c6View commit details -
remove unecessary feature flag
# Conflicts: # library/alloc/src/lib.rs
Configuration menu - View commit details
-
Copy full SHA for fbb3371 - Browse repository at this point
Copy the full SHA fbb3371View commit details -
Configuration menu - View commit details
-
Copy full SHA for fd16202 - Browse repository at this point
Copy the full SHA fd16202View commit details -
Configuration menu - View commit details
-
Copy full SHA for e115184 - Browse repository at this point
Copy the full SHA e115184View commit details -
Configuration menu - View commit details
-
Copy full SHA for e85cfa4 - Browse repository at this point
Copy the full SHA e85cfa4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0856771 - Browse repository at this point
Copy the full SHA 0856771View commit details -
Configuration menu - View commit details
-
Copy full SHA for c731648 - Browse repository at this point
Copy the full SHA c731648View commit details -
avoid exposing that binary heap's IntoIter is backed by vec::IntoIter…
…, use a private trait instead
Configuration menu - View commit details
-
Copy full SHA for 2a51e57 - Browse repository at this point
Copy the full SHA 2a51e57View commit details -
Configuration menu - View commit details
-
Copy full SHA for ab382b7 - Browse repository at this point
Copy the full SHA ab382b7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6ed05fd - Browse repository at this point
Copy the full SHA 6ed05fdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9596e5a - Browse repository at this point
Copy the full SHA 9596e5aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0d2d033 - Browse repository at this point
Copy the full SHA 0d2d033View commit details -
Configuration menu - View commit details
-
Copy full SHA for fe350dd - Browse repository at this point
Copy the full SHA fe350ddView commit details -
Configuration menu - View commit details
-
Copy full SHA for 470bf54 - Browse repository at this point
Copy the full SHA 470bf54View commit details -
Configuration menu - View commit details
-
Copy full SHA for a7a8b52 - Browse repository at this point
Copy the full SHA a7a8b52View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6ad1334 - Browse repository at this point
Copy the full SHA 6ad1334View commit details -
Configuration menu - View commit details
-
Copy full SHA for 771b8ec - Browse repository at this point
Copy the full SHA 771b8ecView commit details -
work around compiler overhead around lambdas in generics by extractin…
…g them into free functions
Configuration menu - View commit details
-
Copy full SHA for 872ab78 - Browse repository at this point
Copy the full SHA 872ab78View commit details -
Configuration menu - View commit details
-
Copy full SHA for fa34b39 - Browse repository at this point
Copy the full SHA fa34b39View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5530858 - Browse repository at this point
Copy the full SHA 5530858View commit details -
Configuration menu - View commit details
-
Copy full SHA for 55d1296 - Browse repository at this point
Copy the full SHA 55d1296View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8063833 - Browse repository at this point
Copy the full SHA 8063833View commit details -
Configuration menu - View commit details
-
Copy full SHA for bec9f92 - Browse repository at this point
Copy the full SHA bec9f92View commit details -
Configuration menu - View commit details
-
Copy full SHA for a62cd1b - Browse repository at this point
Copy the full SHA a62cd1bView commit details -
avoid applying in-place collect specialization in type-length test
the test was sized to match external iteration only, since vec's in-place collect now uses internal iteration we collect into a different type now. Note that any other try-fold based operation such as count() would also have exceeded the type length limit for that iterator.
Configuration menu - View commit details
-
Copy full SHA for 7badb7a - Browse repository at this point
Copy the full SHA 7badb7aView commit details -
get things to work under min_specialization by leaning more heavily o…
…n #[rustc_unsafe_specialization_marker]
Configuration menu - View commit details
-
Copy full SHA for 9aeea00 - Browse repository at this point
Copy the full SHA 9aeea00View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7492f76 - Browse repository at this point
Copy the full SHA 7492f76View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 435219d - Browse repository at this point
Copy the full SHA 435219dView commit details -
Configuration menu - View commit details
-
Copy full SHA for acdd441 - Browse repository at this point
Copy the full SHA acdd441View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6464586 - Browse repository at this point
Copy the full SHA 6464586View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8e5fe55 - Browse repository at this point
Copy the full SHA 8e5fe55View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 2f23a0f - Browse repository at this point
Copy the full SHA 2f23a0fView commit details