{"action":"created","issue":{"url":"https://api.github.com/repos/Sable/heros/issues/16","repository_url":"https://api.github.com/repos/Sable/heros","labels_url":"https://api.github.com/repos/Sable/heros/issues/16/labels{/name}","comments_url":"https://api.github.com/repos/Sable/heros/issues/16/comments","events_url":"https://api.github.com/repos/Sable/heros/issues/16/events","html_url":"https://github.com/Sable/heros/pull/16","id":91068267,"number":16,"title":"Adds method to debug IFDS edges","user":{"login":"jtoman","id":1179044,"avatar_url":"https://avatars.githubusercontent.com/u/1179044?v=3","gravatar_id":"","url":"https://api.github.com/users/jtoman","html_url":"https://github.com/jtoman","followers_url":"https://api.github.com/users/jtoman/followers","following_url":"https://api.github.com/users/jtoman/following{/other_user}","gists_url":"https://api.github.com/users/jtoman/gists{/gist_id}","starred_url":"https://api.github.com/users/jtoman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jtoman/subscriptions","organizations_url":"https://api.github.com/users/jtoman/orgs","repos_url":"https://api.github.com/users/jtoman/repos","events_url":"https://api.github.com/users/jtoman/events{/privacy}","received_events_url":"https://api.github.com/users/jtoman/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":9,"created_at":"2015-06-25T20:31:19Z","updated_at":"2016-06-27T15:41:36Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/Sable/heros/pulls/16","html_url":"https://github.com/Sable/heros/pull/16","diff_url":"https://github.com/Sable/heros/pull/16.diff","patch_url":"https://github.com/Sable/heros/pull/16.patch"},"body":"Extends the IDE solver to optionally record all intermediate edges created\r\nby the user specified flow functions. These results can be used by\r\nsubclasses to debug or visualize the results of the algorithm.\r\n\r\nRecording is opt-in, and is specified by the problem instance passed to the\r\nsolver. For backwards compatibility a new interface, DebugSolverConfiguration\r\nhas been added which currently contains the function: recordEdges which\r\nindicates whether edges should be saved. For backwards compatibility, if the\r\nproblem does not implement the interface recordEdges is assumed to be\r\nfalse.\r\n\r\nIt is unclear if the fieldsens solver could also be extended, but it has the\r\nDebugger object which maybe (?) could be updated to do something similar.\r\nIt's possible that it is desirable to extend the current IDESolver to support\r\na similar mechanism, which would simply subsume this commit.\r\n\r\nI have a simple implementation that can use these recorded edges to generate a dot file visualizing the flows computed by the solver (not included in this commit)."},"comment":{"url":"https://api.github.com/repos/Sable/heros/issues/comments/228784894","html_url":"https://github.com/Sable/heros/pull/16#issuecomment-228784894","issue_url":"https://api.github.com/repos/Sable/heros/issues/16","id":228784894,"user":{"login":"jtoman","id":1179044,"avatar_url":"https://avatars.githubusercontent.com/u/1179044?v=3","gravatar_id":"","url":"https://api.github.com/users/jtoman","html_url":"https://github.com/jtoman","followers_url":"https://api.github.com/users/jtoman/followers","following_url":"https://api.github.com/users/jtoman/following{/other_user}","gists_url":"https://api.github.com/users/jtoman/gists{/gist_id}","starred_url":"https://api.github.com/users/jtoman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jtoman/subscriptions","organizations_url":"https://api.github.com/users/jtoman/orgs","repos_url":"https://api.github.com/users/jtoman/repos","events_url":"https://api.github.com/users/jtoman/events{/privacy}","received_events_url":"https://api.github.com/users/jtoman/received_events","type":"User","site_admin":false},"created_at":"2016-06-27T15:41:36Z","updated_at":"2016-06-27T15:41:36Z","body":"* I apologize, something happened I was rebasing to bump the project configuration to 1.7. This also explains the classpath issue.\r\n* Will do!\r\n* Yes, I just store the edges and not their classification. Intra-procedural vs. inter-procedural is done just by looking at the containing method of the source/dest facts. I can certainly add support for this at the cost of some extra debug state."}}
{"actor":{"display_login":"jtoman"}}