{"push_id":2611573744,"size":1000,"distinct_size":2,"ref":"refs/heads/auto","head":"f91323129000b20a5e3590d03fb3775bf73d5082","before":"13abb918740303ad73e723b0d6bb982af1d9c36a","commits":[{"sha":"b8b957d4792be619a3251c917199fe7e7c01997c","author":{"name":"Michael Woerister","email":"4fb647a2c3ead3c3f40f455abb861941f7d4ffb2@posteo"},"message":"Make CrateNum allocation more thread-safe.","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/b8b957d4792be619a3251c917199fe7e7c01997c"},{"sha":"a9810899a290a7746e88382558454e31bb8f85b7","author":{"name":"Michael Woerister","email":"4fb647a2c3ead3c3f40f455abb861941f7d4ffb2@posteo"},"message":"Allow for specifying a linker plugin for cross-language LTO","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/a9810899a290a7746e88382558454e31bb8f85b7"},{"sha":"23aa4831026b96869d0e0c283d39ba5fb35e786f","author":{"name":"Sebastian Köln","email":"4c4e715ba45e11acbffeb8ae0b225b1a18acbb96@rynx.org"},"message":"add fn `into_inner(self) -> (Idx, Idx)` to RangeInclusive (#49022)","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/23aa4831026b96869d0e0c283d39ba5fb35e786f"},{"sha":"254b6014d20f51a3e91b88c24a8f19e31f17acc9","author":{"name":"Alex Crichton","email":"60c6d277a8bd81de7fdde19201bf9c58a3df08f4@alexcrichton.com"},"message":"std: Avoid `ptr::copy` if unnecessary in `vec::Drain`\n\nThis commit is spawned out of a performance regression investigation in #50496.\nIn tracking down this regression it turned out that the `expand_statements`\nfunction in the compiler was taking quite a long time. Further investigation\nshowed two key properties:\n\n* The function was \"fast\" on glibc 2.24 and slow on glibc 2.23\n* The hottest function was memmove from glibc\n\nCombined together it looked like glibc gained an optimization to the memmove\nfunction in 2.24. Ideally we don't want to rely on this optimization, so I\nwanted to dig further to see what was happening.\n\nThe hottest part of `expand_statements` was `Drop for Drain` in the call to\n`splice` where we insert new statements into the original vector. This *should*\nbe a cheap operation because we're draining and replacing iterators of the exact\nsame length, but under the hood memmove was being called a lot, causing a\nslowdown on glibc 2.23.\n\nIt turns out that at least one of the optimizations in glibc 2.24 was that\n`memmove` where the src/dst are equal becomes much faster. [This program][prog]\nexecutes in ~2.5s against glibc 2.23 and ~0.3s against glibc 2.24, exhibiting\nhow glibc 2.24 is optimizing `memmove` if the src/dst are equal.\n\nAnd all that brings us to what this commit itself is doing. The change here is\npurely to `Drop for Drain` to avoid the call to `ptr::copy` if the region being\ncopied doesn't actually need to be copied. For normal usage of just `Drain`\nitself this check isn't really necessary, but because `Splice` internally\ncontains `Drain` this provides a nice speed boost on glibc 2.23. Overall this\nshould fix the regression seen in #50496 on glibc 2.23 and also fix the\nregression on Windows where `memmove` looks to not have this optimization.\n\nNote that the way `splice` was called in `expand_statements` would cause a\nquadratic number of elements to be copied via `memmove` which is likely why the\ntuple-stress benchmark showed such a severe regression.\n\nCloses #50496\n\n[prog]: https://gist.github.com/alexcrichton/c05bc51c6771bba5ae5b57561a6c1cd3","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/254b6014d20f51a3e91b88c24a8f19e31f17acc9"},{"sha":"050cb1c45232017a7708144b867114d7a7fbb569","author":{"name":"Oliver Schneider","email":"3e796c1be38c3f2bead187151d9627b1637bdf10@oli-obk.de"},"message":"Don't require clippy/miri for beta","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/050cb1c45232017a7708144b867114d7a7fbb569"},{"sha":"b8174030841d1b3a26add05ba7de6d252c135d8c","author":{"name":"Oliver Schneider","email":"3e796c1be38c3f2bead187151d9627b1637bdf10@oli-obk.de"},"message":"Document the checktools script","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/b8174030841d1b3a26add05ba7de6d252c135d8c"},{"sha":"472541731e6f35a9711bfb14e805934b4ceacd60","author":{"name":"bors","email":"3a2c29237f73c7cf88424b80e427b1884f346b35@rust-lang.org"},"message":"Auto merge of #49711 - ibabushkin:auto_trait_refactor, r=nikomatsakis\n\nRefactor auto trait handling in librustdoc to be accessible from librustc.\n\nThese commits transfer some of the functionality introduced in https://github.com/rust-lang/rust/pull/47833 to librustc with the intention of making the tools to work with auto traits accessible to third-party code, for example [rust-semverver](https://github.com/rust-lang-nursery/rust-semverver).\n\nSome rough edges remain, and I'm certain some of the FIXMEs introduced will need some discussion, most notably the fairly ugly overall approach to pull out the core logic into librustc, which was previously fairly tightly coupled with various bits and bobs from librustdoc.\n\ncc @Aaron1011","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/472541731e6f35a9711bfb14e805934b4ceacd60"},{"sha":"2c91b49fe45b71e30f3e47e185671fc75b36952f","author":{"name":"Guillaume Gomez","email":"b1db332606efda9d9987ee09ce352e2a96143e72@gmail.com"},"message":"Add exact-check option to rustdoc-js tests","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/2c91b49fe45b71e30f3e47e185671fc75b36952f"},{"sha":"e5f80f2a4f016bf724a1cfb580619d71c8fd39ec","author":{"name":"bors","email":"3a2c29237f73c7cf88424b80e427b1884f346b35@rust-lang.org"},"message":"Auto merge of #49834 - Zoxc:sync-trait-cache, r=nikomatsakis\n\nMake SelectionCache and EvaluationCache thread-safe\n\nSplit out from https://github.com/rust-lang/rust/pull/49558\n\nr? @nikomatsakis","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/e5f80f2a4f016bf724a1cfb580619d71c8fd39ec"},{"sha":"4537025c7193b4f1412807ab15f723f51ff0b01e","author":{"name":"Michael Woerister","email":"4fb647a2c3ead3c3f40f455abb861941f7d4ffb2@posteo"},"message":"Add comment about first element in CStore::metas.","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/4537025c7193b4f1412807ab15f723f51ff0b01e"},{"sha":"e350ba48ed80c000fd2d2b5ac37e53a9efe1f587","author":{"name":"Dylan MacKenzie","email":"5d4483fc792246eb91992181c647a19633e8e029@localhost.localdomain"},"message":"Use the \"Safety\" heading instead of \"Undefined Behavior\"","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/e350ba48ed80c000fd2d2b5ac37e53a9efe1f587"},{"sha":"7e5b9ac41e36b29d5208f4e5455aade07d4d107d","author":{"name":"Alex Crichton","email":"60c6d277a8bd81de7fdde19201bf9c58a3df08f4@alexcrichton.com"},"message":"ci: Compile LLVM with Clang 6.0.0\n\nCurrently on CI we predominately compile LLVM with the default system compiler\nwhich means gcc on Linux, some version of Clang on OSX, MSVC on Windows, and\ngcc on MinGW. This commit switches Linux, OSX, and Windows to all use Clang\n6.0.0 to build LLVM (aka the C/C++ compiler as part of the bootstrap). This\nlooks to generate faster code according to #49879 which translates to a faster\nrustc (as LLVM internally is faster)\n\nThe major changes here were to the containers that build Linux releases,\nbasically adding a new step that uses the previous gcc 4.8 compiler to compile\nthe next Clang 6.0.0 compiler. Otherwise the OSX and Windows scripts have been\nupdated to download precompiled versions of Clang 6 and configure the build to\nuse them.\n\nNote that `cc` was updated here to fix using `clang-cl` with `cc-rs` on MSVC, as\nwell as an update to `sccache` on Windows which was needed to correctly work\nwith `clang-cl`. Finally the MinGW compiler is entirely left out here\nintentionally as it's currently thought that Clang can't generate C++ code for\nMinGW and we need to use gcc, but this should be verified eventually.","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/7e5b9ac41e36b29d5208f4e5455aade07d4d107d"},{"sha":"8010604b2d888ac839147fe27de76cdcc713aa1b","author":{"name":"Michael Lamparski","email":"96cc43a3a4acefbed11bd4e8bd60c607ab7f2071@gmail.com"},"message":"move See also links to top","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/8010604b2d888ac839147fe27de76cdcc713aa1b"},{"sha":"b8eb91a5ade04804118d39a0f74ae908f33b6268","author":{"name":"Michael Lamparski","email":"96cc43a3a4acefbed11bd4e8bd60c607ab7f2071@gmail.com"},"message":"make std::str link into See also link\n\nalso make a drive-by typo fix","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/b8eb91a5ade04804118d39a0f74ae908f33b6268"},{"sha":"827251e92bef9bd613cf44e2dc074fa1dc71ea0f","author":{"name":"Dylan MacKenzie","email":"5d4483fc792246eb91992181c647a19633e8e029@localhost.localdomain"},"message":"Shorten ownership safety discussion in `read_volatile`\n\nNon-`Copy` types should not be in volatile memory.","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/827251e92bef9bd613cf44e2dc074fa1dc71ea0f"},{"sha":"9c4e5b3b6cbf9b31ac7bd74d760214e36e79bfff","author":{"name":"Mike Hommey","email":"9904419133015298990973ad253a390ae1d3133a@glandium.org"},"message":"Restore RawVec::reserve* documentation\n\nWhen the RawVec::try_reserve* methods were added, they took the place of\nthe ::reserve* methods in the source file, and new ::reserve* methods\nwrapping the new try_reserve* methods were created. But the\ndocumentation didn't move along, such that:\n - reserve_* methods are barely documented.\n - try_reserve_* methods have unmodified documentation from reserve_*,\n   such that their documentation indicate they are panicking/aborting.\n\nThis moves the documentation back to the right methods, with a\nplaceholder documentation for the try_reserve* methods.","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/9c4e5b3b6cbf9b31ac7bd74d760214e36e79bfff"},{"sha":"95d0b9e96795aea20ac4a1fad9251982714d3c55","author":{"name":"bors","email":"3a2c29237f73c7cf88424b80e427b1884f346b35@rust-lang.org"},"message":"Auto merge of #49729 - collin5:b48483, r=Mark-Simulacrum\n\n./x.py test should be able to run individual tests\n\nAllows user to be able to run individual tests by specifying filename i.e `./x.py test src/test/run-pass/foo.rs`\n\nFixes #48483","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/95d0b9e96795aea20ac4a1fad9251982714d3c55"},{"sha":"1fb17aba6921e80bd5ad20b85b5df5334a6e32b7","author":{"name":"Niko Matsakis","email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu"},"message":"generalize `blame_span`","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/1fb17aba6921e80bd5ad20b85b5df5334a6e32b7"},{"sha":"ed72950fdee7fe53cb52584c249d21fd03b0672e","author":{"name":"Niko Matsakis","email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu"},"message":"rework causal tracking to explore outlives relationships\n\nInstead of tracking the \"cause\" of each bit that gets added, try to\nrecover that by walking outlives relationships. This is currently\nimprecise, since it ignores the \"point\" where the outlives relationship\nis incurred -- but that's ok, since we're about to stop considering that\noverall in a later commit. This does seem to affect one error message\nnegatively, I didn't dig *too* hard to find out why.","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/ed72950fdee7fe53cb52584c249d21fd03b0672e"},{"sha":"accfdcc9055a1831f67db7affad5bb82752dabbf","author":{"name":"Niko Matsakis","email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu"},"message":"rename `add` to `add_element`","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/accfdcc9055a1831f67db7affad5bb82752dabbf"}]}
{"actor":{"display_login":"bors"}}