{"action":"created","issue":{"url":"https://api.github.com/repos/HaxeFoundation/nekovm.org/issues/14","repository_url":"https://api.github.com/repos/HaxeFoundation/nekovm.org","labels_url":"https://api.github.com/repos/HaxeFoundation/nekovm.org/issues/14/labels{/name}","comments_url":"https://api.github.com/repos/HaxeFoundation/nekovm.org/issues/14/comments","events_url":"https://api.github.com/repos/HaxeFoundation/nekovm.org/issues/14/events","html_url":"https://github.com/HaxeFoundation/nekovm.org/issues/14","id":166694839,"number":14,"title":"[Feature request] Add actual bytecode specification to Virtual Machine docs","user":{"login":"gamemanj","id":3986086,"avatar_url":"https://avatars.githubusercontent.com/u/3986086?v=3","gravatar_id":"","url":"https://api.github.com/users/gamemanj","html_url":"https://github.com/gamemanj","followers_url":"https://api.github.com/users/gamemanj/followers","following_url":"https://api.github.com/users/gamemanj/following{/other_user}","gists_url":"https://api.github.com/users/gamemanj/gists{/gist_id}","starred_url":"https://api.github.com/users/gamemanj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gamemanj/subscriptions","organizations_url":"https://api.github.com/users/gamemanj/orgs","repos_url":"https://api.github.com/users/gamemanj/repos","events_url":"https://api.github.com/users/gamemanj/events{/privacy}","received_events_url":"https://api.github.com/users/gamemanj/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":{"login":"ncannasse","id":1022912,"avatar_url":"https://avatars.githubusercontent.com/u/1022912?v=3","gravatar_id":"","url":"https://api.github.com/users/ncannasse","html_url":"https://github.com/ncannasse","followers_url":"https://api.github.com/users/ncannasse/followers","following_url":"https://api.github.com/users/ncannasse/following{/other_user}","gists_url":"https://api.github.com/users/ncannasse/gists{/gist_id}","starred_url":"https://api.github.com/users/ncannasse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ncannasse/subscriptions","organizations_url":"https://api.github.com/users/ncannasse/orgs","repos_url":"https://api.github.com/users/ncannasse/repos","events_url":"https://api.github.com/users/ncannasse/events{/privacy}","received_events_url":"https://api.github.com/users/ncannasse/received_events","type":"User","site_admin":false},"assignees":[{"login":"ncannasse","id":1022912,"avatar_url":"https://avatars.githubusercontent.com/u/1022912?v=3","gravatar_id":"","url":"https://api.github.com/users/ncannasse","html_url":"https://github.com/ncannasse","followers_url":"https://api.github.com/users/ncannasse/followers","following_url":"https://api.github.com/users/ncannasse/following{/other_user}","gists_url":"https://api.github.com/users/ncannasse/gists{/gist_id}","starred_url":"https://api.github.com/users/ncannasse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ncannasse/subscriptions","organizations_url":"https://api.github.com/users/ncannasse/orgs","repos_url":"https://api.github.com/users/ncannasse/repos","events_url":"https://api.github.com/users/ncannasse/events{/privacy}","received_events_url":"https://api.github.com/users/ncannasse/received_events","type":"User","site_admin":false}],"milestone":null,"comments":1,"created_at":"2016-07-20T22:13:49Z","updated_at":"2016-07-21T20:13:20Z","closed_at":"2016-07-21T20:13:20Z","body":"Neko (the language) is, if I'm reading this correctly, meant to be used as a compiler target.\r\nHowever, before actually being executed, it has to be run through nekoc (a NekoML program).\r\nThe output of nekoc is useful, as there is little room for error when interpreting it, or possibility for unimplemented feature ambiguity (like NXML).\r\nFurthermore, there is always the case of people, for whatever reason, shipping \".n\" binaries (such as the bootstrap binaries that come with the source of Neko - even assuming nekoc is useless for a VM, NekoML can export to the Neko intermediate form, so running it would be useful - but you can't run NekoML without NekoML or a way to execute the NekoML .n file...), so even a VM that starts from Neko is going to encounter issues.\r\n\r\nThe Virtual Machine docs don't actually describe the Virtual Machine. They describe the implementation of the Virtual Machine and how to communicate it, which is certainly useful, but doesn't actually give any way for prospective implementors to write an interpreter.\r\nThey instead have to go searching through the existing interpreter for the information (specific points of interest are module.c and interp.c), which is not ideal.\r\n\r\nFor these reasons (and presumably you can work out more), it would be nice to have documentation on the \".n\" format, the bytecode compression and the actual instruction formats in the file.\r\n(Another note: There is also no table, anywhere that I know, that directly puts numbers to the names of the opcodes. It's all implied by C enums.)"},"comment":{"url":"https://api.github.com/repos/HaxeFoundation/nekovm.org/issues/comments/234369640","html_url":"https://github.com/HaxeFoundation/nekovm.org/issues/14#issuecomment-234369640","issue_url":"https://api.github.com/repos/HaxeFoundation/nekovm.org/issues/14","id":234369640,"user":{"login":"ncannasse","id":1022912,"avatar_url":"https://avatars.githubusercontent.com/u/1022912?v=3","gravatar_id":"","url":"https://api.github.com/users/ncannasse","html_url":"https://github.com/ncannasse","followers_url":"https://api.github.com/users/ncannasse/followers","following_url":"https://api.github.com/users/ncannasse/following{/other_user}","gists_url":"https://api.github.com/users/ncannasse/gists{/gist_id}","starred_url":"https://api.github.com/users/ncannasse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ncannasse/subscriptions","organizations_url":"https://api.github.com/users/ncannasse/orgs","repos_url":"https://api.github.com/users/ncannasse/repos","events_url":"https://api.github.com/users/ncannasse/events{/privacy}","received_events_url":"https://api.github.com/users/ncannasse/received_events","type":"User","site_admin":false},"created_at":"2016-07-21T20:13:20Z","updated_at":"2016-07-21T20:13:20Z","body":"I don't have much time to document the NekoVM bytecode, but you can find a reference implementation for reading it there: https://github.com/HaxeFoundation/format/tree/master/format/neko"}}
{"actor":{"display_login":"ncannasse"}}