{"action":"created","comment":{"url":"https://api.github.com/repos/hail-is/hail/pulls/comments/189633247","pull_request_review_id":116905412,"id":189633247,"diff_hunk":"@@ -0,0 +1,38 @@\n+package is.hail.expr.ir\n+\n+import is.hail.expr.BaseIR\n+\n+import scala.collection.mutable\n+\n+object RefEquality {\n+  def apply[T <: AnyRef](t: T): RefEquality[T] = new RefEquality[T](t)\n+}\n+\n+class RefEquality[T <: AnyRef](val t: T) {\n+  override def equals(obj: scala.Any): Boolean = obj match {\n+    case r: RefEquality[T] => t.eq(r.t)\n+    case _ => false\n+  }\n+\n+  override def hashCode(): Int = System.identityHashCode(t)\n+\n+  override def toString: String = s\"RefEquality($t)\"\n+}\n+\n+\n+object Memo {\n+  def empty[T]: Memo[T] = new Memo[T](new mutable.HashMap[RefEquality[BaseIR], T])\n+}\n+\n+class Memo[T] private (val m: mutable.HashMap[RefEquality[BaseIR], T]) {\n+  def bind(ir: BaseIR, t: T): Memo[T] = {","path":"src/main/scala/is/hail/expr/ir/RefEquality.scala","position":28,"original_position":28,"commit_id":"692f43287c865495f1df2598734751449ba01237","original_commit_id":"692f43287c865495f1df2598734751449ba01237","user":{"login":"cseed","id":1244990,"avatar_url":"https://avatars3.githubusercontent.com/u/1244990?v=4","gravatar_id":"","url":"https://api.github.com/users/cseed","html_url":"https://github.com/cseed","followers_url":"https://api.github.com/users/cseed/followers","following_url":"https://api.github.com/users/cseed/following{/other_user}","gists_url":"https://api.github.com/users/cseed/gists{/gist_id}","starred_url":"https://api.github.com/users/cseed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cseed/subscriptions","organizations_url":"https://api.github.com/users/cseed/orgs","repos_url":"https://api.github.com/users/cseed/repos","events_url":"https://api.github.com/users/cseed/events{/privacy}","received_events_url":"https://api.github.com/users/cseed/received_events","type":"User","site_admin":false},"body":"I'm slightly worried about existing sharing in the IR, not something we've carefully checked for before.  Can we have this assert ir is not in Memo?","created_at":"2018-05-21T15:58:16Z","updated_at":"2018-05-21T16:00:00Z","html_url":"https://github.com/hail-is/hail/pull/3470#discussion_r189633247","pull_request_url":"https://api.github.com/repos/hail-is/hail/pulls/3470","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/hail-is/hail/pulls/comments/189633247"},"html":{"href":"https://github.com/hail-is/hail/pull/3470#discussion_r189633247"},"pull_request":{"href":"https://api.github.com/repos/hail-is/hail/pulls/3470"}}},"pull_request":{"url":"https://api.github.com/repos/hail-is/hail/pulls/3470","id":184974209,"html_url":"https://github.com/hail-is/hail/pull/3470","diff_url":"https://github.com/hail-is/hail/pull/3470.diff","patch_url":"https://github.com/hail-is/hail/pull/3470.patch","issue_url":"https://api.github.com/repos/hail-is/hail/issues/3470","number":3470,"state":"open","locked":false,"title":"Added optimizer to prune dead fields ","user":{"login":"tpoterba","id":10562794,"avatar_url":"https://avatars2.githubusercontent.com/u/10562794?v=4","gravatar_id":"","url":"https://api.github.com/users/tpoterba","html_url":"https://github.com/tpoterba","followers_url":"https://api.github.com/users/tpoterba/followers","following_url":"https://api.github.com/users/tpoterba/following{/other_user}","gists_url":"https://api.github.com/users/tpoterba/gists{/gist_id}","starred_url":"https://api.github.com/users/tpoterba/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tpoterba/subscriptions","organizations_url":"https://api.github.com/users/tpoterba/orgs","repos_url":"https://api.github.com/users/tpoterba/repos","events_url":"https://api.github.com/users/tpoterba/events{/privacy}","received_events_url":"https://api.github.com/users/tpoterba/received_events","type":"User","site_admin":false},"body":"This PR is not ready to be merged, but I want feedback.","created_at":"2018-04-30T14:39:38Z","updated_at":"2018-05-21T16:00:00Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fb73ea7a538d284cee9390a12f827f6ce14c65c9","assignee":{"login":"cseed","id":1244990,"avatar_url":"https://avatars3.githubusercontent.com/u/1244990?v=4","gravatar_id":"","url":"https://api.github.com/users/cseed","html_url":"https://github.com/cseed","followers_url":"https://api.github.com/users/cseed/followers","following_url":"https://api.github.com/users/cseed/following{/other_user}","gists_url":"https://api.github.com/users/cseed/gists{/gist_id}","starred_url":"https://api.github.com/users/cseed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cseed/subscriptions","organizations_url":"https://api.github.com/users/cseed/orgs","repos_url":"https://api.github.com/users/cseed/repos","events_url":"https://api.github.com/users/cseed/events{/privacy}","received_events_url":"https://api.github.com/users/cseed/received_events","type":"User","site_admin":false},"assignees":[{"login":"cseed","id":1244990,"avatar_url":"https://avatars3.githubusercontent.com/u/1244990?v=4","gravatar_id":"","url":"https://api.github.com/users/cseed","html_url":"https://github.com/cseed","followers_url":"https://api.github.com/users/cseed/followers","following_url":"https://api.github.com/users/cseed/following{/other_user}","gists_url":"https://api.github.com/users/cseed/gists{/gist_id}","starred_url":"https://api.github.com/users/cseed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cseed/subscriptions","organizations_url":"https://api.github.com/users/cseed/orgs","repos_url":"https://api.github.com/users/cseed/repos","events_url":"https://api.github.com/users/cseed/events{/privacy}","received_events_url":"https://api.github.com/users/cseed/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/hail-is/hail/pulls/3470/commits","review_comments_url":"https://api.github.com/repos/hail-is/hail/pulls/3470/comments","review_comment_url":"https://api.github.com/repos/hail-is/hail/pulls/comments{/number}","comments_url":"https://api.github.com/repos/hail-is/hail/issues/3470/comments","statuses_url":"https://api.github.com/repos/hail-is/hail/statuses/692f43287c865495f1df2598734751449ba01237","head":{"label":"tpoterba:dead-code-eliminator","ref":"dead-code-eliminator","sha":"692f43287c865495f1df2598734751449ba01237","user":{"login":"tpoterba","id":10562794,"avatar_url":"https://avatars2.githubusercontent.com/u/10562794?v=4","gravatar_id":"","url":"https://api.github.com/users/tpoterba","html_url":"https://github.com/tpoterba","followers_url":"https://api.github.com/users/tpoterba/followers","following_url":"https://api.github.com/users/tpoterba/following{/other_user}","gists_url":"https://api.github.com/users/tpoterba/gists{/gist_id}","starred_url":"https://api.github.com/users/tpoterba/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tpoterba/subscriptions","organizations_url":"https://api.github.com/users/tpoterba/orgs","repos_url":"https://api.github.com/users/tpoterba/repos","events_url":"https://api.github.com/users/tpoterba/events{/privacy}","received_events_url":"https://api.github.com/users/tpoterba/received_events","type":"User","site_admin":false},"repo":{"id":64860564,"name":"hail","full_name":"tpoterba/hail","owner":{"login":"tpoterba","id":10562794,"avatar_url":"https://avatars2.githubusercontent.com/u/10562794?v=4","gravatar_id":"","url":"https://api.github.com/users/tpoterba","html_url":"https://github.com/tpoterba","followers_url":"https://api.github.com/users/tpoterba/followers","following_url":"https://api.github.com/users/tpoterba/following{/other_user}","gists_url":"https://api.github.com/users/tpoterba/gists{/gist_id}","starred_url":"https://api.github.com/users/tpoterba/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tpoterba/subscriptions","organizations_url":"https://api.github.com/users/tpoterba/orgs","repos_url":"https://api.github.com/users/tpoterba/repos","events_url":"https://api.github.com/users/tpoterba/events{/privacy}","received_events_url":"https://api.github.com/users/tpoterba/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/tpoterba/hail","description":"Hail, a framework for scalable genetic data analysis","fork":true,"url":"https://api.github.com/repos/tpoterba/hail","forks_url":"https://api.github.com/repos/tpoterba/hail/forks","keys_url":"https://api.github.com/repos/tpoterba/hail/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tpoterba/hail/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tpoterba/hail/teams","hooks_url":"https://api.github.com/repos/tpoterba/hail/hooks","issue_events_url":"https://api.github.com/repos/tpoterba/hail/issues/events{/number}","events_url":"https://api.github.com/repos/tpoterba/hail/events","assignees_url":"https://api.github.com/repos/tpoterba/hail/assignees{/user}","branches_url":"https://api.github.com/repos/tpoterba/hail/branches{/branch}","tags_url":"https://api.github.com/repos/tpoterba/hail/tags","blobs_url":"https://api.github.com/repos/tpoterba/hail/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tpoterba/hail/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tpoterba/hail/git/refs{/sha}","trees_url":"https://api.github.com/repos/tpoterba/hail/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tpoterba/hail/statuses/{sha}","languages_url":"https://api.github.com/repos/tpoterba/hail/languages","stargazers_url":"https://api.github.com/repos/tpoterba/hail/stargazers","contributors_url":"https://api.github.com/repos/tpoterba/hail/contributors","subscribers_url":"https://api.github.com/repos/tpoterba/hail/subscribers","subscription_url":"https://api.github.com/repos/tpoterba/hail/subscription","commits_url":"https://api.github.com/repos/tpoterba/hail/commits{/sha}","git_commits_url":"https://api.github.com/repos/tpoterba/hail/git/commits{/sha}","comments_url":"https://api.github.com/repos/tpoterba/hail/comments{/number}","issue_comment_url":"https://api.github.com/repos/tpoterba/hail/issues/comments{/number}","contents_url":"https://api.github.com/repos/tpoterba/hail/contents/{+path}","compare_url":"https://api.github.com/repos/tpoterba/hail/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tpoterba/hail/merges","archive_url":"https://api.github.com/repos/tpoterba/hail/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tpoterba/hail/downloads","issues_url":"https://api.github.com/repos/tpoterba/hail/issues{/number}","pulls_url":"https://api.github.com/repos/tpoterba/hail/pulls{/number}","milestones_url":"https://api.github.com/repos/tpoterba/hail/milestones{/number}","notifications_url":"https://api.github.com/repos/tpoterba/hail/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tpoterba/hail/labels{/name}","releases_url":"https://api.github.com/repos/tpoterba/hail/releases{/id}","deployments_url":"https://api.github.com/repos/tpoterba/hail/deployments","created_at":"2016-08-03T16:15:03Z","updated_at":"2016-08-03T16:15:05Z","pushed_at":"2018-05-21T14:46:01Z","git_url":"git://github.com/tpoterba/hail.git","ssh_url":"git@github.com:tpoterba/hail.git","clone_url":"https://github.com/tpoterba/hail.git","svn_url":"https://github.com/tpoterba/hail","homepage":"","size":37424,"stargazers_count":0,"watchers_count":0,"language":"Scala","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"hail-is:master","ref":"master","sha":"c8ca698c6ed5cf4ec3342526facb6197401fd7d6","user":{"login":"hail-is","id":20861792,"avatar_url":"https://avatars1.githubusercontent.com/u/20861792?v=4","gravatar_id":"","url":"https://api.github.com/users/hail-is","html_url":"https://github.com/hail-is","followers_url":"https://api.github.com/users/hail-is/followers","following_url":"https://api.github.com/users/hail-is/following{/other_user}","gists_url":"https://api.github.com/users/hail-is/gists{/gist_id}","starred_url":"https://api.github.com/users/hail-is/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hail-is/subscriptions","organizations_url":"https://api.github.com/users/hail-is/orgs","repos_url":"https://api.github.com/users/hail-is/repos","events_url":"https://api.github.com/users/hail-is/events{/privacy}","received_events_url":"https://api.github.com/users/hail-is/received_events","type":"Organization","site_admin":false},"repo":{"id":45069467,"name":"hail","full_name":"hail-is/hail","owner":{"login":"hail-is","id":20861792,"avatar_url":"https://avatars1.githubusercontent.com/u/20861792?v=4","gravatar_id":"","url":"https://api.github.com/users/hail-is","html_url":"https://github.com/hail-is","followers_url":"https://api.github.com/users/hail-is/followers","following_url":"https://api.github.com/users/hail-is/following{/other_user}","gists_url":"https://api.github.com/users/hail-is/gists{/gist_id}","starred_url":"https://api.github.com/users/hail-is/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hail-is/subscriptions","organizations_url":"https://api.github.com/users/hail-is/orgs","repos_url":"https://api.github.com/users/hail-is/repos","events_url":"https://api.github.com/users/hail-is/events{/privacy}","received_events_url":"https://api.github.com/users/hail-is/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/hail-is/hail","description":"Scalable genomic data analysis.","fork":false,"url":"https://api.github.com/repos/hail-is/hail","forks_url":"https://api.github.com/repos/hail-is/hail/forks","keys_url":"https://api.github.com/repos/hail-is/hail/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hail-is/hail/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hail-is/hail/teams","hooks_url":"https://api.github.com/repos/hail-is/hail/hooks","issue_events_url":"https://api.github.com/repos/hail-is/hail/issues/events{/number}","events_url":"https://api.github.com/repos/hail-is/hail/events","assignees_url":"https://api.github.com/repos/hail-is/hail/assignees{/user}","branches_url":"https://api.github.com/repos/hail-is/hail/branches{/branch}","tags_url":"https://api.github.com/repos/hail-is/hail/tags","blobs_url":"https://api.github.com/repos/hail-is/hail/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hail-is/hail/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hail-is/hail/git/refs{/sha}","trees_url":"https://api.github.com/repos/hail-is/hail/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hail-is/hail/statuses/{sha}","languages_url":"https://api.github.com/repos/hail-is/hail/languages","stargazers_url":"https://api.github.com/repos/hail-is/hail/stargazers","contributors_url":"https://api.github.com/repos/hail-is/hail/contributors","subscribers_url":"https://api.github.com/repos/hail-is/hail/subscribers","subscription_url":"https://api.github.com/repos/hail-is/hail/subscription","commits_url":"https://api.github.com/repos/hail-is/hail/commits{/sha}","git_commits_url":"https://api.github.com/repos/hail-is/hail/git/commits{/sha}","comments_url":"https://api.github.com/repos/hail-is/hail/comments{/number}","issue_comment_url":"https://api.github.com/repos/hail-is/hail/issues/comments{/number}","contents_url":"https://api.github.com/repos/hail-is/hail/contents/{+path}","compare_url":"https://api.github.com/repos/hail-is/hail/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hail-is/hail/merges","archive_url":"https://api.github.com/repos/hail-is/hail/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hail-is/hail/downloads","issues_url":"https://api.github.com/repos/hail-is/hail/issues{/number}","pulls_url":"https://api.github.com/repos/hail-is/hail/pulls{/number}","milestones_url":"https://api.github.com/repos/hail-is/hail/milestones{/number}","notifications_url":"https://api.github.com/repos/hail-is/hail/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hail-is/hail/labels{/name}","releases_url":"https://api.github.com/repos/hail-is/hail/releases{/id}","deployments_url":"https://api.github.com/repos/hail-is/hail/deployments","created_at":"2015-10-27T20:55:42Z","updated_at":"2018-05-21T15:04:20Z","pushed_at":"2018-05-21T15:29:45Z","git_url":"git://github.com/hail-is/hail.git","ssh_url":"git@github.com:hail-is/hail.git","clone_url":"https://github.com/hail-is/hail.git","svn_url":"https://github.com/hail-is/hail","homepage":"https://hail.is","size":35669,"stargazers_count":327,"watchers_count":327,"language":"Scala","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":100,"mirror_url":null,"archived":false,"open_issues_count":141,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":100,"open_issues":141,"watchers":327,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/hail-is/hail/pulls/3470"},"html":{"href":"https://github.com/hail-is/hail/pull/3470"},"issue":{"href":"https://api.github.com/repos/hail-is/hail/issues/3470"},"comments":{"href":"https://api.github.com/repos/hail-is/hail/issues/3470/comments"},"review_comments":{"href":"https://api.github.com/repos/hail-is/hail/pulls/3470/comments"},"review_comment":{"href":"https://api.github.com/repos/hail-is/hail/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/hail-is/hail/pulls/3470/commits"},"statuses":{"href":"https://api.github.com/repos/hail-is/hail/statuses/692f43287c865495f1df2598734751449ba01237"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"cseed"}}