{"action":"closed","number":815,"pull_request":{"url":"https://api.github.com/repos/dropbox/pyston/pulls/815","id":41962037,"html_url":"https://github.com/dropbox/pyston/pull/815","diff_url":"https://github.com/dropbox/pyston/pull/815.diff","patch_url":"https://github.com/dropbox/pyston/pull/815.patch","issue_url":"https://api.github.com/repos/dropbox/pyston/issues/815","number":815,"state":"closed","locked":false,"title":"Clean up our exception handling","user":{"login":"kmod","id":271916,"avatar_url":"https://avatars.githubusercontent.com/u/271916?v=3","gravatar_id":"","url":"https://api.github.com/users/kmod","html_url":"https://github.com/kmod","followers_url":"https://api.github.com/users/kmod/followers","following_url":"https://api.github.com/users/kmod/following{/other_user}","gists_url":"https://api.github.com/users/kmod/gists{/gist_id}","starred_url":"https://api.github.com/users/kmod/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kmod/subscriptions","organizations_url":"https://api.github.com/users/kmod/orgs","repos_url":"https://api.github.com/users/kmod/repos","events_url":"https://api.github.com/users/kmod/events{/privacy}","received_events_url":"https://api.github.com/users/kmod/received_events","type":"User","site_admin":false},"body":"Our exception-handling and unwinding code has always been a bit mixed together, which\r\nmakes it hard to add new features since things are pretty tightly coupled.  For instance,\r\nthe notion of a \"reraise\" was tightly coupled to the idea of a C stack frame and it was also\r\nbeing tracked in the wrong place, and for these reasons we couldn't use capi exceptions\r\nwhen we needed to do a reraise.\r\n\r\nI think this PR makes things a bit cleaner:\r\n- cxx_unwind.cpp handles C++ unwinding semantics\r\n- unwinding.cpp converts C stacks to Python stacks\r\n- exceptions.cpp takes Python stack frames and handles them appropriately","created_at":"2015-08-08T22:50:12Z","updated_at":"2015-08-09T06:36:53Z","closed_at":"2015-08-09T06:36:53Z","merged_at":"2015-08-09T06:36:53Z","merge_commit_sha":"bd1d653675355f6b993edf4aca56779951f40f9c","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/dropbox/pyston/pulls/815/commits","review_comments_url":"https://api.github.com/repos/dropbox/pyston/pulls/815/comments","review_comment_url":"https://api.github.com/repos/dropbox/pyston/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dropbox/pyston/issues/815/comments","statuses_url":"https://api.github.com/repos/dropbox/pyston/statuses/fcad2a61c975d0aae51c4fd1f5ed367829d10757","head":{"label":"kmod:exceptions","ref":"exceptions","sha":"fcad2a61c975d0aae51c4fd1f5ed367829d10757","user":{"login":"kmod","id":271916,"avatar_url":"https://avatars.githubusercontent.com/u/271916?v=3","gravatar_id":"","url":"https://api.github.com/users/kmod","html_url":"https://github.com/kmod","followers_url":"https://api.github.com/users/kmod/followers","following_url":"https://api.github.com/users/kmod/following{/other_user}","gists_url":"https://api.github.com/users/kmod/gists{/gist_id}","starred_url":"https://api.github.com/users/kmod/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kmod/subscriptions","organizations_url":"https://api.github.com/users/kmod/orgs","repos_url":"https://api.github.com/users/kmod/repos","events_url":"https://api.github.com/users/kmod/events{/privacy}","received_events_url":"https://api.github.com/users/kmod/received_events","type":"User","site_admin":false},"repo":{"id":22085888,"name":"pyston","full_name":"kmod/pyston","owner":{"login":"kmod","id":271916,"avatar_url":"https://avatars.githubusercontent.com/u/271916?v=3","gravatar_id":"","url":"https://api.github.com/users/kmod","html_url":"https://github.com/kmod","followers_url":"https://api.github.com/users/kmod/followers","following_url":"https://api.github.com/users/kmod/following{/other_user}","gists_url":"https://api.github.com/users/kmod/gists{/gist_id}","starred_url":"https://api.github.com/users/kmod/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kmod/subscriptions","organizations_url":"https://api.github.com/users/kmod/orgs","repos_url":"https://api.github.com/users/kmod/repos","events_url":"https://api.github.com/users/kmod/events{/privacy}","received_events_url":"https://api.github.com/users/kmod/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/kmod/pyston","description":"My personal development branch of Pyston -- see https://github.com/dropbox/pyston for the official version","fork":true,"url":"https://api.github.com/repos/kmod/pyston","forks_url":"https://api.github.com/repos/kmod/pyston/forks","keys_url":"https://api.github.com/repos/kmod/pyston/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kmod/pyston/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kmod/pyston/teams","hooks_url":"https://api.github.com/repos/kmod/pyston/hooks","issue_events_url":"https://api.github.com/repos/kmod/pyston/issues/events{/number}","events_url":"https://api.github.com/repos/kmod/pyston/events","assignees_url":"https://api.github.com/repos/kmod/pyston/assignees{/user}","branches_url":"https://api.github.com/repos/kmod/pyston/branches{/branch}","tags_url":"https://api.github.com/repos/kmod/pyston/tags","blobs_url":"https://api.github.com/repos/kmod/pyston/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kmod/pyston/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kmod/pyston/git/refs{/sha}","trees_url":"https://api.github.com/repos/kmod/pyston/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kmod/pyston/statuses/{sha}","languages_url":"https://api.github.com/repos/kmod/pyston/languages","stargazers_url":"https://api.github.com/repos/kmod/pyston/stargazers","contributors_url":"https://api.github.com/repos/kmod/pyston/contributors","subscribers_url":"https://api.github.com/repos/kmod/pyston/subscribers","subscription_url":"https://api.github.com/repos/kmod/pyston/subscription","commits_url":"https://api.github.com/repos/kmod/pyston/commits{/sha}","git_commits_url":"https://api.github.com/repos/kmod/pyston/git/commits{/sha}","comments_url":"https://api.github.com/repos/kmod/pyston/comments{/number}","issue_comment_url":"https://api.github.com/repos/kmod/pyston/issues/comments{/number}","contents_url":"https://api.github.com/repos/kmod/pyston/contents/{+path}","compare_url":"https://api.github.com/repos/kmod/pyston/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kmod/pyston/merges","archive_url":"https://api.github.com/repos/kmod/pyston/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kmod/pyston/downloads","issues_url":"https://api.github.com/repos/kmod/pyston/issues{/number}","pulls_url":"https://api.github.com/repos/kmod/pyston/pulls{/number}","milestones_url":"https://api.github.com/repos/kmod/pyston/milestones{/number}","notifications_url":"https://api.github.com/repos/kmod/pyston/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kmod/pyston/labels{/name}","releases_url":"https://api.github.com/repos/kmod/pyston/releases{/id}","created_at":"2014-07-22T01:04:52Z","updated_at":"2015-04-19T08:25:39Z","pushed_at":"2015-08-09T01:49:45Z","git_url":"git://github.com/kmod/pyston.git","ssh_url":"git@github.com:kmod/pyston.git","clone_url":"https://github.com/kmod/pyston.git","svn_url":"https://github.com/kmod/pyston","homepage":"","size":28826,"stargazers_count":0,"watchers_count":0,"language":"Python","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":"dropbox:master","ref":"master","sha":"fb2eef6ecbe208de15df875e237fcd4c0abc1d6f","user":{"login":"dropbox","id":559357,"avatar_url":"https://avatars.githubusercontent.com/u/559357?v=3","gravatar_id":"","url":"https://api.github.com/users/dropbox","html_url":"https://github.com/dropbox","followers_url":"https://api.github.com/users/dropbox/followers","following_url":"https://api.github.com/users/dropbox/following{/other_user}","gists_url":"https://api.github.com/users/dropbox/gists{/gist_id}","starred_url":"https://api.github.com/users/dropbox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dropbox/subscriptions","organizations_url":"https://api.github.com/users/dropbox/orgs","repos_url":"https://api.github.com/users/dropbox/repos","events_url":"https://api.github.com/users/dropbox/events{/privacy}","received_events_url":"https://api.github.com/users/dropbox/received_events","type":"Organization","site_admin":false},"repo":{"id":18320947,"name":"pyston","full_name":"dropbox/pyston","owner":{"login":"dropbox","id":559357,"avatar_url":"https://avatars.githubusercontent.com/u/559357?v=3","gravatar_id":"","url":"https://api.github.com/users/dropbox","html_url":"https://github.com/dropbox","followers_url":"https://api.github.com/users/dropbox/followers","following_url":"https://api.github.com/users/dropbox/following{/other_user}","gists_url":"https://api.github.com/users/dropbox/gists{/gist_id}","starred_url":"https://api.github.com/users/dropbox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dropbox/subscriptions","organizations_url":"https://api.github.com/users/dropbox/orgs","repos_url":"https://api.github.com/users/dropbox/repos","events_url":"https://api.github.com/users/dropbox/events{/privacy}","received_events_url":"https://api.github.com/users/dropbox/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dropbox/pyston","description":"An open-source Python implementation using JIT techniques. ","fork":false,"url":"https://api.github.com/repos/dropbox/pyston","forks_url":"https://api.github.com/repos/dropbox/pyston/forks","keys_url":"https://api.github.com/repos/dropbox/pyston/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dropbox/pyston/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dropbox/pyston/teams","hooks_url":"https://api.github.com/repos/dropbox/pyston/hooks","issue_events_url":"https://api.github.com/repos/dropbox/pyston/issues/events{/number}","events_url":"https://api.github.com/repos/dropbox/pyston/events","assignees_url":"https://api.github.com/repos/dropbox/pyston/assignees{/user}","branches_url":"https://api.github.com/repos/dropbox/pyston/branches{/branch}","tags_url":"https://api.github.com/repos/dropbox/pyston/tags","blobs_url":"https://api.github.com/repos/dropbox/pyston/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dropbox/pyston/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dropbox/pyston/git/refs{/sha}","trees_url":"https://api.github.com/repos/dropbox/pyston/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dropbox/pyston/statuses/{sha}","languages_url":"https://api.github.com/repos/dropbox/pyston/languages","stargazers_url":"https://api.github.com/repos/dropbox/pyston/stargazers","contributors_url":"https://api.github.com/repos/dropbox/pyston/contributors","subscribers_url":"https://api.github.com/repos/dropbox/pyston/subscribers","subscription_url":"https://api.github.com/repos/dropbox/pyston/subscription","commits_url":"https://api.github.com/repos/dropbox/pyston/commits{/sha}","git_commits_url":"https://api.github.com/repos/dropbox/pyston/git/commits{/sha}","comments_url":"https://api.github.com/repos/dropbox/pyston/comments{/number}","issue_comment_url":"https://api.github.com/repos/dropbox/pyston/issues/comments{/number}","contents_url":"https://api.github.com/repos/dropbox/pyston/contents/{+path}","compare_url":"https://api.github.com/repos/dropbox/pyston/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dropbox/pyston/merges","archive_url":"https://api.github.com/repos/dropbox/pyston/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dropbox/pyston/downloads","issues_url":"https://api.github.com/repos/dropbox/pyston/issues{/number}","pulls_url":"https://api.github.com/repos/dropbox/pyston/pulls{/number}","milestones_url":"https://api.github.com/repos/dropbox/pyston/milestones{/number}","notifications_url":"https://api.github.com/repos/dropbox/pyston/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dropbox/pyston/labels{/name}","releases_url":"https://api.github.com/repos/dropbox/pyston/releases{/id}","created_at":"2014-04-01T07:17:20Z","updated_at":"2015-08-09T04:03:44Z","pushed_at":"2015-08-09T06:36:53Z","git_url":"git://github.com/dropbox/pyston.git","ssh_url":"git@github.com:dropbox/pyston.git","clone_url":"https://github.com/dropbox/pyston.git","svn_url":"https://github.com/dropbox/pyston","homepage":"https://tech.dropbox.com/2014/04/introducing-pyston-an-upcoming-jit-based-python-implementation/","size":34794,"stargazers_count":3078,"watchers_count":3078,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":218,"mirror_url":null,"open_issues_count":73,"forks":218,"open_issues":73,"watchers":3078,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dropbox/pyston/pulls/815"},"html":{"href":"https://github.com/dropbox/pyston/pull/815"},"issue":{"href":"https://api.github.com/repos/dropbox/pyston/issues/815"},"comments":{"href":"https://api.github.com/repos/dropbox/pyston/issues/815/comments"},"review_comments":{"href":"https://api.github.com/repos/dropbox/pyston/pulls/815/comments"},"review_comment":{"href":"https://api.github.com/repos/dropbox/pyston/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dropbox/pyston/pulls/815/commits"},"statuses":{"href":"https://api.github.com/repos/dropbox/pyston/statuses/fcad2a61c975d0aae51c4fd1f5ed367829d10757"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"kmod","id":271916,"avatar_url":"https://avatars.githubusercontent.com/u/271916?v=3","gravatar_id":"","url":"https://api.github.com/users/kmod","html_url":"https://github.com/kmod","followers_url":"https://api.github.com/users/kmod/followers","following_url":"https://api.github.com/users/kmod/following{/other_user}","gists_url":"https://api.github.com/users/kmod/gists{/gist_id}","starred_url":"https://api.github.com/users/kmod/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kmod/subscriptions","organizations_url":"https://api.github.com/users/kmod/orgs","repos_url":"https://api.github.com/users/kmod/repos","events_url":"https://api.github.com/users/kmod/events{/privacy}","received_events_url":"https://api.github.com/users/kmod/received_events","type":"User","site_admin":false},"comments":0,"review_comments":0,"commits":5,"additions":255,"deletions":288,"changed_files":14}}