{"push_id":705984671,"size":586,"distinct_size":276,"ref":"refs/heads/master","head":"21dd4e2a0627daa2f9023084e253e75ccfaa5137","before":"c78c0994b1df5e365058f301330d06fa035c3734","commits":[{"sha":"a118b936faa7f802c41214cb908622a7893bebfd","author":{"email":"fc98416393e540a30a9481888d92df1740bba982@gmail.com","name":"Mikhail Zabaluev"},"message":"Optimize Vec::from_iter and extend\n\nUse one loop, efficient for both sized and size-ignorant iterators\n(including iterators lying about their size).","distinct":true,"url":"https://api.github.com/repos/petrochenkov/rust/commits/a118b936faa7f802c41214cb908622a7893bebfd"},{"sha":"032804bf68e2ac13add895206f2173409acff836","author":{"email":"fc98416393e540a30a9481888d92df1740bba982@gmail.com","name":"Mikhail Zabaluev"},"message":"In Vec::from_iter, unroll the first iteration\n\nFor the first ever element to put into a vector, the branching\nconditions are more predictable.","distinct":true,"url":"https://api.github.com/repos/petrochenkov/rust/commits/032804bf68e2ac13add895206f2173409acff836"},{"sha":"f9b70acfd4167f5911c1be4e2dc960c370adb266","author":{"email":"fc98416393e540a30a9481888d92df1740bba982@gmail.com","name":"Mikhail Zabaluev"},"message":"Desugar the implementation of extend to work with Iterator\n\nImplement both Vec::from_iter and extend in terms of an internal\nmethod working with Iterator. Otherwise, the code below ends up\nusing two monomorphizations of extend, differing only in the\nimplementation of IntoIterator:\n\nlet mut v = Vector::from_iter(iterable1);\nv.extend(iterable2);","distinct":true,"url":"https://api.github.com/repos/petrochenkov/rust/commits/f9b70acfd4167f5911c1be4e2dc960c370adb266"},{"sha":"7b464d364b33915b88f67213a3329e0a3d997e4d","author":{"email":"fc98416393e540a30a9481888d92df1740bba982@gmail.com","name":"Mikhail Zabaluev"},"message":"Use while let","distinct":true,"url":"https://api.github.com/repos/petrochenkov/rust/commits/7b464d364b33915b88f67213a3329e0a3d997e4d"},{"sha":"47f9a6b3a3c706b863849deb6122ecf49ef5f5e3","author":{"email":"34c6fceca75e456f25e7e99531e2425c6c1de443@genodeftest.de","name":"Christian Stadelmann"},"message":"Add another security warning for using the SHA-2 implementation","distinct":false,"url":"https://api.github.com/repos/petrochenkov/rust/commits/47f9a6b3a3c706b863849deb6122ecf49ef5f5e3"},{"sha":"1cede0b0ef1d2747e9747a3f177ce83522d90a10","author":{"email":"9ce5770b3bb4b2a1d59be2d97e34379cd192299f@steveklabnik.com","name":"Steve Klabnik"},"message":"Fix section headers on Not Found page\n\nFixes #25794","distinct":false,"url":"https://api.github.com/repos/petrochenkov/rust/commits/1cede0b0ef1d2747e9747a3f177ce83522d90a10"},{"sha":"5d8e085369eabb6766b9ec9423716266719b1e34","author":{"email":"0c65ff5985da83989e6f1c7dddcde4aa06d8ed54@mathieudavid.org","name":"Mathieu David"},"message":"Proposal to explain the copy trait more clearly \n\nAs mentioned in #25893 the copy trait is not very well explained for beginners. There is no clear mention that all primitive types implement the copy trait and there are not a lot of examples. \r\n\r\nWith this change I try to make it more visible and understandable for new users. \r\n\r\nI myself have struggled with this, see [my question on stackoverflow](http://stackoverflow.com/questions/30540419/why-are-booleans-copyable-even-though-the-documentation-doesnt-indicate-that). And I want to make it more transparent for others. \r\n\r\nI filed issue #25893 but I thought that I could give it a shot myself to relieve some of the work from the devs :)\r\n\r\nIf it is not well written or there are some changes to be made before it can be merged, let me know.\r\n\r\nCheers,\r\nMathieu","distinct":false,"url":"https://api.github.com/repos/petrochenkov/rust/commits/5d8e085369eabb6766b9ec9423716266719b1e34"},{"sha":"ee4b58c7925a914abac8ebc7a0fc0be0cb6cb0c7","author":{"email":"9e860039b5685411aae444020cdc1df7766768c1@gmail.com","name":"frankamp"},"message":"Fixes consistency in before/after example\n\nThe doc indicates that you can replace 'before' with 'after' showing the use of try!. The two examples should be equivalent, but they are not.\r\n\r\nIn the File::create we were inducing a panic before in case of error, not propagating. It is important for newbies (like myself) to understand that try! propagates failures, while unwrap can induce a panic.\r\n\r\nThe other alternative is to make the 'before' File::create also manually handle Err like the other calls. Either way it would be consistent.","distinct":false,"url":"https://api.github.com/repos/petrochenkov/rust/commits/ee4b58c7925a914abac8ebc7a0fc0be0cb6cb0c7"},{"sha":"4d3cffa3cfff646fe707363ef9f2bd10f0d0bca7","author":{"email":"60c6d277a8bd81de7fdde19201bf9c58a3df08f4@alexcrichton.com","name":"Alex Crichton"},"message":"std: Fix unsoundness of std::thread::ScopedKey\n\nCurrently the compiler has no knowledge of `#[thread_local]` which forces users\nto take on two burdens of unsafety:\n\n* The lifetime of the borrow of a `#[thread_local]` static is **not** `'static`\n* Types in `static`s are required to be `Sync`\n\nThe thread-local modules mostly curb these facets of unsafety by only allowing\nvery limited scopes of borrows as well as allowing all types to be stored in a\nthread-local key (regardless of whether they are `Sync`) through an `unsafe\nimpl`.\n\nUnfortunately these measures have the consequence of being able to take the\naddress of the key itself and send it to another thread, allowing the same key\nto be accessed from two different threads. This is clearly unsafe, and this\ncommit fixes this problem with the same trick used by `LocalKey`, which is to\nhave an indirect function call to find the address of the *current thread's*\nthread local. This way the address of thread local keys can safely be sent among\nthreads as their lifetime truly is `'static`.\n\nThis commit will reduce the performance of cross-crate scoped thread locals as\nit now requires an indirect function call, but this can likely be overcome in a\nfuture commit.\n\nCloses #25894","distinct":true,"url":"https://api.github.com/repos/petrochenkov/rust/commits/4d3cffa3cfff646fe707363ef9f2bd10f0d0bca7"},{"sha":"37dd7a24949813a48c8e2be7178a3c0b5ba5c998","author":{"email":"e7b73ca0953a5d12982870cd6d45d044b17f68d7@gmail.com","name":"Tshepang Lekhonkhobe"},"message":"book: some tiny improvements","distinct":false,"url":"https://api.github.com/repos/petrochenkov/rust/commits/37dd7a24949813a48c8e2be7178a3c0b5ba5c998"},{"sha":"dc99fdbd664a936d5f31783774a1362491b31e14","author":{"email":"e7b73ca0953a5d12982870cd6d45d044b17f68d7@gmail.com","name":"Tshepang Lekhonkhobe"},"message":"book: update error message","distinct":false,"url":"https://api.github.com/repos/petrochenkov/rust/commits/dc99fdbd664a936d5f31783774a1362491b31e14"},{"sha":"09c6203ad6508dcf3374cddfc2778b861cd9a6be","author":{"email":"e7b73ca0953a5d12982870cd6d45d044b17f68d7@gmail.com","name":"Tshepang Lekhonkhobe"},"message":"booK: Float no longer exists","distinct":false,"url":"https://api.github.com/repos/petrochenkov/rust/commits/09c6203ad6508dcf3374cddfc2778b861cd9a6be"},{"sha":"5af8b5f72b6cafc4cbe88e449cd53fefbc54c34d","author":{"email":"05430c377c288daec25b32df3e9722f0f72683cc@gmail.com","name":"Seo Sanghyeon"},"message":"Extend dead code lint to detect more unused enum variants","distinct":true,"url":"https://api.github.com/repos/petrochenkov/rust/commits/5af8b5f72b6cafc4cbe88e449cd53fefbc54c34d"},{"sha":"6a92cf9ace765a590991e4a1688164f4ed54194f","author":{"email":"dfd7670d8a610dbbf160340b21ae89eb43ca311a@gmail.com","name":"ben fleis"},"message":"Add note about expression vs. statement to dining philosphers problem,\nto address https://github.com/rust-lang/rust/issues/25488 .","distinct":false,"url":"https://api.github.com/repos/petrochenkov/rust/commits/6a92cf9ace765a590991e4a1688164f4ed54194f"},{"sha":"cb7d91488043df645b23a9ffd25997386d00e425","author":{"email":"60c6d277a8bd81de7fdde19201bf9c58a3df08f4@alexcrichton.com","name":"Alex Crichton"},"message":"mk: Compile C code on MSVC with /MD\n\nOn MSVC there are two ways that the CRT can be linked, either statically or\ndynamically. Each object file produced by the compiler is compiled against\nmsvcrt (a dll) or libcmt (a static library). When the linker is dealing with\nmore than one object file, it requires that all object files link to the same\nCRT, or else the linker will spit out some errors.\n\nFor now, compile code with `-MD` as it seems to appear more often in C libraries\nso we'll stick with the same trend.","distinct":false,"url":"https://api.github.com/repos/petrochenkov/rust/commits/cb7d91488043df645b23a9ffd25997386d00e425"},{"sha":"f9bfebb79087e6aa37037561aa7b1748d24f53c9","author":{"email":"9cb447a6d5f55adc4cc62c096c16be35bd218b9e@gmail.com","name":"Akshay Chiwhane"},"message":"Clarified naming convention for Cargo\n\nAdded a sentence that tells the user that using main.rs and/or lib.rs is required for Cargo.","distinct":false,"url":"https://api.github.com/repos/petrochenkov/rust/commits/f9bfebb79087e6aa37037561aa7b1748d24f53c9"},{"sha":"629be845fdf58d34f5dc3bd1674ea57ebf3c9380","author":{"email":"9cb447a6d5f55adc4cc62c096c16be35bd218b9e@gmail.com","name":"Akshay Chiwhane"},"message":"edit for clarity and grammar","distinct":false,"url":"https://api.github.com/repos/petrochenkov/rust/commits/629be845fdf58d34f5dc3bd1674ea57ebf3c9380"},{"sha":"455b93151dc3cedfdc7af5e066627da72a8532c4","author":{"email":"9cb447a6d5f55adc4cc62c096c16be35bd218b9e@gmail.com","name":"Akshay Chiwhane"},"message":"fix typo","distinct":false,"url":"https://api.github.com/repos/petrochenkov/rust/commits/455b93151dc3cedfdc7af5e066627da72a8532c4"},{"sha":"ac3301ec3b71daee43a0ad5d671767d44d3280a4","author":{"email":"9cb447a6d5f55adc4cc62c096c16be35bd218b9e@gmail.com","name":"Akshay Chiwhane"},"message":"fix some errors","distinct":false,"url":"https://api.github.com/repos/petrochenkov/rust/commits/ac3301ec3b71daee43a0ad5d671767d44d3280a4"},{"sha":"01dee1b77e3f594256fc380c348f7ba8fcff41db","author":{"email":"7b617481dc67255f8ac089bf33cb7fadcdc5dda1@gmail.com","name":"Eduard Burtescu"},"message":"Allow nested generics for the last field of structs in unsizing.","distinct":false,"url":"https://api.github.com/repos/petrochenkov/rust/commits/01dee1b77e3f594256fc380c348f7ba8fcff41db"}]}