{"action":"created","issue":{"url":"https://api.github.com/repos/kripken/emscripten/issues/5151","repository_url":"https://api.github.com/repos/kripken/emscripten","labels_url":"https://api.github.com/repos/kripken/emscripten/issues/5151/labels{/name}","comments_url":"https://api.github.com/repos/kripken/emscripten/issues/5151/comments","events_url":"https://api.github.com/repos/kripken/emscripten/issues/5151/events","html_url":"https://github.com/kripken/emscripten/pull/5151","id":223229153,"number":5151,"title":"Change syscall calling convention to not be vararg","user":{"login":"jgravelle-google","id":20847303,"avatar_url":"https://avatars0.githubusercontent.com/u/20847303?v=3","gravatar_id":"","url":"https://api.github.com/users/jgravelle-google","html_url":"https://github.com/jgravelle-google","followers_url":"https://api.github.com/users/jgravelle-google/followers","following_url":"https://api.github.com/users/jgravelle-google/following{/other_user}","gists_url":"https://api.github.com/users/jgravelle-google/gists{/gist_id}","starred_url":"https://api.github.com/users/jgravelle-google/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jgravelle-google/subscriptions","organizations_url":"https://api.github.com/users/jgravelle-google/orgs","repos_url":"https://api.github.com/users/jgravelle-google/repos","events_url":"https://api.github.com/users/jgravelle-google/events{/privacy}","received_events_url":"https://api.github.com/users/jgravelle-google/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":11,"created_at":"2017-04-20T23:18:06Z","updated_at":"2017-05-24T18:51:57Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/kripken/emscripten/pulls/5151","html_url":"https://github.com/kripken/emscripten/pull/5151","diff_url":"https://github.com/kripken/emscripten/pull/5151.diff","patch_url":"https://github.com/kripken/emscripten/pull/5151.patch"},"body":"Instead of calling syscalls as vararg, call them as fixed-seven-arg.\r\n\r\nFor syscalls with few arguments this is a small code size regression, we might trade one `i32.store` for six extra `i32.const`s.\r\nFor syscalls with many arguments, this is a small code size improvement, we eliminate `i32.store`s into the vararg buffer.\r\nFor all syscalls this can sometimes be a moderate code size improvement - if the function otherwise doesn't write to the stack, we can avoid emitting a prologue/epilogue entirely (e.g. `__stdio_close`).\r\nFor all syscalls this should be a performance improvement - we don't need to touch linear memory to marshal arguments.\r\nThis also simplifies our argument handling on the JS library side - instead of reading from a vararg buffer, we can just use standard JS arguments."},"comment":{"url":"https://api.github.com/repos/kripken/emscripten/issues/comments/303817650","html_url":"https://github.com/kripken/emscripten/pull/5151#issuecomment-303817650","issue_url":"https://api.github.com/repos/kripken/emscripten/issues/5151","id":303817650,"user":{"login":"cretz","id":206396,"avatar_url":"https://avatars3.githubusercontent.com/u/206396?v=3","gravatar_id":"","url":"https://api.github.com/users/cretz","html_url":"https://github.com/cretz","followers_url":"https://api.github.com/users/cretz/followers","following_url":"https://api.github.com/users/cretz/following{/other_user}","gists_url":"https://api.github.com/users/cretz/gists{/gist_id}","starred_url":"https://api.github.com/users/cretz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cretz/subscriptions","organizations_url":"https://api.github.com/users/cretz/orgs","repos_url":"https://api.github.com/users/cretz/repos","events_url":"https://api.github.com/users/cretz/events{/privacy}","received_events_url":"https://api.github.com/users/cretz/received_events","type":"User","site_admin":false},"created_at":"2017-05-24T18:51:57Z","updated_at":"2017-05-24T18:51:57Z","body":"Good deal, just making sure the PR wasn't abandoned. I was trying to avoid standalone because I liked the pieces that compiled down to syscalls. Granted I could compile musl myself, but I figured there was benefit for non-web embeddings to leverage an unchanged wasm across platforms as compiled by emscripten."}}
{"actor":{"display_login":"cretz"}}