{"action":"created","comment":{"url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/pulls/comments/80829591","pull_request_review_id":1856281,"id":80829591,"diff_hunk":"@@ -0,0 +1,341 @@\n+---\n+layout: post\n+title: \"Announcing Rust 1.12.0\"\n+author: The Rust Core Team\n+---\n+\n+The Rust team is happy to announce the latest version of Rust, 1.12.0. Rust is\n+a systems programming language with the slogan \"fast, reliable, productive:\n+pick three.\"\n+\n+As always, you can [install Rust 1.12.0][install] from the appropriate page on our\n+website, and check out the [detailed release notes for 1.12.0][notes] on GitHub.\n+1361 patches were landed in this release.\n+\n+[install]: https://www.rust-lang.org/install.html\n+[notes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1120-2016-09-29\n+\n+### What's in 1.12.0 stable\n+\n+The release of 1.12 might be one of the most significant Rust releases since\n+1.0. We have a lot to cover, but if you don't have time for that, here's a\n+summary:\n+\n+The largest user-facing change in 1.12 stable is the new error message format\n+emitted by `rustc`. We've [previously talked] about this format and this is the\n+first stable release where they are broadly available. These error messages are\n+a result of the effort of many hours of [volunteer effort] to design, test, and\n+update every one of `rustc`s errors to the new format. We're excited to see\n+what you think of them:\n+\n+![A new borrow-check error](/images/2016-09-Rust-1.12/borrowck-error.png)\n+\n+The largest internal change in this release is moving to a new compiler backend\n+based on the new Rust [MIR]. While this feature does not result in any new\n+user-visible features, it paves the way for a number of future compiler\n+optimizations, and for some codebases it already results in improvements to\n+compile times and reductions in code size.\n+\n+[previously talked]: https://blog.rust-lang.org/2016/08/10/Shape-of-errors-to-come.html\n+[volunteer effort]: https://github.com/rust-lang/rust/issues/35233\n+[MIR]: https://blog.rust-lang.org/2016/04/19/MIR.html\n+\n+#### Overhauled error messages\n+\n+With 1.12 we're introducing a new error format which helps to surface a lot of\n+the internal knowledge about why an error is occurring to you, the developer. It\n+does this by focusing on your code and the points of interest in your code that\n+are relevant to the error.\n+\n+For example, in 1.11 if a implementation of a trait didn't match the trait\n+declaration, you would see an error like the one below:\n+\n+![An old mismatched trait\n+error](/images/2016-09-Rust-1.12/old-mismatched-trait-error.png)\n+\n+In the new error format we represent the error by instead showing the points in\n+the code that matter the most. Here the relevant line in the trait declaration,\n+and the relevant line in the implementation, using labels to describe why they\n+don't match:\n+\n+![A new mismatched trait\n+error](/images/2016-09-Rust-1.12/mismatched-trait-error.png)\n+\n+Initially, this error design was built to aid borrow-checking errors, but we\n+found, like the error above, the format can be broadly applied to a wide variety","path":"_posts/2016-09-29-Rust-1.12.md","position":65,"original_position":65,"commit_id":"25ffdc6335e37fa7676398426925b65860ec5546","original_commit_id":"25ffdc6335e37fa7676398426925b65860ec5546","user":{"login":"kmcallister","id":444997,"avatar_url":"https://avatars.githubusercontent.com/u/444997?v=3","gravatar_id":"","url":"https://api.github.com/users/kmcallister","html_url":"https://github.com/kmcallister","followers_url":"https://api.github.com/users/kmcallister/followers","following_url":"https://api.github.com/users/kmcallister/following{/other_user}","gists_url":"https://api.github.com/users/kmcallister/gists{/gist_id}","starred_url":"https://api.github.com/users/kmcallister/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kmcallister/subscriptions","organizations_url":"https://api.github.com/users/kmcallister/orgs","repos_url":"https://api.github.com/users/kmcallister/repos","events_url":"https://api.github.com/users/kmcallister/events{/privacy}","received_events_url":"https://api.github.com/users/kmcallister/received_events","type":"User","site_admin":false},"body":"like -> as with","created_at":"2016-09-28T01:33:27Z","updated_at":"2016-09-28T01:33:27Z","html_url":"https://github.com/rust-lang/blog.rust-lang.org/pull/126#discussion_r80829591","pull_request_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/pulls/126","_links":{"self":{"href":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/pulls/comments/80829591"},"html":{"href":"https://github.com/rust-lang/blog.rust-lang.org/pull/126#discussion_r80829591"},"pull_request":{"href":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/pulls/126"}}},"pull_request":{"url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/pulls/126","id":86954249,"html_url":"https://github.com/rust-lang/blog.rust-lang.org/pull/126","diff_url":"https://github.com/rust-lang/blog.rust-lang.org/pull/126.diff","patch_url":"https://github.com/rust-lang/blog.rust-lang.org/pull/126.patch","issue_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/issues/126","number":126,"state":"open","locked":false,"title":"Rust 1.12 release announcement","user":{"login":"steveklabnik","id":27786,"avatar_url":"https://avatars.githubusercontent.com/u/27786?v=3","gravatar_id":"","url":"https://api.github.com/users/steveklabnik","html_url":"https://github.com/steveklabnik","followers_url":"https://api.github.com/users/steveklabnik/followers","following_url":"https://api.github.com/users/steveklabnik/following{/other_user}","gists_url":"https://api.github.com/users/steveklabnik/gists{/gist_id}","starred_url":"https://api.github.com/users/steveklabnik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/steveklabnik/subscriptions","organizations_url":"https://api.github.com/users/steveklabnik/orgs","repos_url":"https://api.github.com/users/steveklabnik/repos","events_url":"https://api.github.com/users/steveklabnik/events{/privacy}","received_events_url":"https://api.github.com/users/steveklabnik/received_events","type":"User","site_admin":false},"body":"Not ready to merge yet, of course.\r\n\r\n[rendered](https://github.com/steveklabnik/blog.rust-lang.org/blob/1.12-announcement/_posts/2016-09-29-Rust-1.12.md)","created_at":"2016-09-27T15:31:52Z","updated_at":"2016-09-28T01:33:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fbf6693d47c3cebac0f64fde4b7b80151dc94a85","assignee":{"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},"assignees":[{"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/blog.rust-lang.org/pulls/126/commits","review_comments_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/pulls/126/comments","review_comment_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/pulls/comments{/number}","comments_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/issues/126/comments","statuses_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/statuses/25ffdc6335e37fa7676398426925b65860ec5546","head":{"label":"steveklabnik:1.12-announcement","ref":"1.12-announcement","sha":"25ffdc6335e37fa7676398426925b65860ec5546","user":{"login":"steveklabnik","id":27786,"avatar_url":"https://avatars.githubusercontent.com/u/27786?v=3","gravatar_id":"","url":"https://api.github.com/users/steveklabnik","html_url":"https://github.com/steveklabnik","followers_url":"https://api.github.com/users/steveklabnik/followers","following_url":"https://api.github.com/users/steveklabnik/following{/other_user}","gists_url":"https://api.github.com/users/steveklabnik/gists{/gist_id}","starred_url":"https://api.github.com/users/steveklabnik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/steveklabnik/subscriptions","organizations_url":"https://api.github.com/users/steveklabnik/orgs","repos_url":"https://api.github.com/users/steveklabnik/repos","events_url":"https://api.github.com/users/steveklabnik/events{/privacy}","received_events_url":"https://api.github.com/users/steveklabnik/received_events","type":"User","site_admin":false},"repo":{"id":24071080,"name":"blog.rust-lang.org","full_name":"steveklabnik/blog.rust-lang.org","owner":{"login":"steveklabnik","id":27786,"avatar_url":"https://avatars.githubusercontent.com/u/27786?v=3","gravatar_id":"","url":"https://api.github.com/users/steveklabnik","html_url":"https://github.com/steveklabnik","followers_url":"https://api.github.com/users/steveklabnik/followers","following_url":"https://api.github.com/users/steveklabnik/following{/other_user}","gists_url":"https://api.github.com/users/steveklabnik/gists{/gist_id}","starred_url":"https://api.github.com/users/steveklabnik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/steveklabnik/subscriptions","organizations_url":"https://api.github.com/users/steveklabnik/orgs","repos_url":"https://api.github.com/users/steveklabnik/repos","events_url":"https://api.github.com/users/steveklabnik/events{/privacy}","received_events_url":"https://api.github.com/users/steveklabnik/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/steveklabnik/blog.rust-lang.org","description":"","fork":true,"url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org","forks_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/forks","keys_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/keys{/key_id}","collaborators_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/teams","hooks_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/hooks","issue_events_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/issues/events{/number}","events_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/events","assignees_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/assignees{/user}","branches_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/branches{/branch}","tags_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/tags","blobs_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/git/refs{/sha}","trees_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/git/trees{/sha}","statuses_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/statuses/{sha}","languages_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/languages","stargazers_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/stargazers","contributors_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/contributors","subscribers_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/subscribers","subscription_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/subscription","commits_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/commits{/sha}","git_commits_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/git/commits{/sha}","comments_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/comments{/number}","issue_comment_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/issues/comments{/number}","contents_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/contents/{+path}","compare_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/compare/{base}...{head}","merges_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/merges","archive_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/downloads","issues_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/issues{/number}","pulls_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/pulls{/number}","milestones_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/milestones{/number}","notifications_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/labels{/name}","releases_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/releases{/id}","deployments_url":"https://api.github.com/repos/steveklabnik/blog.rust-lang.org/deployments","created_at":"2014-09-15T19:45:06Z","updated_at":"2016-07-04T04:39:11Z","pushed_at":"2016-09-27T18:19:00Z","git_url":"git://github.com/steveklabnik/blog.rust-lang.org.git","ssh_url":"git@github.com:steveklabnik/blog.rust-lang.org.git","clone_url":"https://github.com/steveklabnik/blog.rust-lang.org.git","svn_url":"https://github.com/steveklabnik/blog.rust-lang.org","homepage":null,"size":1740,"stargazers_count":1,"watchers_count":1,"language":"CSS","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":1,"default_branch":"gh-pages"}},"base":{"label":"rust-lang:gh-pages","ref":"gh-pages","sha":"b4783042f84830bd49e3a793f42014a1ea54af65","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":23805312,"name":"blog.rust-lang.org","full_name":"rust-lang/blog.rust-lang.org","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/blog.rust-lang.org","description":"","fork":false,"url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org","forks_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/forks","keys_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/teams","hooks_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/hooks","issue_events_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/issues/events{/number}","events_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/events","assignees_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/assignees{/user}","branches_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/branches{/branch}","tags_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/tags","blobs_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/git/refs{/sha}","trees_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/statuses/{sha}","languages_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/languages","stargazers_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/stargazers","contributors_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/contributors","subscribers_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/subscribers","subscription_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/subscription","commits_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/commits{/sha}","git_commits_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/git/commits{/sha}","comments_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/comments{/number}","issue_comment_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/issues/comments{/number}","contents_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/contents/{+path}","compare_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/merges","archive_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/downloads","issues_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/issues{/number}","pulls_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/pulls{/number}","milestones_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/milestones{/number}","notifications_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/labels{/name}","releases_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/releases{/id}","deployments_url":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/deployments","created_at":"2014-09-08T19:38:05Z","updated_at":"2016-07-25T07:47:25Z","pushed_at":"2016-09-27T18:19:00Z","git_url":"git://github.com/rust-lang/blog.rust-lang.org.git","ssh_url":"git@github.com:rust-lang/blog.rust-lang.org.git","clone_url":"https://github.com/rust-lang/blog.rust-lang.org.git","svn_url":"https://github.com/rust-lang/blog.rust-lang.org","homepage":"http://blog.rust-lang.org","size":1624,"stargazers_count":12,"watchers_count":12,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":43,"mirror_url":null,"open_issues_count":3,"forks":43,"open_issues":3,"watchers":12,"default_branch":"gh-pages"}},"_links":{"self":{"href":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/pulls/126"},"html":{"href":"https://github.com/rust-lang/blog.rust-lang.org/pull/126"},"issue":{"href":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/issues/126"},"comments":{"href":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/issues/126/comments"},"review_comments":{"href":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/pulls/126/comments"},"review_comment":{"href":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/pulls/126/commits"},"statuses":{"href":"https://api.github.com/repos/rust-lang/blog.rust-lang.org/statuses/25ffdc6335e37fa7676398426925b65860ec5546"}}}}
{"actor":{"display_login":"kmcallister"}}