{"action":"created","issue":{"url":"https://api.github.com/repos/hippyvm/hippyvm/issues/85","labels_url":"https://api.github.com/repos/hippyvm/hippyvm/issues/85/labels{/name}","comments_url":"https://api.github.com/repos/hippyvm/hippyvm/issues/85/comments","events_url":"https://api.github.com/repos/hippyvm/hippyvm/issues/85/events","html_url":"https://github.com/hippyvm/hippyvm/pull/85","id":55637424,"number":85,"title":"Iterative comparisons","user":{"login":"vext01","id":604955,"avatar_url":"https://avatars.githubusercontent.com/u/604955?v=3","gravatar_id":"","url":"https://api.github.com/users/vext01","html_url":"https://github.com/vext01","followers_url":"https://api.github.com/users/vext01/followers","following_url":"https://api.github.com/users/vext01/following{/other_user}","gists_url":"https://api.github.com/users/vext01/gists{/gist_id}","starred_url":"https://api.github.com/users/vext01/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vext01/subscriptions","organizations_url":"https://api.github.com/users/vext01/orgs","repos_url":"https://api.github.com/users/vext01/repos","events_url":"https://api.github.com/users/vext01/events{/privacy}","received_events_url":"https://api.github.com/users/vext01/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-01-27T16:09:35Z","updated_at":"2015-01-29T16:46:59Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/hippyvm/hippyvm/pulls/85","html_url":"https://github.com/hippyvm/hippyvm/pull/85","diff_url":"https://github.com/hippyvm/hippyvm/pull/85.diff","patch_url":"https://github.com/hippyvm/hippyvm/pull/85.patch"},"body":"In response to #83, this pull request implements an (optimised) iterative comparison.\r\n\r\nPrior to this change, I was unable to run deltablue with a parameter of more than about 1650. Now it runs larger numbers fine.\r\n\r\nBelow are the results before and after on richards and deltablue. Richards is ever so slightly slower, but deltablue is dramatically faster (on par with the same benchmark in python running under pypy).\r\n\r\n```\r\n1: /home/vext01/research/hippyvm.hippyvm/hippy-c-master richards.php\r\n            Mean        Std.Dev.    Min         Median      Max\r\nreal        2.201       0.009       2.194       2.198       2.218       \r\nuser        2.182       0.014       2.164       2.184       2.204       \r\nsys         0.015       0.008       0.008       0.012       0.028       \r\n \r\n1: /home/ltratt/hippy/hippyvm/hippy-c richards.php\r\n            Mean        Std.Dev.    Min         Median      Max\r\nreal        2.223       0.007       2.211       2.226       2.230       \r\nuser        2.203       0.006       2.192       2.204       2.208       \r\nsys         0.016       0.003       0.012       0.016       0.020       \r\n \r\n \r\n \r\n1: /home/vext01/research/hippyvm.hippyvm/hippy-c-master deltablue.php\r\n            Mean        Std.Dev.    Min         Median      Max\r\nreal        3.748       0.007       3.734       3.749       3.756       \r\nuser        3.719       0.015       3.692       3.724       3.732       \r\nsys         0.023       0.008       0.012       0.020       0.036       \r\n \r\n1: /home/ltratt/hippy/hippyvm/hippy-c deltablue.php\r\n            Mean        Std.Dev.    Min         Median      Max\r\nreal        0.317       0.002       0.314       0.318       0.320       \r\nuser        0.302       0.004       0.296       0.304       0.308       \r\nsys         0.013       0.003       0.008       0.012       0.016       \r\n```\r\n\r\nNote that our method _compare() is not being compiled, probably due to the loop. @cfbolz suggested to add a jit merge point for this loop. This should be a separate unit of work.\r\n\r\nNote that hippy does not deal with comparison cycles very well. I will raise an issue for this.\r\n\r\nSorry about the large number of commits, it has been quite a journey, with the algorithm evolving over time.\r\n\r\nThis needs to be carefully reviewed."},"comment":{"url":"https://api.github.com/repos/hippyvm/hippyvm/issues/comments/72059002","html_url":"https://github.com/hippyvm/hippyvm/pull/85#issuecomment-72059002","issue_url":"https://api.github.com/repos/hippyvm/hippyvm/issues/85","id":72059002,"user":{"login":"vext01","id":604955,"avatar_url":"https://avatars.githubusercontent.com/u/604955?v=3","gravatar_id":"","url":"https://api.github.com/users/vext01","html_url":"https://github.com/vext01","followers_url":"https://api.github.com/users/vext01/followers","following_url":"https://api.github.com/users/vext01/following{/other_user}","gists_url":"https://api.github.com/users/vext01/gists{/gist_id}","starred_url":"https://api.github.com/users/vext01/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vext01/subscriptions","organizations_url":"https://api.github.com/users/vext01/orgs","repos_url":"https://api.github.com/users/vext01/repos","events_url":"https://api.github.com/users/vext01/events{/privacy}","received_events_url":"https://api.github.com/users/vext01/received_events","type":"User","site_admin":false},"created_at":"2015-01-29T16:46:59Z","updated_at":"2015-01-29T16:46:59Z","body":"The remaining failing test is a cycle test. This was probably passing by luck before, as hippy does not handle cycles properly. I'm inclined to mark it skip until someone addresses cycles."}}