{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rust/issues/27718","labels_url":"https://api.github.com/repos/rust-lang/rust/issues/27718/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rust/issues/27718/comments","events_url":"https://api.github.com/repos/rust-lang/rust/issues/27718/events","html_url":"https://github.com/rust-lang/rust/issues/27718","id":100598779,"number":27718,"title":"Tracking issue for `Rc`/`Arc` stabilization","user":{"login":"aturon","id":709807,"avatar_url":"https://avatars.githubusercontent.com/u/709807?v=3","gravatar_id":"","url":"https://api.github.com/users/aturon","html_url":"https://github.com/aturon","followers_url":"https://api.github.com/users/aturon/followers","following_url":"https://api.github.com/users/aturon/following{/other_user}","gists_url":"https://api.github.com/users/aturon/gists{/gist_id}","starred_url":"https://api.github.com/users/aturon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aturon/subscriptions","organizations_url":"https://api.github.com/users/aturon/orgs","repos_url":"https://api.github.com/users/aturon/repos","events_url":"https://api.github.com/users/aturon/events{/privacy}","received_events_url":"https://api.github.com/users/aturon/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/rust-lang/rust/labels/B-unstable","name":"B-unstable","color":"e102d8"},{"url":"https://api.github.com/repos/rust-lang/rust/labels/T-libs","name":"T-libs","color":"bfd4f2"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-08-12T17:55:42Z","updated_at":"2015-08-12T18:35:04Z","closed_at":null,"body":"There are a number of unstable features related to `Rc` and `Arc`, including both weak references and uniqueness. An [RFC to remove weak pointers](https://github.com/rust-lang/rfcs/pull/1232) failed, and the current consensus seems to be to stabilize these APIs after nailing down more precise semantics for uniqueness.\r\n\r\ncc @Gankro "},"comment":{"url":"https://api.github.com/repos/rust-lang/rust/issues/comments/130405888","html_url":"https://github.com/rust-lang/rust/issues/27718#issuecomment-130405888","issue_url":"https://api.github.com/repos/rust-lang/rust/issues/27718","id":130405888,"user":{"login":"Gankro","id":1136864,"avatar_url":"https://avatars.githubusercontent.com/u/1136864?v=3","gravatar_id":"","url":"https://api.github.com/users/Gankro","html_url":"https://github.com/Gankro","followers_url":"https://api.github.com/users/Gankro/followers","following_url":"https://api.github.com/users/Gankro/following{/other_user}","gists_url":"https://api.github.com/users/Gankro/gists{/gist_id}","starred_url":"https://api.github.com/users/Gankro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Gankro/subscriptions","organizations_url":"https://api.github.com/users/Gankro/orgs","repos_url":"https://api.github.com/users/Gankro/repos","events_url":"https://api.github.com/users/Gankro/events{/privacy}","received_events_url":"https://api.github.com/users/Gankro/received_events","type":"User","site_admin":false},"created_at":"2015-08-12T18:35:04Z","updated_at":"2015-08-12T18:35:04Z","body":"Current plan:\r\n\r\n* Stabilize weak pointers (Do we want it as a normal method? General convention is static methods -- but it's symmetric to `clone`)\r\n\r\n* Stabilize `try_unwrap` only looking at strong count (but properly considering weak count to clean up)\r\n\r\n* Stabilize `make_unique` which clones if `strong != 1 || weak != 0`\r\n\r\n* Stabilize `get_mut` which only succeeds if `strong == 1 && weak == 0`\r\n\r\n* *don't* stabilize `is_unique` because there are two notions of uniqueness (as seen above) -- can consider exposing both notions, but they're both racey to act on in `Arc`, I think?\r\n\r\n* maybe stabilize `strong_count` and `weak_count`? They're harmless to support. However they're inherently racey to act on in Arc, which makes them a bit questionable.\r\n\r\nBasically: stabilize the actually useful functionality, don't stabilize introspection pending more work."}}