{"action":"closed","number":12,"pull_request":{"url":"https://api.github.com/repos/dop251/goja/pulls/12","id":99763377,"html_url":"https://github.com/dop251/goja/pull/12","diff_url":"https://github.com/dop251/goja/pull/12.diff","patch_url":"https://github.com/dop251/goja/pull/12.patch","issue_url":"https://api.github.com/repos/dop251/goja/issues/12","number":12,"state":"closed","locked":false,"title":"compiler: create eval vm lazily","user":{"login":"dennwc","id":676724,"avatar_url":"https://avatars.githubusercontent.com/u/676724?v=3","gravatar_id":"","url":"https://api.github.com/users/dennwc","html_url":"https://github.com/dennwc","followers_url":"https://api.github.com/users/dennwc/followers","following_url":"https://api.github.com/users/dennwc/following{/other_user}","gists_url":"https://api.github.com/users/dennwc/gists{/gist_id}","starred_url":"https://api.github.com/users/dennwc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dennwc/subscriptions","organizations_url":"https://api.github.com/users/dennwc/orgs","repos_url":"https://api.github.com/users/dennwc/repos","events_url":"https://api.github.com/users/dennwc/events{/privacy}","received_events_url":"https://api.github.com/users/dennwc/received_events","type":"User","site_admin":false},"body":"In some cases `compiler.evalVM` will not be used at all, thus it's initialization may be postponed.\r\n\r\nBenchmarks (equal results omitted):\r\n```\r\nbenchmark                   old ns/op      new ns/op      delta\r\nBenchmarkCompile-8          2732180        2518783        -7.81%\r\nBenchmarkGoReflectGet-8     2461           2444           -0.69%\r\nBenchmarkPut-8              47.7           48.1           +0.84%\r\nBenchmarkPutStr-8           42.1           42.5           +0.95%\r\nBenchmarkGet-8              14.5           14.2           -2.07%\r\nBenchmarkArrayGetStr-8      23.0           23.8           +3.48%\r\nBenchmarkArrayGet-8         63.0           62.5           -0.79%\r\nBenchmarkArrayPut-8         17.1           17.2           +0.58%\r\nBenchmarkToUTF8String-8     2.87           2.89           +0.70%\r\nBenchmarkAdd-8              29.9           29.5           -1.34%\r\nBenchmarkAddString-8        257            255            -0.78%\r\nBenchmarkVmNOP2-8           6.09           6.01           -1.31%\r\nBenchmarkVmNOP1-8           37.8           37.1           -1.85%\r\nBenchmarkVmNOP-8            11.2           11.3           +0.89%\r\nBenchmarkVm1-8              47.8           47.7           -0.21%\r\nBenchmarkFib-8              6369867368     6175009895     -3.06%\r\nBenchmarkEmptyLoop-8        14147          13937          -1.48%\r\nBenchmarkVMAdd-8            22.7           23.5           +3.52%\r\n\r\nbenchmark                   old allocs     new allocs     delta\r\nBenchmarkCompile-8          19662          18548          -5.67%\r\n\r\nbenchmark                   old bytes     new bytes     delta\r\nBenchmarkCompile-8          1089561       1004613       -7.80%\r\n```\r\nNot impressive, but we see a ишп difference in Cayley benchmarks:\r\n```\r\nbenchmark                                     old ns/op     new ns/op     delta\r\nBenchmarkNamePredicate-8                      261923        118779        -54.65%\r\nBenchmarkLargeSetsNoIntersection-8            8579990       8159019       -4.91%\r\nBenchmarkNetAndSpeed-8                        1287894       1104681       -14.23%\r\nBenchmarkKeanuAndNet-8                        798786        699346        -12.45%\r\nBenchmarkKeanuAndSpeed-8                      1051742       906926        -13.77%\r\nBenchmarkKeanuOther-8                         5587661       5359762       -4.08%\r\nBenchmarkKeanuBullockOther-8                  9217982       8997914       -2.39%\r\nBenchmarkSaveBogartPerformances-8             485717        349294        -28.09%\r\n\r\nbenchmark                                     old allocs     new allocs     delta\r\nBenchmarkNamePredicate-8                      1512           476            -68.52%\r\nBenchmarkLargeSetsNoIntersection-8            41054          40018          -2.52%\r\nBenchmarkNetAndSpeed-8                        7282           6246           -14.23%\r\nBenchmarkKeanuAndNet-8                        5043           4006           -20.56%\r\nBenchmarkKeanuAndSpeed-8                      6081           5045           -17.04%\r\nBenchmarkKeanuOther-8                         24753          23718          -4.18%\r\nBenchmarkKeanuBullockOther-8                  39915          38877          -2.60%\r\nBenchmarkSaveBogartPerformances-8             2520           1483           -41.15%\r\n\r\nbenchmark                                     old bytes     new bytes     delta\r\nBenchmarkNamePredicate-8                      115923        31931         -72.45%\r\nBenchmarkLargeSetsNoIntersection-8            3681374       3597895       -2.27%\r\nBenchmarkNetAndSpeed-8                        574895        490839        -14.62%\r\nBenchmarkKeanuAndNet-8                        372253        288244        -22.57%\r\nBenchmarkKeanuAndSpeed-8                      471166        387177        -17.83%\r\nBenchmarkKeanuOther-8                         2249745       2166046       -3.72%\r\nBenchmarkKeanuBullockOther-8                  3644516       3560284       -2.31%\r\nBenchmarkSaveBogartPerformances-8             198144        114189        -42.37%\r\n```","created_at":"2016-12-30T16:09:23Z","updated_at":"2016-12-30T16:39:22Z","closed_at":"2016-12-30T16:39:22Z","merged_at":"2016-12-30T16:39:22Z","merge_commit_sha":"64f863c4eb0329df18ecd1dab1e03609556bfaca","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/dop251/goja/pulls/12/commits","review_comments_url":"https://api.github.com/repos/dop251/goja/pulls/12/comments","review_comment_url":"https://api.github.com/repos/dop251/goja/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dop251/goja/issues/12/comments","statuses_url":"https://api.github.com/repos/dop251/goja/statuses/2e54e35d67f6f3c0f7a79f2c3ecc745379945654","head":{"label":"dennwc:lazy_eval_vm","ref":"lazy_eval_vm","sha":"2e54e35d67f6f3c0f7a79f2c3ecc745379945654","user":{"login":"dennwc","id":676724,"avatar_url":"https://avatars.githubusercontent.com/u/676724?v=3","gravatar_id":"","url":"https://api.github.com/users/dennwc","html_url":"https://github.com/dennwc","followers_url":"https://api.github.com/users/dennwc/followers","following_url":"https://api.github.com/users/dennwc/following{/other_user}","gists_url":"https://api.github.com/users/dennwc/gists{/gist_id}","starred_url":"https://api.github.com/users/dennwc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dennwc/subscriptions","organizations_url":"https://api.github.com/users/dennwc/orgs","repos_url":"https://api.github.com/users/dennwc/repos","events_url":"https://api.github.com/users/dennwc/events{/privacy}","received_events_url":"https://api.github.com/users/dennwc/received_events","type":"User","site_admin":false},"repo":{"id":77695743,"name":"goja","full_name":"dennwc/goja","owner":{"login":"dennwc","id":676724,"avatar_url":"https://avatars.githubusercontent.com/u/676724?v=3","gravatar_id":"","url":"https://api.github.com/users/dennwc","html_url":"https://github.com/dennwc","followers_url":"https://api.github.com/users/dennwc/followers","following_url":"https://api.github.com/users/dennwc/following{/other_user}","gists_url":"https://api.github.com/users/dennwc/gists{/gist_id}","starred_url":"https://api.github.com/users/dennwc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dennwc/subscriptions","organizations_url":"https://api.github.com/users/dennwc/orgs","repos_url":"https://api.github.com/users/dennwc/repos","events_url":"https://api.github.com/users/dennwc/events{/privacy}","received_events_url":"https://api.github.com/users/dennwc/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dennwc/goja","description":"ECMAScript 5.1(+) implementation written in Go","fork":true,"url":"https://api.github.com/repos/dennwc/goja","forks_url":"https://api.github.com/repos/dennwc/goja/forks","keys_url":"https://api.github.com/repos/dennwc/goja/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dennwc/goja/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dennwc/goja/teams","hooks_url":"https://api.github.com/repos/dennwc/goja/hooks","issue_events_url":"https://api.github.com/repos/dennwc/goja/issues/events{/number}","events_url":"https://api.github.com/repos/dennwc/goja/events","assignees_url":"https://api.github.com/repos/dennwc/goja/assignees{/user}","branches_url":"https://api.github.com/repos/dennwc/goja/branches{/branch}","tags_url":"https://api.github.com/repos/dennwc/goja/tags","blobs_url":"https://api.github.com/repos/dennwc/goja/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dennwc/goja/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dennwc/goja/git/refs{/sha}","trees_url":"https://api.github.com/repos/dennwc/goja/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dennwc/goja/statuses/{sha}","languages_url":"https://api.github.com/repos/dennwc/goja/languages","stargazers_url":"https://api.github.com/repos/dennwc/goja/stargazers","contributors_url":"https://api.github.com/repos/dennwc/goja/contributors","subscribers_url":"https://api.github.com/repos/dennwc/goja/subscribers","subscription_url":"https://api.github.com/repos/dennwc/goja/subscription","commits_url":"https://api.github.com/repos/dennwc/goja/commits{/sha}","git_commits_url":"https://api.github.com/repos/dennwc/goja/git/commits{/sha}","comments_url":"https://api.github.com/repos/dennwc/goja/comments{/number}","issue_comment_url":"https://api.github.com/repos/dennwc/goja/issues/comments{/number}","contents_url":"https://api.github.com/repos/dennwc/goja/contents/{+path}","compare_url":"https://api.github.com/repos/dennwc/goja/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dennwc/goja/merges","archive_url":"https://api.github.com/repos/dennwc/goja/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dennwc/goja/downloads","issues_url":"https://api.github.com/repos/dennwc/goja/issues{/number}","pulls_url":"https://api.github.com/repos/dennwc/goja/pulls{/number}","milestones_url":"https://api.github.com/repos/dennwc/goja/milestones{/number}","notifications_url":"https://api.github.com/repos/dennwc/goja/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dennwc/goja/labels{/name}","releases_url":"https://api.github.com/repos/dennwc/goja/releases{/id}","deployments_url":"https://api.github.com/repos/dennwc/goja/deployments","created_at":"2016-12-30T15:53:44Z","updated_at":"2016-12-30T15:53:47Z","pushed_at":"2016-12-30T15:57:12Z","git_url":"git://github.com/dennwc/goja.git","ssh_url":"git@github.com:dennwc/goja.git","clone_url":"https://github.com/dennwc/goja.git","svn_url":"https://github.com/dennwc/goja","homepage":"","size":269,"stargazers_count":0,"watchers_count":0,"language":"Go","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":"dop251:master","ref":"master","sha":"64bfa769d0e37a31b1d6a8407a4816b1ee5dedba","user":{"login":"dop251","id":995021,"avatar_url":"https://avatars.githubusercontent.com/u/995021?v=3","gravatar_id":"","url":"https://api.github.com/users/dop251","html_url":"https://github.com/dop251","followers_url":"https://api.github.com/users/dop251/followers","following_url":"https://api.github.com/users/dop251/following{/other_user}","gists_url":"https://api.github.com/users/dop251/gists{/gist_id}","starred_url":"https://api.github.com/users/dop251/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dop251/subscriptions","organizations_url":"https://api.github.com/users/dop251/orgs","repos_url":"https://api.github.com/users/dop251/repos","events_url":"https://api.github.com/users/dop251/events{/privacy}","received_events_url":"https://api.github.com/users/dop251/received_events","type":"User","site_admin":false},"repo":{"id":72888736,"name":"goja","full_name":"dop251/goja","owner":{"login":"dop251","id":995021,"avatar_url":"https://avatars.githubusercontent.com/u/995021?v=3","gravatar_id":"","url":"https://api.github.com/users/dop251","html_url":"https://github.com/dop251","followers_url":"https://api.github.com/users/dop251/followers","following_url":"https://api.github.com/users/dop251/following{/other_user}","gists_url":"https://api.github.com/users/dop251/gists{/gist_id}","starred_url":"https://api.github.com/users/dop251/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dop251/subscriptions","organizations_url":"https://api.github.com/users/dop251/orgs","repos_url":"https://api.github.com/users/dop251/repos","events_url":"https://api.github.com/users/dop251/events{/privacy}","received_events_url":"https://api.github.com/users/dop251/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dop251/goja","description":"ECMAScript 5.1(+) implementation written in Go","fork":false,"url":"https://api.github.com/repos/dop251/goja","forks_url":"https://api.github.com/repos/dop251/goja/forks","keys_url":"https://api.github.com/repos/dop251/goja/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dop251/goja/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dop251/goja/teams","hooks_url":"https://api.github.com/repos/dop251/goja/hooks","issue_events_url":"https://api.github.com/repos/dop251/goja/issues/events{/number}","events_url":"https://api.github.com/repos/dop251/goja/events","assignees_url":"https://api.github.com/repos/dop251/goja/assignees{/user}","branches_url":"https://api.github.com/repos/dop251/goja/branches{/branch}","tags_url":"https://api.github.com/repos/dop251/goja/tags","blobs_url":"https://api.github.com/repos/dop251/goja/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dop251/goja/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dop251/goja/git/refs{/sha}","trees_url":"https://api.github.com/repos/dop251/goja/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dop251/goja/statuses/{sha}","languages_url":"https://api.github.com/repos/dop251/goja/languages","stargazers_url":"https://api.github.com/repos/dop251/goja/stargazers","contributors_url":"https://api.github.com/repos/dop251/goja/contributors","subscribers_url":"https://api.github.com/repos/dop251/goja/subscribers","subscription_url":"https://api.github.com/repos/dop251/goja/subscription","commits_url":"https://api.github.com/repos/dop251/goja/commits{/sha}","git_commits_url":"https://api.github.com/repos/dop251/goja/git/commits{/sha}","comments_url":"https://api.github.com/repos/dop251/goja/comments{/number}","issue_comment_url":"https://api.github.com/repos/dop251/goja/issues/comments{/number}","contents_url":"https://api.github.com/repos/dop251/goja/contents/{+path}","compare_url":"https://api.github.com/repos/dop251/goja/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dop251/goja/merges","archive_url":"https://api.github.com/repos/dop251/goja/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dop251/goja/downloads","issues_url":"https://api.github.com/repos/dop251/goja/issues{/number}","pulls_url":"https://api.github.com/repos/dop251/goja/pulls{/number}","milestones_url":"https://api.github.com/repos/dop251/goja/milestones{/number}","notifications_url":"https://api.github.com/repos/dop251/goja/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dop251/goja/labels{/name}","releases_url":"https://api.github.com/repos/dop251/goja/releases{/id}","deployments_url":"https://api.github.com/repos/dop251/goja/deployments","created_at":"2016-11-04T22:04:06Z","updated_at":"2016-12-28T14:48:15Z","pushed_at":"2016-12-30T16:39:22Z","git_url":"git://github.com/dop251/goja.git","ssh_url":"git@github.com:dop251/goja.git","clone_url":"https://github.com/dop251/goja.git","svn_url":"https://github.com/dop251/goja","homepage":"","size":269,"stargazers_count":568,"watchers_count":568,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":14,"mirror_url":null,"open_issues_count":3,"forks":14,"open_issues":3,"watchers":568,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dop251/goja/pulls/12"},"html":{"href":"https://github.com/dop251/goja/pull/12"},"issue":{"href":"https://api.github.com/repos/dop251/goja/issues/12"},"comments":{"href":"https://api.github.com/repos/dop251/goja/issues/12/comments"},"review_comments":{"href":"https://api.github.com/repos/dop251/goja/pulls/12/comments"},"review_comment":{"href":"https://api.github.com/repos/dop251/goja/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dop251/goja/pulls/12/commits"},"statuses":{"href":"https://api.github.com/repos/dop251/goja/statuses/2e54e35d67f6f3c0f7a79f2c3ecc745379945654"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"dop251","id":995021,"avatar_url":"https://avatars.githubusercontent.com/u/995021?v=3","gravatar_id":"","url":"https://api.github.com/users/dop251","html_url":"https://github.com/dop251","followers_url":"https://api.github.com/users/dop251/followers","following_url":"https://api.github.com/users/dop251/following{/other_user}","gists_url":"https://api.github.com/users/dop251/gists{/gist_id}","starred_url":"https://api.github.com/users/dop251/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dop251/subscriptions","organizations_url":"https://api.github.com/users/dop251/orgs","repos_url":"https://api.github.com/users/dop251/repos","events_url":"https://api.github.com/users/dop251/events{/privacy}","received_events_url":"https://api.github.com/users/dop251/received_events","type":"User","site_admin":false},"comments":0,"review_comments":0,"maintainer_can_modify":false,"commits":1,"additions":3,"deletions":1,"changed_files":2}}
{"actor":{"display_login":"dop251"}}