{"push_id":564403254,"size":40,"distinct_size":0,"ref":"refs/heads/auto","head":"aecae437e1bc2eeb0f8b6a4ba9afbb0cc8bd5352","before":"661a65e7931f7c9c27a86c56f0737b693d976c13","commits":[{"sha":"b2297fd710b9e0f860f8991b1f641d827f32e5da","author":{"email":"60c6d277a8bd81de7fdde19201bf9c58a3df08f4@alexcrichton.com","name":"Alex Crichton"},"message":"std: Add some missing stability attributes\n\n* Display::fmt is stable\n* Debug::fmt is stable\n* FromIterator::from_iter is stable\n* Peekable::peek is stable","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/b2297fd710b9e0f860f8991b1f641d827f32e5da"},{"sha":"72a8ed451ad7b0a6ef61b981a5d4f0061515425b","author":{"email":"d5e0892e7d66bcce47406a02632e7b4f50cda414@gmail.com","name":"Björn Steinbrink"},"message":"Avoid ptrtoint when checking if a pointer is null\n\nCasting the pointer to an integer requires a ptrtoint, while casting 0\nto a pointer is directly folded to a `null` value.","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/72a8ed451ad7b0a6ef61b981a5d4f0061515425b"},{"sha":"1a56a1a515ef2cda3425ff09bac9504a77616fec","author":{"email":"d5e0892e7d66bcce47406a02632e7b4f50cda414@gmail.com","name":"Björn Steinbrink"},"message":"Emit !nonnull metadata for loads of region and unique pointers\n\nThese pointers are never null, let's tell LLVM about it.","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/1a56a1a515ef2cda3425ff09bac9504a77616fec"},{"sha":"e49f6d6addf5fb1fd0abc7fa9b5c6b2e99ec28a7","author":{"email":"d5e0892e7d66bcce47406a02632e7b4f50cda414@gmail.com","name":"Björn Steinbrink"},"message":"Eliminate excessive null-checks from slice iterators\n\nThe data pointer used in the slice is never null, using assume() to tell\nLLVM about it gets rid of various unneeded null checks when iterating\nover the slice.\n\nSince the snapshot compiler is still using an older LLVM version, omit\nthe call in stage0, because compile times explode otherwise.\n\nBenchmarks from #18193\n````\nrunning 5 tests\ntest _range    ... bench:     33329 ns/iter (+/- 417)\ntest assembly  ... bench:     33299 ns/iter (+/- 58)\ntest enumerate ... bench:     33318 ns/iter (+/- 83)\ntest iter      ... bench:     33311 ns/iter (+/- 130)\ntest position  ... bench:     33300 ns/iter (+/- 47)\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 5 measured\n````\n\nFixes #18193","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/e49f6d6addf5fb1fd0abc7fa9b5c6b2e99ec28a7"},{"sha":"40b6e34240c6669fdf7fb1b83c3925b0becafd0e","author":{"email":"474ba67bdb289c6263b36dfd8a7bed6c85b04943@aatch.net","name":"James Miller"},"message":"Rc: Add assumptions that the pointer is non-null\n\nSince the snapshot compiler is still using an older LLVM version, omit\nthe call in stage0, because compile times explode otherwise.","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/40b6e34240c6669fdf7fb1b83c3925b0becafd0e"},{"sha":"3449751ff7fa21aedd1352cdbe9f7d77e2bc0d91","author":{"email":"df08b6c3d39c0bd2bfd5240cc44c0226f94909a7@gmail.com","name":"Valerii Hiora"},"message":"iOS: fixed build","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/3449751ff7fa21aedd1352cdbe9f7d77e2bc0d91"},{"sha":"88449a8f79d83c68c8e3a695653df6a4c63a84f4","author":{"email":"4c454f4838987ff4597729af9fca5350bc2a3c4c@gmail.com","name":"Alexis"},"message":"add naivest entry API to VecMap","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/88449a8f79d83c68c8e3a695653df6a4c63a84f4"},{"sha":"9a17f62947d0c079f1c877de4fe1dab5b2c500d9","author":{"email":"d5e0892e7d66bcce47406a02632e7b4f50cda414@gmail.com","name":"Björn Steinbrink"},"message":"Optimize rposition\n\nThe extra check caused by the expect() call can, in general, not be\noptimized away, because the length of the iterator is unknown at compile\ntime, causing a noticable slow-down. Since the check only triggers if\nthe element isn't actually found in the iterator, i.e. it isn't\nguaranteed to trigger for ill-behaved ExactSizeIterators, it seems\nreasonable to switch to an implementation that doesn't need the check\nand just always returns None if the value isn't found.\n\nBenchmark:\n````rust\nlet v: Vec<u8> = (0..1024*65).map(|_| 0).collect();\nb.iter(|| {\n    v.as_slice().iter().rposition(|&c| c == 1)\n});\n````\n\nBefore:\n````\ntest rposition  ... bench:     49939 ns/iter (+/- 23)\n````\n\nAfter:\n````\ntest rposition  ... bench:     33306 ns/iter (+/- 68)\n````","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/9a17f62947d0c079f1c877de4fe1dab5b2c500d9"},{"sha":"c9e1c445dbcbfc9c938488a79ef12595e0f99c8d","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"Allow closure arguments types to unify even if we can't fully resolve\na trait obligation. Partial fix for #16440 -- closure return types are\nnot handled yet.","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/c9e1c445dbcbfc9c938488a79ef12595e0f99c8d"},{"sha":"498595a3dc90b7df08e90b04278b4de33c5ab3cf","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"Teach project to unify the return type even if a precise match is not\npossible.  There is some amount of duplication as a result (similar to\nselect) -- I am not happy about this but not sure how to fix it\nwithout deeper rewrites.","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/498595a3dc90b7df08e90b04278b4de33c5ab3cf"},{"sha":"47f18659ff629792f49b5ed87e870687703831fe","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"Update compile-fail tests to use the expected type to force the\nclosure kind, thereby detecting what happens if there are\nmismatches. Simply removing the `:` annotations caused most of these\ntests to pass or produce other errors, because the inference would\nconvert the closure into a more appropriate kind. (The ability to\noverride the inference by using the expected type is an important\nbackdoor partly for this reason.)","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/47f18659ff629792f49b5ed87e870687703831fe"},{"sha":"04311341197ddabc420a8cffc0d26c12228d445b","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"Remove the explicit closure kind syntax from the parser and AST;\nupgrade the inference based on expected type so that it is able to\ninfer the fn kind in isolation even if the full signature is not\navailable (and we could perhaps do better still in some cases, such as\nextracting just the types of the arguments but not the return value).","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/04311341197ddabc420a8cffc0d26c12228d445b"},{"sha":"68ad6949d4c3e2160098c94007b9c48abc94aaad","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"Correct one case where the inference was detecting a looser result than the\nexplicit annotation, leading to \"extra `mut` declaration\" lint errors.","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/68ad6949d4c3e2160098c94007b9c48abc94aaad"},{"sha":"8ddcb06b1d021560bfe641c0dbc452a04e80388e","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"Update for new snapshot after rebasing.","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/8ddcb06b1d021560bfe641c0dbc452a04e80388e"},{"sha":"0b9e227a1697e22b21d947f36bf1bd7695971d8f","author":{"email":"903817dace3a69d815606c577db89775e2c7670b@gmail.com","name":"Manish Goregaokar"},"message":"Move stability pass after privacy pass","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/0b9e227a1697e22b21d947f36bf1bd7695971d8f"},{"sha":"d30f225b492163b14005d5069b7924f3fecf868c","author":{"email":"60c6d277a8bd81de7fdde19201bf9c58a3df08f4@alexcrichton.com","name":"Alex Crichton"},"message":"std: Remove `iter::ByRef` and generalize impls\n\nThis removes the `ByRef` iterator adaptor to stay in line with the changes to\n`std::io`. The `by_ref` method instead just returns `&mut Self`.\n\nThis also removes the implementation of `Iterator for &mut Iterator` and instead\ngeneralizes it to `Iterator for &mut I` where `I: Iterator + ?Sized`. The\n`Box<I>` implementations were also updated.\n\nThis is a breaking change due to the removal of the `std::iter::ByRef` type. All\nmentions of `ByRef<'a, T>` should be replaced with `&mut T` to migrate forward.\n\n[breaking-change]","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/d30f225b492163b14005d5069b7924f3fecf868c"},{"sha":"6ec5a0f62b3b153ef5846429ffe2f0bf0f9fc5d0","author":{"email":"903817dace3a69d815606c577db89775e2c7670b@gmail.com","name":"Manish Goregaokar"},"message":"Error when #![staged_api] crates are missing stability markers","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/6ec5a0f62b3b153ef5846429ffe2f0bf0f9fc5d0"},{"sha":"c6aaea67250d32bde3ef26b7c864c3d6c1e05726","author":{"email":"903817dace3a69d815606c577db89775e2c7670b@gmail.com","name":"Manish Goregaokar"},"message":"Fix some missing stability attrs","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/c6aaea67250d32bde3ef26b7c864c3d6c1e05726"},{"sha":"4aa661ab3608551edab18584b958d281f8e4c094","author":{"email":"903817dace3a69d815606c577db89775e2c7670b@gmail.com","name":"Manish Goregaokar"},"message":"Add test for missing stability checker","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/4aa661ab3608551edab18584b958d281f8e4c094"},{"sha":"b64572cefe9f37c58c07af745afc91bfd0303c30","author":{"email":"903817dace3a69d815606c577db89775e2c7670b@gmail.com","name":"Manish Goregaokar"},"message":"Add unmarked_api feature (fixes #21884)","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/b64572cefe9f37c58c07af745afc91bfd0303c30"}]}