{"action":"created","issue":{"url":"https://api.github.com/repos/DerelictOrg/DerelictUtil/issues/17","repository_url":"https://api.github.com/repos/DerelictOrg/DerelictUtil","labels_url":"https://api.github.com/repos/DerelictOrg/DerelictUtil/issues/17/labels{/name}","comments_url":"https://api.github.com/repos/DerelictOrg/DerelictUtil/issues/17/comments","events_url":"https://api.github.com/repos/DerelictOrg/DerelictUtil/issues/17/events","html_url":"https://github.com/DerelictOrg/DerelictUtil/issues/17","id":180667097,"number":17,"title":"A runtime-free Derelict as a configuration?","user":{"login":"p0nce","id":1067485,"avatar_url":"https://avatars.githubusercontent.com/u/1067485?v=3","gravatar_id":"","url":"https://api.github.com/users/p0nce","html_url":"https://github.com/p0nce","followers_url":"https://api.github.com/users/p0nce/followers","following_url":"https://api.github.com/users/p0nce/following{/other_user}","gists_url":"https://api.github.com/users/p0nce/gists{/gist_id}","starred_url":"https://api.github.com/users/p0nce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/p0nce/subscriptions","organizations_url":"https://api.github.com/users/p0nce/orgs","repos_url":"https://api.github.com/users/p0nce/repos","events_url":"https://api.github.com/users/p0nce/events{/privacy}","received_events_url":"https://api.github.com/users/p0nce/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":8,"created_at":"2016-10-03T15:15:33Z","updated_at":"2016-10-04T12:38:02Z","closed_at":null,"body":"Hi @mdparker ,\r\n\r\nOver the course of a complicated course of events (https://github.com/AuburnSounds/dplug/issues/129), it appears I have to run without the runtime initialized (let's call it \"runtime-free\" as opposed to \"runtime-less\"?). That means no GC, no global ctor/dtor, no slice literals, and no TLS. As it appears quite a lot of things can run without the runtime already though.\r\n\r\nAs I understand it, Derelict uses:\r\n- `shared static this()` for initializing loaders,\r\n- the GC for exceptions\r\n- slice concatenation\r\n\r\nAre you OK with me exploring this possibility in the form of a PR?\r\n\r\nUnknown symbols could be handled either with a static exception (Error) or with `assert(false)` instead (both are acceptable for this use case).\r\n\r\nLoaders can be created and destroyed without the runtime enabled, provided they don't throw in their destructors.\r\n\r\nThis could be a DUB configuration, then selectable with `subConfigurations` in dependent packages. I think this is something Mir would also stumble upon if they want to go runtime-free.\r\n\r\nThe goal is to be able to use DerelictCocoa and DerelictCarbon without runtime."},"comment":{"url":"https://api.github.com/repos/DerelictOrg/DerelictUtil/issues/comments/251375754","html_url":"https://github.com/DerelictOrg/DerelictUtil/issues/17#issuecomment-251375754","issue_url":"https://api.github.com/repos/DerelictOrg/DerelictUtil/issues/17","id":251375754,"user":{"login":"p0nce","id":1067485,"avatar_url":"https://avatars.githubusercontent.com/u/1067485?v=3","gravatar_id":"","url":"https://api.github.com/users/p0nce","html_url":"https://github.com/p0nce","followers_url":"https://api.github.com/users/p0nce/followers","following_url":"https://api.github.com/users/p0nce/following{/other_user}","gists_url":"https://api.github.com/users/p0nce/gists{/gist_id}","starred_url":"https://api.github.com/users/p0nce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/p0nce/subscriptions","organizations_url":"https://api.github.com/users/p0nce/orgs","repos_url":"https://api.github.com/users/p0nce/repos","events_url":"https://api.github.com/users/p0nce/events{/privacy}","received_events_url":"https://api.github.com/users/p0nce/received_events","type":"User","site_admin":false},"created_at":"2016-10-04T12:38:02Z","updated_at":"2016-10-04T12:38:02Z","body":"Yup. There was no new ENet release so the version was a simple bump."}}
{"actor":{"display_login":"p0nce"}}