{"action":"created","comment":{"url":"https://api.github.com/repos/rust-lang/rfcs/pulls/comments/70487363","id":70487363,"diff_hunk":"@@ -0,0 +1,159 @@\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 in sync is 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+The subsections with \"interface\" in their title form the normitive part of this RFC.\n+The rest of this section just illustrate hows they would likely be implemented.\n+\n+## `Cargo.toml` Interface\n+\n+First and foremost, one will now be able to depend on standard library crates by version, e.g. `std = \"1.10\"`.\n+This will work just as if `std` was on crates.io---features and other modifiers are supported.\n+\n+For backwards compatibility, Cargo must inject such standard library dependencies for existing packages.\n+Exactly which dependencies is unresolved, but a requirement at least as strong as `std = \"^1.0\"` as a primary and build dependency is assured.\n+\n+Now, not all crates depend on `std`, 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+The one additional rule is `\"dev\"` must be included in the set: we have no plan for Cargoizing the default test runner (either the attribute syntax manipulation or runtime), and wish to be forward-compatible with doing so in the future.\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+\n+## Cargo Command Line Interface\n+\n+A flag will be added\n+```\n+--resolve-compiler-specific=bin,src\n+```\n+where either `bin` or `src` may be included in the set.\n+If `bin` is included, Cargo will allow the use of sysroot binaries to satisfy deps.\n+It is assumed that the version of all sysroot rlibs is the same as the version of Rust which the compiler implements.\n+If `src` is included, Cargo will fallback on a compiler-provided package registry when other registries (e.g. crates.io) fail to provide a package.\n+For backwards compatibility, the default is `--resolve-compiler-specific=bin`.\n+\n+## Compiler source packaging\n+\n+While the standard library *interface* defined with each rustc version, the implementation, 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 and chain custom registries, as described in\n+https://github.com/rust-lang/cargo/pull/2361 .\n+Compiler's 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+\n+## Cargo implementation\n+\n+The one thing this RFC requires of the upcoming registry implementation is the ability to chain registries providing defaults and fallbacks when a registry is not manually specified.\n+This is used so crates not on crates.io are instead provided by the compiler.\n+[Ideally, we'd put the \"interface\" on crates.io to help ensure compiler-specific implementations conform, but such a mechanism is not being proposed at this time.]\n+\n+The injection of implicit dependencies is completely defined by the rules described in the first subsection, so this subsection will focus on the meaning of the `--resolve-compiler-specific=` flag.\n+\n+If `src` is included in the set passed with that flag, Cargo appends a local registry with path `${$CARGO_RUSTC --print sysroot}/src` to the back of the default chain.\n+In other words, if a package is in none of the user-specified registries contain a package, Cargo will look in the registry provided by the compiler.\n+\n+If `bin` is included in the set passed with that flag (or inferred from the default), Cargo will build a mock registry by examining the contents of the sysroot.\n+Any binary in there will be added to the mock registry, with a version deduced the best Cargo can (e.g. from the version of the compiler).\n+Cargo likewise will have to be conservative with other metadata, e.g. both aborting if any feature is requested of a dep that is resolved to this mock registry, and also aborting if `default-features = false` is specified in such a dep.\n+The mock registry will have dead last priority in the default chain, even behind the source registry.\n+The \"building\" of such a package in the mock registry will consist of copying the binary into the target directory.\n+\n+[System packages would like to build Rust libraries 1 per system packages, and for this Cargo will need to gain some understanding of prebuilt binaries.\n+It is hoped that when it does, the mock registry can be removed and the use of sysroot binaries will be less of a one-off hack.]\n+\n+Since Cargo will copy any binaries it needs from the sysroot when packages from the mock registry are part of the build plan, it would be nice to always prevent rustc from looking in the sysroot when compiling on Cargo's behalf.\n+This would prevent users using the sysroot from forgetting to specify any non-default standard library dependencies.\n+A `--no-resolve-sysroot` flag could be added for this purpose, but this is not necessary.","path":"text/0000-cargo-libstd-awareness.md","position":120,"original_position":117,"commit_id":"ffc442be30ceca6384ce2a427ebd048c95881578","original_commit_id":"8392c4af0ad573e1b4e68dc4fd36a35fee2e0eed","user":{"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},"body":"Let's either specify it or move it to end-matter. Right now I'm leaning toward disabling sysroot when the full dag is on, but there are some interactions between all these pieces that I'm still uncertain about (need to think about it a bit still).","created_at":"2016-07-12T17:54:00Z","updated_at":"2016-07-12T17:54:00Z","html_url":"https://github.com/rust-lang/rfcs/pull/1133#discussion_r70487363","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/70487363"},"html":{"href":"https://github.com/rust-lang/rfcs/pull/1133#discussion_r70487363"},"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-07-12T17:54:00Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e05ad1bcdaecfac861c877a02cbd6aabcc256f8e","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/ffc442be30ceca6384ce2a427ebd048c95881578","head":{"label":"Ericson2314:cargo-libstd","ref":"cargo-libstd","sha":"ffc442be30ceca6384ce2a427ebd048c95881578","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-07-12T17:46:42Z","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":2853,"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":"8e2d3a3341da533f846f61f10335b72c9a9f4740","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-07-12T17:45:38Z","pushed_at":"2016-07-12T17:46:43Z","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":6003,"stargazers_count":683,"watchers_count":683,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":328,"mirror_url":null,"open_issues_count":687,"forks":328,"open_issues":687,"watchers":683,"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/ffc442be30ceca6384ce2a427ebd048c95881578"}}}}
{"actor":{"display_login":"brson"}}