{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":349085303,"defaultBranch":"master","name":"rust","ownerLogin":"ChayimFriedman2","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2021-03-18T13:31:44.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/24700207?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1724188236.0","currentOid":""},"activityList":{"items":[{"before":"5601d14249818d952da612fec481b7af3ed03a39","after":"0d634185dfddefe09047881175f35c65d68dcff1","ref":"refs/heads/master","pushedAt":"2024-08-30T14:35:54.000Z","pushType":"push","commitsCount":655,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Auto merge of #129750 - GuillaumeGomez:rollup-gphsb7y, r=GuillaumeGomez\n\nRollup of 7 pull requests\n\nSuccessful merges:\n\n - #123940 (debug-fmt-detail option)\n - #128166 (Improved `checked_isqrt` and `isqrt` methods)\n - #128970 (Add `-Zlint-llvm-ir`)\n - #129316 (riscv64imac: allow shadow call stack sanitizer)\n - #129690 (Add `needs-unwind` compiletest directive to `libtest-thread-limit` and replace some `Path` with `path` in `run-make`)\n - #129732 (Add `unreachable_pub`, round 3)\n - #129743 (Fix rustdoc clippy lints)\n\nr? `@ghost`\n`@rustbot` modify labels: rollup","shortMessageHtmlLink":"Auto merge of rust-lang#129750 - GuillaumeGomez:rollup-gphsb7y, r=Gui…"}},{"before":"2ba55e33e8f7715565bab4c0c042f43b39481787","after":"37732f57447736596d039fa4a37158b723c6968f","ref":"refs/heads/more-lazy-methods","pushedAt":"2024-08-24T23:04:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Implement ACP 429: add `LazyCell/Lock::get[_mut]()`, `DerefMut` and `force_mut()`\n\nIn the implementation of `force_mut()`, I choose performance over safety. For `LazyLock` this isn't really a choice; the code has to be unsafe. But for `LazyCell`, we can have a full-safe implementation, but it will be a bit less performant, so I went with the unsafe approach.\n\n`DerefMut` is instantly stable, as a trait impl; as such, I decided to also instantly stabilize `force_mut()`, since it makes little sense to have one but not the other.","shortMessageHtmlLink":"Implement ACP 429: add LazyCell/Lock::get[_mut]()
, DerefMut
and `…"}},{"before":null,"after":"2ba55e33e8f7715565bab4c0c042f43b39481787","ref":"refs/heads/more-lazy-methods","pushedAt":"2024-08-20T21:10:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Implement ACP 429: add `LazyCell/Lock::get[_mut]()`, `DerefMut` and `force_mut()`\n\nIn the implementation of `force_mut()`, I choose performance over safety. For `LazyLock` this isn't really a choice; the code has to be unsafe. But for `LazyCell`, we can have a full-safe implementation, but it will be a bit less performant, so I went with the unsafe approach.\n\n`DerefMut` is instantly stable, as a trait impl; as such, I decided to also instantly stabilize `force_mut()`, since it makes little sense to have one but not the other.","shortMessageHtmlLink":"Implement ACP 429: add LazyCell/Lock::get[_mut]()
, DerefMut
and `…"}},{"before":"ce20e15f01a9dcc4543e8d52b4b281df6c4dbb8e","after":"5601d14249818d952da612fec481b7af3ed03a39","ref":"refs/heads/master","pushedAt":"2024-08-19T20:42:15.000Z","pushType":"push","commitsCount":1108,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Auto merge of #128588 - onur-ozkan:clean-up-bootstrap-internals, r=albertlarsan68\n\nbootstrap minor improvements and clean-ups\n\n3rd commit fixes https://github.com/rust-lang/rust/issues/128553#issuecomment-2266119948.","shortMessageHtmlLink":"Auto merge of rust-lang#128588 - onur-ozkan:clean-up-bootstrap-intern…"}},{"before":"89e1d44bfa4cbed63d21244bd54b87b168916d8d","after":"d19a5067f77ec8f178ed185be997215a6389901a","ref":"refs/heads/lint-transmute-unsafe-cell","pushedAt":"2024-08-07T21:10:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Lint against &T to &mut T and &T to &UnsafeCell transmutes\n\nThis adds the lint against `&T`->`&UnsafeCell` transmutes, and also check in struct fields, and reference casts (`&*(&a as *const u8 as *const UnsafeCell)`).\n\nThe code is quite complex; I've tried my best to simplify and comment it.\n\nThis is missing one parts: array transmutes. When transmuting an array, this only consider the first element. The reason for that is that the code is already quite complex, and I didn't want to complicate it more.\nThis catches the most common pattern of transmuting an array into an array of the same length with type of the same size; more complex cases are likely not properly handled.\nWe could take a bigger sample, for example the first and last elements to increase the chance that the lint will catch mistakes, but then the runtime complexity becomes exponential with the nesting of the arrays (`[[[[[T; 2]; 2]; 2]; 2]; 2]` has complexity of O(2**5), for instance).","shortMessageHtmlLink":"Lint against &T to &mut T and &T to &UnsafeCell<T> transmutes"}},{"before":"4db3d12e6f395babed53dee1d209a5c8699a5ae6","after":"ce20e15f01a9dcc4543e8d52b4b281df6c4dbb8e","ref":"refs/heads/master","pushedAt":"2024-08-07T20:43:34.000Z","pushType":"push","commitsCount":809,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Auto merge of #126158 - Urgau:disallow-cfgs, r=petrochenkov\n\nDisallow setting some built-in cfg via set the command-line\n\nThis PR disallow users from setting some built-in cfg via set the command-line in order to prevent incoherent state, eg. `windows` cfg active but target is Linux based.\n\nThis implements MCP https://github.com/rust-lang/compiler-team/issues/610, with the caveat that we disallow cfgs no matter if they make sense or not, since I don't think it's useful to allow users to set a cfg that will be set anyway. It also complicates the implementation.\n\n------\n\nThe `explicit_builtin_cfgs_in_flags` lint detects builtin cfgs set via the `--cfg` flag.\n\n*(deny-by-default)*\n\n### Example\n\n```text\nrustc --cfg unix\n```\n\n```rust,ignore (needs command line option)\nfn main() {}\n```\n\nThis will produce:\n\n```text\nerror: unexpected `--cfg unix` flag\n |\n = note: config `unix` is only supposed to be controlled by `--target`\n = note: manually setting a built-in cfg can and does create incoherent behaviours\n = note: `#[deny(explicit_builtin_cfgs_in_flags)]` on by default\n```\n\n### Explanation\n\nSetting builtin cfgs can and does produce incoherent behaviour, it's better to the use the appropriate `rustc` flag that controls the config. For example setting the `windows` cfg but on Linux based target.\n\n-----\n\nr? `@petrochenkov`\ncc `@jyn514`\n\ntry-job: aarch64-apple\ntry-job: test-various\ntry-job: armhf-gnu\ntry-job: x86_64-msvc\ntry-job: x86_64-mingw\ntry-job: i686-msvc\ntry-job: i686-mingw\ntry-job: x86_64-gnu-llvm-17\ntry-job: dist-various-1","shortMessageHtmlLink":"Auto merge of rust-lang#126158 - Urgau:disallow-cfgs, r=petrochenkov"}},{"before":"31718f0b7fff09bb8b941cc37fcefb690305de8e","after":null,"ref":"refs/heads/refmut-sync-1","pushedAt":"2024-08-04T10:36:26.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"}},{"before":"d2eb2bb8548e97e29abfeab1825c006c5ba02efc","after":null,"ref":"refs/heads/patch-2","pushedAt":"2024-08-04T05:52:32.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"}},{"before":"4df5459dd1d65cf15cd9fb8514d11ffbec611d2b","after":null,"ref":"refs/heads/patch-4","pushedAt":"2024-08-04T05:49:19.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"}},{"before":"cc72a92133f6fc5b779a9ce9a9931d73d3e6d31c","after":"89e1d44bfa4cbed63d21244bd54b87b168916d8d","ref":"refs/heads/lint-transmute-unsafe-cell","pushedAt":"2024-08-03T22:00:44.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Lint against &T to &mut T and &T to &UnsafeCell transmutes\n\nThis adds the lint against `&T`->`&UnsafeCell` transmutes, and also check in struct fields, and reference casts (`&*(&a as *const u8 as *const UnsafeCell)`).\n\nThe code is quite complex; I've tried my best to simplify and comment it.\n\nThis is missing one parts: array transmutes. When transmuting an array, this only consider the first element. The reason for that is that the code is already quite complex, and I didn't want to complicate it more.\nThis catches the most common pattern of transmuting an array into an array of the same length with type of the same size; more complex cases are likely not properly handled.\nWe could take a bigger sample, for example the first and last elements to increase the chance that the lint will catch mistakes, but then the runtime complexity becomes exponential with the nesting of the arrays (`[[[[[T; 2]; 2]; 2]; 2]; 2]` has complexity of O(2**5), for instance).","shortMessageHtmlLink":"Lint against &T to &mut T and &T to &UnsafeCell<T> transmutes"}},{"before":"59c22c3a03fe9b7700839b0b4e4815e793aecf55","after":"cc72a92133f6fc5b779a9ce9a9931d73d3e6d31c","ref":"refs/heads/lint-transmute-unsafe-cell","pushedAt":"2024-07-29T23:10:11.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Lint against &T to &mut T and &T to &UnsafeCell transmutes\n\nThis adds the lint against `&T`->`&UnsafeCell` transmutes, and also check in struct fields, and reference casts (`&*(&a as *const u8 as *const UnsafeCell)`).\n\nThe code is quite complex; I've tried my best to simplify and comment it.\n\nThis is missing one parts: array transmutes. When transmuting an array, this only consider the first element. The reason for that is that the code is already quite complex, and I didn't want to complicate it more.\nThis catches the most common pattern of transmuting an array into an array of the same length with type of the same size; more complex cases are likely not properly handled.\nWe could take a bigger sample, for example the first and last elements to increase the chance that the lint will catch mistakes, but then the runtime complexity becomes exponential with the nesting of the arrays (`[[[[[T; 2]; 2]; 2]; 2]; 2]` has complexity of O(2**5), for instance).","shortMessageHtmlLink":"Lint against &T to &mut T and &T to &UnsafeCell<T> transmutes"}},{"before":"b62dc4c4da3fd458b264469d86506c3df9f1c199","after":"59c22c3a03fe9b7700839b0b4e4815e793aecf55","ref":"refs/heads/lint-transmute-unsafe-cell","pushedAt":"2024-07-29T21:44:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Lint against &T to &mut T and &T to &UnsafeCell transmutes\n\nThis adds the lint against `&T`->`&UnsafeCell` transmutes, and also check in struct fields, and reference casts (`&*(&a as *const u8 as *const UnsafeCell)`).\n\nThe code is quite complex; I've tried my best to simplify and comment it.\n\nThis is missing one parts: array transmutes. When transmuting an array, this only consider the first element. The reason for that is that the code is already quite complex, and I didn't want to complicate it more.\nThis catches the most common pattern of transmuting an array into an array of the same length with type of the same size; more complex cases are likely not properly handled.\nWe could take a bigger sample, for example the first and last elements to increase the chance that the lint will catch mistakes, but then the runtime complexity becomes exponential with the nesting of the arrays (`[[[[[T; 2]; 2]; 2]; 2]; 2]` has complexity of O(2**5), for instance).","shortMessageHtmlLink":"Lint against &T to &mut T and &T to &UnsafeCell<T> transmutes"}},{"before":"5c1d66e45d055cd7afff125c459079017e28d194","after":"b62dc4c4da3fd458b264469d86506c3df9f1c199","ref":"refs/heads/lint-transmute-unsafe-cell","pushedAt":"2024-07-29T21:06:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Lint against &T to &mut T and &T to &UnsafeCell transmutes\n\nThis adds the lint against `&T`->`&UnsafeCell` transmutes, and also check in struct fields, and reference casts (`&*(&a as *const u8 as *const UnsafeCell)`).\n\nThe code is quite complex; I've tried my best to simplify and comment it.\n\nThis is missing one parts: array transmutes. When transmuting an array, this only consider the first element. The reason for that is that the code is already quite complex, and I didn't want to complicate it more.\nThis catches the most common pattern of transmuting an array into an array of the same length with type of the same size; more complex cases are likely not properly handled.\nWe could take a bigger sample, for example the first and last elements to increase the chance that the lint will catch mistakes, but then the runtime complexity becomes exponential with the nesting of the arrays (`[[[[[T; 2]; 2]; 2]; 2]; 2]` has complexity of O(2**5), for instance).","shortMessageHtmlLink":"Lint against &T to &mut T and &T to &UnsafeCell<T> transmutes"}},{"before":"d20e89c0e3b5ce5de2edeae47e2f697f2baf72ee","after":"5c1d66e45d055cd7afff125c459079017e28d194","ref":"refs/heads/lint-transmute-unsafe-cell","pushedAt":"2024-07-29T16:01:45.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Lint against &T to &mut T and &T to &UnsafeCell transmutes\n\nThis adds the lint against `&T`->`&UnsafeCell` transmutes, and also check in struct fields, and reference casts (`&*(&a as *const u8 as *const UnsafeCell)`).\n\nThe code is quite complex; I've tried my best to simplify and comment it.\n\nThis is missing one parts: array transmutes. When transmuting an array, this only consider the first element. The reason for that is that the code is already quite complex, and I didn't want to complicate it more.\nThis catches the most common pattern of transmuting an array into an array of the same length with type of the same size; more complex cases are likely not properly handled.\nWe could take a bigger sample, for example the first and last elements to increase the chance that the lint will catch mistakes, but then the runtime complexity becomes exponential with the nesting of the arrays (`[[[[[T; 2]; 2]; 2]; 2]; 2]` has complexity of O(2**5), for instance).","shortMessageHtmlLink":"Lint against &T to &mut T and &T to &UnsafeCell<T> transmutes"}},{"before":"f27dba07316edd3541a53646ed1bf956a5a64ca4","after":"d20e89c0e3b5ce5de2edeae47e2f697f2baf72ee","ref":"refs/heads/lint-transmute-unsafe-cell","pushedAt":"2024-07-29T15:58:27.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Lint against &T to &mut T and &T to &UnsafeCell transmutes\n\nThis adds the lint against `&T`->`&UnsafeCell` transmutes, and also check in struct fields, and reference casts (`&*(&a as *const u8 as *const UnsafeCell)`).\n\nThe code is quite complex; I've tried my best to simplify and comment it.\n\nThis is missing one parts: array transmutes. When transmuting an array, this only consider the first element. The reason for that is that the code is already quite complex, and I didn't want to complicate it more.\nThis catches the most common pattern of transmuting an array into an array of the same length with type of the same size; more complex cases are likely not properly handled.\nWe could take a bigger sample, for example the first and last elements to increase the chance that the lint will catch mistakes, but then the runtime complexity becomes exponential with the nesting of the arrays (`[[[[[T; 2]; 2]; 2]; 2]; 2]` has complexity of O(2**5), for instance).","shortMessageHtmlLink":"Lint against &T to &mut T and &T to &UnsafeCell<T> transmutes"}},{"before":"78c857394ec8c01f06cb1df260c51178180a40e5","after":"4db3d12e6f395babed53dee1d209a5c8699a5ae6","ref":"refs/heads/master","pushedAt":"2024-07-29T15:53:37.000Z","pushType":"push","commitsCount":99,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Auto merge of #128265 - DianQK:instsimplify-before-inline, r=saethlin\n\n Perform instsimplify before inline to eliminate some trivial calls\n\nI am currently working on #128081. In the current pipeline, we can get the following clone statements ([godbolt](https://rust.godbolt.org/z/931316fhP)):\n\n```\n bb0: {\n StorageLive(_2);\n _2 = ((*_1).0: i32);\n StorageLive(_3);\n _3 = ((*_1).1: u64);\n _0 = Foo { a: move _2, b: move _3 };\n StorageDead(_3);\n StorageDead(_2);\n return;\n }\n```\n\nAnalyzing such statements will be simple and fast. We don't need to consider branches or some interfering statements. However, this requires us to run `InstSimplify`, `ReferencePropagation`, and `SimplifyCFG` at least once. I can introduce a new pass, but I think the best place for it would be within `InstSimplify`.\n\nI put `InstSimplify` before `Inline`, which takes some of the burden away from `Inline`.\n\nr? `@saethlin`","shortMessageHtmlLink":"Auto merge of rust-lang#128265 - DianQK:instsimplify-before-inline, r…"}},{"before":"0e4da4e0c7875c38ac2e2bd8f30ffb0675a92a55","after":"f27dba07316edd3541a53646ed1bf956a5a64ca4","ref":"refs/heads/lint-transmute-unsafe-cell","pushedAt":"2024-07-29T15:48:21.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Lint against &T to &mut T and &T to &UnsafeCell transmutes\n\nThis adds the lint against `&T`->`&UnsafeCell` transmutes, and also check in struct fields, and reference casts (`&*(&a as *const u8 as *const UnsafeCell)`).\n\nThe code is quite complex; I've tried my best to simplify and comment it.\n\nThis is missing one parts: array transmutes. When transmuting an array, this only consider the first element. The reason for that is that the code is already quite complex, and I didn't want to complicate it more.\nThis catches the most common pattern of transmuting an array into an array of the same length with type of the same size; more complex cases are likely not properly handled.\nWe could take a bigger sample, for example the first and last elements to increase the chance that the lint will catch mistakes, but then the runtime complexity becomes exponential with the nesting of the arrays (`[[[[[T; 2]; 2]; 2]; 2]; 2]` has complexity of O(2**5), for instance).","shortMessageHtmlLink":"Lint against &T to &mut T and &T to &UnsafeCell<T> transmutes"}},{"before":"54be9ad5eb47207d155904f6c912a9526133f75f","after":"78c857394ec8c01f06cb1df260c51178180a40e5","ref":"refs/heads/master","pushedAt":"2024-07-28T19:02:22.000Z","pushType":"push","commitsCount":370,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Auto merge of #128301 - matthiaskrgr:rollup-9fyf587, r=matthiaskrgr\n\nRollup of 3 pull requests\n\nSuccessful merges:\n\n - #125889 (Add migration lint for 2024 prelude additions)\n - #128215 (Update the reference)\n - #128263 (rustdoc: use strategic ThinVec/Box to shrink `clean::ItemKind`)\n\nr? `@ghost`\n`@rustbot` modify labels: rollup","shortMessageHtmlLink":"Auto merge of rust-lang#128301 - matthiaskrgr:rollup-9fyf587, r=matth…"}},{"before":null,"after":"3b9517df220fad90757dceea36a96ef09d6005e5","ref":"refs/heads/stabilize-get_many_mut","pushedAt":"2024-07-28T19:02:04.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Stabilize `<[T]>::get_many_mut()`","shortMessageHtmlLink":"Stabilize <[T]>::get_many_mut()
"}},{"before":"6ba80a9f8dec0dc71a8c041c59f8363916a0d09d","after":"54be9ad5eb47207d155904f6c912a9526133f75f","ref":"refs/heads/master","pushedAt":"2024-07-25T15:19:17.000Z","pushType":"push","commitsCount":1914,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Auto merge of #128102 - Oneirical:real-testate, r=Kobzol\n\nMigrate `extern-diff-internal-name`, `extern-multiple-copies` and `extern-multiple-copies2` `run-make` tests to rmake\n\nPart of #121876 and the associated [Google Summer of Code project](https://blog.rust-lang.org/2024/05/01/gsoc-2024-selected-projects.html).\n\nPlease try:\n\ntry-job: test-various","shortMessageHtmlLink":"Auto merge of rust-lang#128102 - Oneirical:real-testate, r=Kobzol"}},{"before":"54556f49d368ba96a92fd6ec352cf6b12e9542ef","after":null,"ref":"refs/heads/extend-trusted","pushedAt":"2024-07-07T14:07:55.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"}},{"before":"e59f2c544a0b0319c5e576e5b010afffa1b5c861","after":"6ba80a9f8dec0dc71a8c041c59f8363916a0d09d","ref":"refs/heads/master","pushedAt":"2024-07-07T07:38:20.000Z","pushType":"push","commitsCount":6078,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Auto merge of #126987 - petrochenkov:atvisord2, r=pnkfelix\n\nout_of_scope_macro_calls: Detect calls inside attributes more precisely\n\nFixes https://github.com/rust-lang/rust/issues/126984.","shortMessageHtmlLink":"Auto merge of rust-lang#126987 - petrochenkov:atvisord2, r=pnkfelix"}},{"before":"c4bfa059a05b5817c59804ae88643a3988f70bb2","after":"54556f49d368ba96a92fd6ec352cf6b12e9542ef","ref":"refs/heads/extend-trusted","pushedAt":"2024-07-07T03:59:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Specialize `TrustedLen` for `Iterator::unzip()`\n\nDon't check the capacity every time (and also for `Extend` for tuples, as this is how `unzip()` is implemented).\n\nI did this with an unsafe method on `Extend` that doesn't check for growth (`extend_one_unchecked()`). I've marked it as perma-unstable currently, although we may want to expose it in the future so collections outside of std can benefit from it. Then specialize `Extend for (A, B)` for `TrustedLen` to call it.\n\nIt may seem that an alternative way of implementing this is to have a semi-public trait (`#[doc(hidden)]` public, so collections outside of core can implement it) for `extend()` inside tuples, and specialize it from collections. However, it is impossible due to limitations of `min_specialization`.\n\nA concern that may arise with the current approach is that implementing `extend_one_unchecked()` correctly must also incur implementing `extend_reserve()`, otherwise you can have UB. This is a somewhat non-local safety invariant. However, I believe this is fine, since to have actual UB you must have unsafe code inside your `extend_one_unchecked()` that makes incorrect assumption, *and* not implement `extend_reserve()`. I've also documented this requirement.","shortMessageHtmlLink":"Specialize TrustedLen
for Iterator::unzip()
"}},{"before":"8df7e723ea729a7f917501cc2d91d640b7021373","after":"e59f2c544a0b0319c5e576e5b010afffa1b5c861","ref":"refs/heads/master","pushedAt":"2024-04-26T04:14:45.000Z","pushType":"push","commitsCount":2564,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Auto merge of #124388 - compiler-errors:rollup-v17b8fm, r=compiler-errors\n\nRollup of 4 pull requests\n\nSuccessful merges:\n\n - #124076 (Stablise io_error_downcast)\n - #124378 (Keep the LIB env var in the compiler-builtins test)\n - #124379 (Remove special-casing for `SimplifiedType` for next solver)\n - #124381 (Renamed `DerivedObligation` to `WellFormedDeriveObligation`)\n\nr? `@ghost`\n`@rustbot` modify labels: rollup","shortMessageHtmlLink":"Auto merge of rust-lang#124388 - compiler-errors:rollup-v17b8fm, r=co…"}},{"before":"6916999819c8a0094093e5b07063930b3c1c0226","after":"44c00878a0fbc4c3c552afd61f00a602205d22e2","ref":"refs/heads/nonworking-tuple-extend-spec","pushedAt":"2024-04-10T14:21:16.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Specialize `TrustedLen` for `Iterator::unzip()`\n\nDon't check the capacity every time (and also for `Extend` for tuples, as this is how `unzip()` is implemented).\n\nI did this with a semi-public (`#[doc(hidden)]` public, so collections outside of core can implement it) specialization trait that has a method (`extend_one_unchecked()`) that doesn't check for growth. Then specialize `Extend for (A, B)` for `TrustedLen` to call it, and specialize it for collections (only `Vec` and `VecDequq` from the collection in the standard library could benefit from this)\n\nAn alternative way of implementing this is to have this method on `Extend` directly, but this was rejected by @the8472 in a review (https://github.com/rust-lang/rust/pull/123253#discussion_r1556373831).\n\nI didn't mark the trait as unsafe; a concern that may arise from that is that implementing `extend_one_unchecked()` correctly must also incur implementing `extend_reserve()`, otherwise you can have UB. This is a somewhat non-local safety invariant. However, I believe this is fine, since to have actual UB you must have unsafe code inside your `extend_one_unchecked()` that makes incorrect assumption, *and* not implement `extend_reserve()`. I've also documented this requirement.","shortMessageHtmlLink":"Specialize TrustedLen
for Iterator::unzip()
"}},{"before":null,"after":"6916999819c8a0094093e5b07063930b3c1c0226","ref":"refs/heads/nonworking-tuple-extend-spec","pushedAt":"2024-04-10T14:08:03.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Specialize `TrustedLen` for `Iterator::unzip()`\n\nDon't check the capacity every time (and also for `Extend` for tuples, as this is how `unzip()` is implemented).\n\nI did this with a semi-public (`#[doc(hidden)]` public, so collections outside of core can implement it) specialization trait that has a method (`extend_one_unchecked()`) that doesn't check for growth. Then specialize `Extend for (A, B)` for `TrustedLen` to call it, and specialize it for collections (only `Vec` and `VecDequq` from the collection in the standard library could benefit from this)\n\nAn alternative way of implementing this is to have this method on `Extend` directly, but this was rejected by @the8472 in a review (https://github.com/rust-lang/rust/pull/123253#discussion_r1556373831).\n\nI didn't mark the trait as unsafe; a concern that may arise from that is that implementing `extend_one_unchecked()` correctly must also incur implementing `extend_reserve()`, otherwise you can have UB. This is a somewhat non-local safety invariant. However, I believe this is fine, since to have actual UB you must have unsafe code inside your `extend_one_unchecked()` that makes incorrect assumption, *and* not implement `extend_reserve()`. I've also documented this requirement.","shortMessageHtmlLink":"Specialize TrustedLen
for Iterator::unzip()
"}},{"before":null,"after":"c4bfa059a05b5817c59804ae88643a3988f70bb2","ref":"refs/heads/extend-trusted","pushedAt":"2024-03-31T00:22:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Specialize `TrustedLen` for `Iterator::unzip()`\n\nDon't check the capacity every time (and also for `Extend` for tuples, as this is how `unzip()` is implemented).\n\nI did this with an unsafe method on `Extend` that doesn't check for growth (`extend_one_unchecked()`). I've marked it as perma-unstable currently, although we may want to expose it in the future so collections outside of std can benefit from it. Then specialize `Extend for (A, B)` for `TrustedLen` to call it.\n\nAn alternative way of implementing this is to have a semi-public trait (`#[doc(hidden)]` public, so collections outside of core can implement it) for `extend()` inside tuples, and specialize it from collections. However:\n\n 1. This looks more complex to me.\n 2. This prohibits the option of exposing this somewhen to collections outside of std, as we never expose specializations.\n\nA concern that may arise with the current approach is that implementing `extend_one_unchecked()` correctly must also incur implementing `extend_reserve()`, otherwise you can have UB. This is a somewhat non-local safety invariant. However, I believe this is fine, since to have actual UB you must have unsafe code inside your `extend_one_unchecked()` that makes incorrect assumption, *and* not implement `extend_reserve()`. I've also documented this requirement.","shortMessageHtmlLink":"Specialize TrustedLen
for Iterator::unzip()
"}},{"before":"71a7b66f20c551f640f2f382bc7e7923ba0a5dab","after":"8df7e723ea729a7f917501cc2d91d640b7021373","ref":"refs/heads/master","pushedAt":"2024-03-30T22:41:04.000Z","pushType":"push","commitsCount":3458,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Auto merge of #99322 - GKFX:const-int-parse, r=Mark-Simulacrum\n\nMake {integer}::from_str_radix constant\n\nThis commit makes FromStr on integers constant so that `const x: u32 = \"23\".parse();` works. More practical use-case is with environment variables at build time as discussed in https://github.com/rust-lang/rfcs/issues/1907.\n\nTracking issue #59133.\n\nACP: https://github.com/rust-lang/libs-team/issues/74","shortMessageHtmlLink":"Auto merge of rust-lang#99322 - GKFX:const-int-parse, r=Mark-Simulacrum"}},{"before":"f440b5f0ea042cb2087a36631b20878f9847ee28","after":"71a7b66f20c551f640f2f382bc7e7923ba0a5dab","ref":"refs/heads/master","pushedAt":"2024-02-29T14:50:41.000Z","pushType":"push","commitsCount":7701,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Auto merge of #121790 - jhpratt:rollup-yocg203, r=jhpratt\n\nRollup of 10 pull requests\n\nSuccessful merges:\n\n - #119748 (Increase visibility of `join_path` and `split_paths`)\n - #120291 (Have `String` use `SliceIndex` impls from `str`)\n - #121723 (Two diagnostic things)\n - #121740 (Changing some attributes to only_local.)\n - #121745 (Deeply normalize obligations in `refining_impl_trait`)\n - #121748 (Restore the standard library review rotation to its former glory)\n - #121768 (Implement unwind safety for Condvar on all platforms )\n - #121777 (Fix typo in `rustc_passes/messages.ftl`)\n - #121778 (Document potential memory leak in unbounded channel)\n - #121779 (Remove unused diagnostic struct)\n\nr? `@ghost`\n`@rustbot` modify labels: rollup","shortMessageHtmlLink":"Auto merge of rust-lang#121790 - jhpratt:rollup-yocg203, r=jhpratt"}},{"before":null,"after":"0e4da4e0c7875c38ac2e2bd8f30ffb0675a92a55","ref":"refs/heads/lint-transmute-unsafe-cell","pushedAt":"2023-11-29T13:36:37.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ChayimFriedman2","name":"Chayim Refael Friedman","path":"/ChayimFriedman2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24700207?s=80&v=4"},"commit":{"message":"Lint against `&T` to `&mut T` and`&T` to `&UnsafeCell` transmutes\n\nThis adds the lint against `&T`->`&UnsafeCell` transmutes, and also check in struct fields.\n\nThe code is quite complex; I've tried my best to simplify and comment it.\n\nThis is missing one parts: array transmutes. When transmuting an array, this only consider the first element. The reason for that is that the code is already quite complex, and I didn't want to complicate it more.\nThis catches the most common pattern of transmuting an array into an array of the same length with type of the same size; more complex cases are likely not properly handled.\nWe could take a bigger sample, for example the first and last elements to increase the chance that the lint will catch mistakes, but then the runtime complexity becomes exponential with the nesting of the arrays (`[[[[[T; 2]; 2]; 2]; 2]; 2]` has complexity of O(2**5), for instance).","shortMessageHtmlLink":"Lint against &T
to &mut T
and&T
to &UnsafeCell<T>
transmutes"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEqMNDMgA","startCursor":null,"endCursor":null}},"title":"Activity · ChayimFriedman2/rust"}