{"action":"created","issue":{"url":"https://api.github.com/repos/WebAssembly/design/issues/105","labels_url":"https://api.github.com/repos/WebAssembly/design/issues/105/labels{/name}","comments_url":"https://api.github.com/repos/WebAssembly/design/issues/105/comments","events_url":"https://api.github.com/repos/WebAssembly/design/issues/105/events","html_url":"https://github.com/WebAssembly/design/issues/105","id":84107089,"number":105,"title":"Alignment will probably require implementation-defined behavior","user":{"login":"titzer","id":12184276,"avatar_url":"https://avatars.githubusercontent.com/u/12184276?v=3","gravatar_id":"","url":"https://api.github.com/users/titzer","html_url":"https://github.com/titzer","followers_url":"https://api.github.com/users/titzer/followers","following_url":"https://api.github.com/users/titzer/following{/other_user}","gists_url":"https://api.github.com/users/titzer/gists{/gist_id}","starred_url":"https://api.github.com/users/titzer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/titzer/subscriptions","organizations_url":"https://api.github.com/users/titzer/orgs","repos_url":"https://api.github.com/users/titzer/repos","events_url":"https://api.github.com/users/titzer/events{/privacy}","received_events_url":"https://api.github.com/users/titzer/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/WebAssembly/design/milestones/2","html_url":"https://github.com/WebAssembly/design/milestones/MVP","labels_url":"https://api.github.com/repos/WebAssembly/design/milestones/2/labels","id":1138963,"number":2,"title":"MVP","description":"","creator":{"login":"sunfishcode","id":4503403,"avatar_url":"https://avatars.githubusercontent.com/u/4503403?v=3","gravatar_id":"","url":"https://api.github.com/users/sunfishcode","html_url":"https://github.com/sunfishcode","followers_url":"https://api.github.com/users/sunfishcode/followers","following_url":"https://api.github.com/users/sunfishcode/following{/other_user}","gists_url":"https://api.github.com/users/sunfishcode/gists{/gist_id}","starred_url":"https://api.github.com/users/sunfishcode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sunfishcode/subscriptions","organizations_url":"https://api.github.com/users/sunfishcode/orgs","repos_url":"https://api.github.com/users/sunfishcode/repos","events_url":"https://api.github.com/users/sunfishcode/events{/privacy}","received_events_url":"https://api.github.com/users/sunfishcode/received_events","type":"User","site_admin":false},"open_issues":26,"closed_issues":4,"state":"open","created_at":"2015-05-29T00:13:49Z","updated_at":"2015-07-29T18:58:22Z","due_on":null,"closed_at":null},"comments":67,"created_at":"2015-06-02T17:00:22Z","updated_at":"2015-08-06T17:13:26Z","closed_at":null,"body":"It seems that some ARM implementations may ignore the low order bits of unaligned memory accesses and thus round down to the next aligned address. That would mean that every access that the engine cannot prove is properly aligned would need a dynamic check (since these processors won't cause a hardware fault). That may be too slow or too much code.\r\n\r\nWould it be reasonable to spec aligned/unaligned accesses thusly?\r\n\r\n- All accesses require alignment to be specified.\r\n- Load/Store[aligned=true] have implementation-defined behavior when the offset is not actually aligned.\r\n- Load/Store[aligned=unknown] never have implementation-defined behavior, but may be slow on some architectures when the offset is not actually aligned.\r\n\r\nFor both kinds of accesses we could specify a sanitizer mode that will trap on Load/Store[aligned=true] (actually not aligned) and profile or warn on Load/Store[aligned=unknown] (actually not aligned).\r\n\r\nThe above would allow the engine to omit checks for the [aligned=true] case, accepting whatever the hardware does, but still require it to emit checks for [aligned=unknown] on these processors."},"comment":{"url":"https://api.github.com/repos/WebAssembly/design/issues/comments/128447885","html_url":"https://github.com/WebAssembly/design/issues/105#issuecomment-128447885","issue_url":"https://api.github.com/repos/WebAssembly/design/issues/105","id":128447885,"user":{"login":"lukewagner","id":9660325,"avatar_url":"https://avatars.githubusercontent.com/u/9660325?v=3","gravatar_id":"","url":"https://api.github.com/users/lukewagner","html_url":"https://github.com/lukewagner","followers_url":"https://api.github.com/users/lukewagner/followers","following_url":"https://api.github.com/users/lukewagner/following{/other_user}","gists_url":"https://api.github.com/users/lukewagner/gists{/gist_id}","starred_url":"https://api.github.com/users/lukewagner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukewagner/subscriptions","organizations_url":"https://api.github.com/users/lukewagner/orgs","repos_url":"https://api.github.com/users/lukewagner/repos","events_url":"https://api.github.com/users/lukewagner/events{/privacy}","received_events_url":"https://api.github.com/users/lukewagner/received_events","type":"User","site_admin":false},"created_at":"2015-08-06T17:13:26Z","updated_at":"2015-08-06T17:13:26Z","body":"Thanks for that information!  So this also suggests we don't need any changes from what's in the spec.  @titzer any other issues to consider before closing?"}}