{"action":"created","comment":{"url":"https://api.github.com/repos/rust-lang/rfcs/pulls/comments/73790639","id":73790639,"diff_hunk":"@@ -0,0 +1,236 @@\n+- Feature Name: cargo_stdlib_awareness\n+- Start Date: 2015-05-26\n+- RFC PR: (leave this empty)\n+- Rust Issue: (leave this empty)\n+\n+\n+# Summary\n+\n+Currently, Cargo doesn't know what parts of the standard library packages depend on.\n+By giving it this knowledge, we can make cross compilation and exotic platform development easier, simplify rustbuild, and allow anyone to easily specify bounds on the standard library for their packages.\n+This will allow building parts of the standard library from source, but in order to not disrupt existing workflows, the binaries that come with rustc will still be used by default.\n+\n+\n+# Motivation\n+\n+First, some background.\n+`rustc` can be given crates and their location with `--extern <name>=<path>`.\n+When finding a library, `rustc` first sees if its location has been specified with `--extern`, then looks in any directories specified with `-L`, and finally looks in the \"sysroot\" [specifically `<sysroot>/lib/rustlib/<target>/lib`].\n+Cargo passes in all dependencies it builds with `--extern`.\n+However Cargo does not know about the standard library, so builds of it are taken from the sysroot.\n+\n+For cross-compiling, one can often download standard library binaries with rustup.\n+This is convenient, but one cannot expect pre-built binaries for all platforms.\n+In particular, embedded systems often have detailed configurations to convey as much information as possible about the hardware to the compiler.\n+Furthermore, not all of the stdlib is available on every platform---there is an RFC in the works to pre-build a smaller set of crates for [Cortex-M microcontrollers](https://github.com/rust-lang/rfcs/pull/1645).\n+It would be nice to know if the available subset is adequate before attempting a build.\n+We can only do that if all packages have explicit standard library deps to cross-reference with platform requirements of each standard library crate.\n+\n+Now rustup could be augmented to build stdlib binaries in addition to downloading them, but we have extra configuration options for the standard library such as [panic strategies](https://github.com/rust-lang/rfcs/blob/master/text/1513-less-unwinding.md) along with plans to add more such as [`core` without floats](https://github.com/rust-lang/rfcs/issues/1364).\n+One could also cobble together a way to to tell rustup such configuration options, but we'd like to make sure that all dependencies agree with the plan before trying to execute it.\n+For panicking, packages can already set a `profile.dev.panic` option to require a specific strategy, and for float support we should add a (default opt-in) feature to core.\n+Then, if packages can explicitly depend on core they can also specify whether the float feature is needed.\n+Cargo would be able to infer both of these options by inspecting all crates in the dependency graph.\n+\n+Rustbuild must currently perform multiple `cargo builds`, the first to build the standard library and the rest to build things which depend on the standard library.\n+If rustc, rustfmt, etc, and their deps (some of which come from crates.io, and thus aren't specially tailored for building rust) declare deps on std, rustbuild wouldn't need multiple lockfiles.\n+Keeping multiple lockfiles in sync is a nuisance, and this gets us one step closer to a single `cargo build` building rustc.\n+\n+The use-cases so far mainly benefit niche corners of the Rust community, but the last should be useful for just about everyone.\n+Now that multiple versions of Rust have been released, it can be useful to specify the minimum version.\n+If and when Rust 2, a version with breaking changes, comes out, this will be all the more important.\n+We don't yet have a plan yet to track the language itself, but by tracking standard library dependencies we make it trivial to specify version requirements like any other package.\n+\n+\n+# Detailed design\n+\n+## Standard library dependencies\n+\n+First and foremost, one will now be able to explicitly depend on standard library crates, e.g. with `std = { version = \"1.10\", stdlib = true }`.\n+From the users's perspective, `stdlib = true` simply indicates that the depended-on crate is from the standard library.\n+The version for stdlib crates comes from the version of Rust their interfaces are defined in.\n+A version requirement must be specified.\n+The full breadth of options available with our existing dependencies, e.g. features and overrides, will be supported.\n+\n+## Implicit dependencies\n+\n+For backwards compatibility, Cargo must inject such standard library dependencies for existing packages.\n+These injected standard library dependencies are called \"implicit dependencies\" because the user does not specify them explicitly.\n+We have an obligation to not break packages depending only on stable interfaces, so the implicit dependencies will include both `std` and `core`:\n+```toml\n+[dependencies]\n+core = { version = \"^1.0\", stdlib = true }\n+std  = { version = \"^1.0\", stdlib = true }\n+\n+[dev-dependencies]\n+core = { version = \"^1.0\", stdlib = true }\n+std  = { version = \"^1.0\", stdlib = true }\n+test = { version = \"^1.0\", stdlib = true }\n+\n+[build-dependencies]\n+core = { version = \"^1.0\", stdlib = true }\n+std  = { version = \"^1.0\", stdlib = true }\n+```\n+The version requirement for `core` of `^1.0` may seem odd because core was not stable at the time, but anything else would either break newer packages using core, or prevent older packages from working on versions of Rust predating core's stabilization.\n+Remember that rustc only complains if an unstable crate is actually imported, so the Cargo dependency on its own is harmless.\n+\n+`test` is a similar scenario.\n+While importing it explicitly remains unstable, it's currently injected and thus needs to be built.\n+Other dependencies of `std` besides core we don't need to worry about, because they are only transitive dependencies through `std`, not direct dependencies.\n+\n+Now, not all crates depend on these crates, so there must be a way to opt out.\n+For this, we introduce a new `implicit-dependencies` key.\n+It is defined by default as:\n+```toml\n+implicit-dependencies = [\"primary\", \"build\", \"dev\"]\n+```\n+This indicates each of `dependencies`, `build-dependencies`, and `dev-dependencies` maps (respectively) is augmented with implicit elements.\n+A manual definition may be that or almost any subset, in which case only the included dependency maps are augmented.\n+\n+Finally, if an (explicit) dependency conflicts with one of the implicit defaults, that category of implicit dependency will be skipped.\n+For example, if a crate explicit depends on `std` as a build-dependency, neither `std` nor any other implicit build dependency will be injected.\n+This final rule means must packages won't need to use the implicit-dependencies key, because either implicit dependencies will be used, or a `core` or `std` explicit dependency will be present.\n+An exception is `core` itself, which must of course not depend on `core` or `std` implicitly or explicitly.\n+\n+## Compiler command-line interface\n+\n+As will be explained, with these changes Cargo will always use `--extern` to pass dependencies, so rustc's sysroot lookup can and should be bypassed.\n+This will prevent users using the sysroot from depending on more crates than their cargo file declares (implicitly or explicitly)..\n+A `--no-resolve-sysroot` flag will be added for this purpose.\n+Compilers that don't have sysroot binaries should accept this flag and ignore it.\n+Once [Rust PR #35021](https://github.com/rust-lang/rust/pull/35021/files) lands in some form, `compiler-rt` will be a Cargoized dependency so rustc won't use the sysroot for linking either.\n+\n+Additionally, compilers besides rustc may have version numbers distinct from the version of Rust they implement.\n+For this purpose, the verbose version output (`$COMPILER -vV` should contain an additional line:\n+```\n+language-version: $version\n+```\n+For now, `$version` should be a version, not a version requirement, and the patch number must be zero as patch numbers don't make sense for interfaces.\n+[This may be relaxed in the future for compilers which implement multiple versions.]\n+\n+## Compiler source packaging\n+\n+While the standard library *interface* is defined with each rustc version, the implementation of many crates, by virtue of using unstable features, is compiler-specific.\n+This makes the standard library unfit for crates.io.\n+(Additionally, the issue of dealing with nightly also makes crates.io hard to use, but that is a less clear-cut obstacle.)\n+\n+Cargo will soon gain the ability to create custom registries, as described in\n+https://github.com/rust-lang/cargo/pull/2857 .\n+Compilers should package the source of their implementation of the standard library as a registry, which can be distributed with the compiler.\n+In practice, rustc will optionally contain the source in its sysroot.\n+Rustup may be able to put it there if the default download does not contain it already.\n+This registry will be called the \"compiler source registry\".\n+\n+## Cargo implementation\n+\n+Whenever Cargo encounters a `Cargo.toml`, the first thing it always does is inject any applicable implicit deps.\n+The idea is that by doing this so early on, most of Cargo can stay the same in only knowing or caring about explicit deps, simplifying both this RFC and its implementation.\n+This process is completely defined by the rules described in the first subsection, so there is really nothing to elaborate upon here.\n+\n+Cargo has a \"source\" abstraction for providers of packages.\n+Examples of this are file-system paths, git repositories, and the upcoming registries.\n+For the time being, `stdlib = true` will act like another source, instructing the compiler to look at the compiler source registry, and if that is missing, then the sysroot binaries.\n+The remainder of this section will clarify this.\n+\n+The compiler source registry is expected to be located in `${$CARGO_RUSTC --print sysroot}/src`.\n+The exact format this takes will be determined when custom registries are implemented.\n+Based on that, it may be necessary to transform the rust repo before dumping it there.\n+\n+The \"sysroot binary mock registry\" is generated by examining the contents of the sysroot.","path":"text/0000-cargo-libstd-awareness.md","position":null,"original_position":139,"commit_id":"f7fd3dfb5f597acef1b0777822f5777ad33a4e7a","original_commit_id":"fac0c9bf5d72adbd959f47a5a96e45ffafc7eb9c","user":{"login":"Ericson2314","id":1055245,"avatar_url":"https://avatars.githubusercontent.com/u/1055245?v=3","gravatar_id":"","url":"https://api.github.com/users/Ericson2314","html_url":"https://github.com/Ericson2314","followers_url":"https://api.github.com/users/Ericson2314/followers","following_url":"https://api.github.com/users/Ericson2314/following{/other_user}","gists_url":"https://api.github.com/users/Ericson2314/gists{/gist_id}","starred_url":"https://api.github.com/users/Ericson2314/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ericson2314/subscriptions","organizations_url":"https://api.github.com/users/Ericson2314/orgs","repos_url":"https://api.github.com/users/Ericson2314/repos","events_url":"https://api.github.com/users/Ericson2314/events{/privacy}","received_events_url":"https://api.github.com/users/Ericson2314/received_events","type":"User","site_admin":false},"body":"Clarified in following sentence.","created_at":"2016-08-06T19:12:37Z","updated_at":"2016-08-06T19:12:37Z","html_url":"https://github.com/rust-lang/rfcs/pull/1133#discussion_r73790639","pull_request_url":"https://api.github.com/repos/rust-lang/rfcs/pulls/1133","_links":{"self":{"href":"https://api.github.com/repos/rust-lang/rfcs/pulls/comments/73790639"},"html":{"href":"https://github.com/rust-lang/rfcs/pull/1133#discussion_r73790639"},"pull_request":{"href":"https://api.github.com/repos/rust-lang/rfcs/pulls/1133"}}},"pull_request":{"url":"https://api.github.com/repos/rust-lang/rfcs/pulls/1133","id":36171747,"html_url":"https://github.com/rust-lang/rfcs/pull/1133","diff_url":"https://github.com/rust-lang/rfcs/pull/1133.diff","patch_url":"https://github.com/rust-lang/rfcs/pull/1133.patch","issue_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1133","number":1133,"state":"open","locked":false,"title":"Make Cargo aware of standard library dependencies","user":{"login":"Ericson2314","id":1055245,"avatar_url":"https://avatars.githubusercontent.com/u/1055245?v=3","gravatar_id":"","url":"https://api.github.com/users/Ericson2314","html_url":"https://github.com/Ericson2314","followers_url":"https://api.github.com/users/Ericson2314/followers","following_url":"https://api.github.com/users/Ericson2314/following{/other_user}","gists_url":"https://api.github.com/users/Ericson2314/gists{/gist_id}","starred_url":"https://api.github.com/users/Ericson2314/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ericson2314/subscriptions","organizations_url":"https://api.github.com/users/Ericson2314/orgs","repos_url":"https://api.github.com/users/Ericson2314/repos","events_url":"https://api.github.com/users/Ericson2314/events{/privacy}","received_events_url":"https://api.github.com/users/Ericson2314/received_events","type":"User","site_admin":false},"body":"Currently, all packages implicitly depend on libstd. This makes Cargo unsuitable for packages that\r\nneed a custom-built libstd, or otherwise depend on crates with the same names as libstd and the\r\ncrates behind the facade. The proposed fixes also open the door to a future where libstd can be\r\nCargoized.\r\n\r\nI've been busy with school until very recently, so apologies in advance if it turns out I am not taking into account some recent change.\r\n\r\n[Rendered](https://github.com/Ericson2314/rfcs/blob/cargo-libstd/text/0000-cargo-libstd-awareness.md)","created_at":"2015-05-26T06:02:28Z","updated_at":"2016-08-06T19:12:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a92319308c7db537957de28b7b104a846eadd227","assignee":{"login":"alexcrichton","id":64996,"avatar_url":"https://avatars.githubusercontent.com/u/64996?v=3","gravatar_id":"","url":"https://api.github.com/users/alexcrichton","html_url":"https://github.com/alexcrichton","followers_url":"https://api.github.com/users/alexcrichton/followers","following_url":"https://api.github.com/users/alexcrichton/following{/other_user}","gists_url":"https://api.github.com/users/alexcrichton/gists{/gist_id}","starred_url":"https://api.github.com/users/alexcrichton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexcrichton/subscriptions","organizations_url":"https://api.github.com/users/alexcrichton/orgs","repos_url":"https://api.github.com/users/alexcrichton/repos","events_url":"https://api.github.com/users/alexcrichton/events{/privacy}","received_events_url":"https://api.github.com/users/alexcrichton/received_events","type":"User","site_admin":false},"assignees":[{"login":"alexcrichton","id":64996,"avatar_url":"https://avatars.githubusercontent.com/u/64996?v=3","gravatar_id":"","url":"https://api.github.com/users/alexcrichton","html_url":"https://github.com/alexcrichton","followers_url":"https://api.github.com/users/alexcrichton/followers","following_url":"https://api.github.com/users/alexcrichton/following{/other_user}","gists_url":"https://api.github.com/users/alexcrichton/gists{/gist_id}","starred_url":"https://api.github.com/users/alexcrichton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexcrichton/subscriptions","organizations_url":"https://api.github.com/users/alexcrichton/orgs","repos_url":"https://api.github.com/users/alexcrichton/repos","events_url":"https://api.github.com/users/alexcrichton/events{/privacy}","received_events_url":"https://api.github.com/users/alexcrichton/received_events","type":"User","site_admin":false},{"login":"brson","id":147214,"avatar_url":"https://avatars.githubusercontent.com/u/147214?v=3","gravatar_id":"","url":"https://api.github.com/users/brson","html_url":"https://github.com/brson","followers_url":"https://api.github.com/users/brson/followers","following_url":"https://api.github.com/users/brson/following{/other_user}","gists_url":"https://api.github.com/users/brson/gists{/gist_id}","starred_url":"https://api.github.com/users/brson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brson/subscriptions","organizations_url":"https://api.github.com/users/brson/orgs","repos_url":"https://api.github.com/users/brson/repos","events_url":"https://api.github.com/users/brson/events{/privacy}","received_events_url":"https://api.github.com/users/brson/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/rust-lang/rfcs/pulls/1133/commits","review_comments_url":"https://api.github.com/repos/rust-lang/rfcs/pulls/1133/comments","review_comment_url":"https://api.github.com/repos/rust-lang/rfcs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1133/comments","statuses_url":"https://api.github.com/repos/rust-lang/rfcs/statuses/f7fd3dfb5f597acef1b0777822f5777ad33a4e7a","head":{"label":"Ericson2314:cargo-libstd","ref":"cargo-libstd","sha":"f7fd3dfb5f597acef1b0777822f5777ad33a4e7a","user":{"login":"Ericson2314","id":1055245,"avatar_url":"https://avatars.githubusercontent.com/u/1055245?v=3","gravatar_id":"","url":"https://api.github.com/users/Ericson2314","html_url":"https://github.com/Ericson2314","followers_url":"https://api.github.com/users/Ericson2314/followers","following_url":"https://api.github.com/users/Ericson2314/following{/other_user}","gists_url":"https://api.github.com/users/Ericson2314/gists{/gist_id}","starred_url":"https://api.github.com/users/Ericson2314/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ericson2314/subscriptions","organizations_url":"https://api.github.com/users/Ericson2314/orgs","repos_url":"https://api.github.com/users/Ericson2314/repos","events_url":"https://api.github.com/users/Ericson2314/events{/privacy}","received_events_url":"https://api.github.com/users/Ericson2314/received_events","type":"User","site_admin":false},"repo":{"id":22736283,"name":"rfcs","full_name":"Ericson2314/rfcs","owner":{"login":"Ericson2314","id":1055245,"avatar_url":"https://avatars.githubusercontent.com/u/1055245?v=3","gravatar_id":"","url":"https://api.github.com/users/Ericson2314","html_url":"https://github.com/Ericson2314","followers_url":"https://api.github.com/users/Ericson2314/followers","following_url":"https://api.github.com/users/Ericson2314/following{/other_user}","gists_url":"https://api.github.com/users/Ericson2314/gists{/gist_id}","starred_url":"https://api.github.com/users/Ericson2314/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ericson2314/subscriptions","organizations_url":"https://api.github.com/users/Ericson2314/orgs","repos_url":"https://api.github.com/users/Ericson2314/repos","events_url":"https://api.github.com/users/Ericson2314/events{/privacy}","received_events_url":"https://api.github.com/users/Ericson2314/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Ericson2314/rfcs","description":"RFCs for changes to Rust","fork":true,"url":"https://api.github.com/repos/Ericson2314/rfcs","forks_url":"https://api.github.com/repos/Ericson2314/rfcs/forks","keys_url":"https://api.github.com/repos/Ericson2314/rfcs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Ericson2314/rfcs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Ericson2314/rfcs/teams","hooks_url":"https://api.github.com/repos/Ericson2314/rfcs/hooks","issue_events_url":"https://api.github.com/repos/Ericson2314/rfcs/issues/events{/number}","events_url":"https://api.github.com/repos/Ericson2314/rfcs/events","assignees_url":"https://api.github.com/repos/Ericson2314/rfcs/assignees{/user}","branches_url":"https://api.github.com/repos/Ericson2314/rfcs/branches{/branch}","tags_url":"https://api.github.com/repos/Ericson2314/rfcs/tags","blobs_url":"https://api.github.com/repos/Ericson2314/rfcs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Ericson2314/rfcs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Ericson2314/rfcs/git/refs{/sha}","trees_url":"https://api.github.com/repos/Ericson2314/rfcs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Ericson2314/rfcs/statuses/{sha}","languages_url":"https://api.github.com/repos/Ericson2314/rfcs/languages","stargazers_url":"https://api.github.com/repos/Ericson2314/rfcs/stargazers","contributors_url":"https://api.github.com/repos/Ericson2314/rfcs/contributors","subscribers_url":"https://api.github.com/repos/Ericson2314/rfcs/subscribers","subscription_url":"https://api.github.com/repos/Ericson2314/rfcs/subscription","commits_url":"https://api.github.com/repos/Ericson2314/rfcs/commits{/sha}","git_commits_url":"https://api.github.com/repos/Ericson2314/rfcs/git/commits{/sha}","comments_url":"https://api.github.com/repos/Ericson2314/rfcs/comments{/number}","issue_comment_url":"https://api.github.com/repos/Ericson2314/rfcs/issues/comments{/number}","contents_url":"https://api.github.com/repos/Ericson2314/rfcs/contents/{+path}","compare_url":"https://api.github.com/repos/Ericson2314/rfcs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Ericson2314/rfcs/merges","archive_url":"https://api.github.com/repos/Ericson2314/rfcs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Ericson2314/rfcs/downloads","issues_url":"https://api.github.com/repos/Ericson2314/rfcs/issues{/number}","pulls_url":"https://api.github.com/repos/Ericson2314/rfcs/pulls{/number}","milestones_url":"https://api.github.com/repos/Ericson2314/rfcs/milestones{/number}","notifications_url":"https://api.github.com/repos/Ericson2314/rfcs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Ericson2314/rfcs/labels{/name}","releases_url":"https://api.github.com/repos/Ericson2314/rfcs/releases{/id}","deployments_url":"https://api.github.com/repos/Ericson2314/rfcs/deployments","created_at":"2014-08-07T20:56:33Z","updated_at":"2016-04-25T05:15:36Z","pushed_at":"2016-08-06T19:11:35Z","git_url":"git://github.com/Ericson2314/rfcs.git","ssh_url":"git@github.com:Ericson2314/rfcs.git","clone_url":"https://github.com/Ericson2314/rfcs.git","svn_url":"https://github.com/Ericson2314/rfcs","homepage":"","size":2980,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"rust-lang:master","ref":"master","sha":"736f59fb9ee854219a203fe6aab0e5c7835621e0","user":{"login":"rust-lang","id":5430905,"avatar_url":"https://avatars.githubusercontent.com/u/5430905?v=3","gravatar_id":"","url":"https://api.github.com/users/rust-lang","html_url":"https://github.com/rust-lang","followers_url":"https://api.github.com/users/rust-lang/followers","following_url":"https://api.github.com/users/rust-lang/following{/other_user}","gists_url":"https://api.github.com/users/rust-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/rust-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rust-lang/subscriptions","organizations_url":"https://api.github.com/users/rust-lang/orgs","repos_url":"https://api.github.com/users/rust-lang/repos","events_url":"https://api.github.com/users/rust-lang/events{/privacy}","received_events_url":"https://api.github.com/users/rust-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":17527989,"name":"rfcs","full_name":"rust-lang/rfcs","owner":{"login":"rust-lang","id":5430905,"avatar_url":"https://avatars.githubusercontent.com/u/5430905?v=3","gravatar_id":"","url":"https://api.github.com/users/rust-lang","html_url":"https://github.com/rust-lang","followers_url":"https://api.github.com/users/rust-lang/followers","following_url":"https://api.github.com/users/rust-lang/following{/other_user}","gists_url":"https://api.github.com/users/rust-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/rust-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rust-lang/subscriptions","organizations_url":"https://api.github.com/users/rust-lang/orgs","repos_url":"https://api.github.com/users/rust-lang/repos","events_url":"https://api.github.com/users/rust-lang/events{/privacy}","received_events_url":"https://api.github.com/users/rust-lang/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/rust-lang/rfcs","description":"RFCs for changes to Rust","fork":false,"url":"https://api.github.com/repos/rust-lang/rfcs","forks_url":"https://api.github.com/repos/rust-lang/rfcs/forks","keys_url":"https://api.github.com/repos/rust-lang/rfcs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rust-lang/rfcs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rust-lang/rfcs/teams","hooks_url":"https://api.github.com/repos/rust-lang/rfcs/hooks","issue_events_url":"https://api.github.com/repos/rust-lang/rfcs/issues/events{/number}","events_url":"https://api.github.com/repos/rust-lang/rfcs/events","assignees_url":"https://api.github.com/repos/rust-lang/rfcs/assignees{/user}","branches_url":"https://api.github.com/repos/rust-lang/rfcs/branches{/branch}","tags_url":"https://api.github.com/repos/rust-lang/rfcs/tags","blobs_url":"https://api.github.com/repos/rust-lang/rfcs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rust-lang/rfcs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rust-lang/rfcs/git/refs{/sha}","trees_url":"https://api.github.com/repos/rust-lang/rfcs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rust-lang/rfcs/statuses/{sha}","languages_url":"https://api.github.com/repos/rust-lang/rfcs/languages","stargazers_url":"https://api.github.com/repos/rust-lang/rfcs/stargazers","contributors_url":"https://api.github.com/repos/rust-lang/rfcs/contributors","subscribers_url":"https://api.github.com/repos/rust-lang/rfcs/subscribers","subscription_url":"https://api.github.com/repos/rust-lang/rfcs/subscription","commits_url":"https://api.github.com/repos/rust-lang/rfcs/commits{/sha}","git_commits_url":"https://api.github.com/repos/rust-lang/rfcs/git/commits{/sha}","comments_url":"https://api.github.com/repos/rust-lang/rfcs/comments{/number}","issue_comment_url":"https://api.github.com/repos/rust-lang/rfcs/issues/comments{/number}","contents_url":"https://api.github.com/repos/rust-lang/rfcs/contents/{+path}","compare_url":"https://api.github.com/repos/rust-lang/rfcs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rust-lang/rfcs/merges","archive_url":"https://api.github.com/repos/rust-lang/rfcs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rust-lang/rfcs/downloads","issues_url":"https://api.github.com/repos/rust-lang/rfcs/issues{/number}","pulls_url":"https://api.github.com/repos/rust-lang/rfcs/pulls{/number}","milestones_url":"https://api.github.com/repos/rust-lang/rfcs/milestones{/number}","notifications_url":"https://api.github.com/repos/rust-lang/rfcs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rust-lang/rfcs/labels{/name}","releases_url":"https://api.github.com/repos/rust-lang/rfcs/releases{/id}","deployments_url":"https://api.github.com/repos/rust-lang/rfcs/deployments","created_at":"2014-03-07T21:29:00Z","updated_at":"2016-08-06T08:20:10Z","pushed_at":"2016-08-06T19:11:36Z","git_url":"git://github.com/rust-lang/rfcs.git","ssh_url":"git@github.com:rust-lang/rfcs.git","clone_url":"https://github.com/rust-lang/rfcs.git","svn_url":"https://github.com/rust-lang/rfcs","homepage":"","size":6092,"stargazers_count":700,"watchers_count":700,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":340,"mirror_url":null,"open_issues_count":682,"forks":340,"open_issues":682,"watchers":700,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/rust-lang/rfcs/pulls/1133"},"html":{"href":"https://github.com/rust-lang/rfcs/pull/1133"},"issue":{"href":"https://api.github.com/repos/rust-lang/rfcs/issues/1133"},"comments":{"href":"https://api.github.com/repos/rust-lang/rfcs/issues/1133/comments"},"review_comments":{"href":"https://api.github.com/repos/rust-lang/rfcs/pulls/1133/comments"},"review_comment":{"href":"https://api.github.com/repos/rust-lang/rfcs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/rust-lang/rfcs/pulls/1133/commits"},"statuses":{"href":"https://api.github.com/repos/rust-lang/rfcs/statuses/f7fd3dfb5f597acef1b0777822f5777ad33a4e7a"}}}}
{"actor":{"display_login":"Ericson2314"}}