{"action":"created","issue":{"url":"https://api.github.com/repos/D-Programming-Language/druntime/issues/1402","labels_url":"https://api.github.com/repos/D-Programming-Language/druntime/issues/1402/labels{/name}","comments_url":"https://api.github.com/repos/D-Programming-Language/druntime/issues/1402/comments","events_url":"https://api.github.com/repos/D-Programming-Language/druntime/issues/1402/events","html_url":"https://github.com/D-Programming-Language/druntime/pull/1402","id":109638122,"number":1402,"title":"Add Windows headers from the win32 bindings project","user":{"login":"CyberShadow","id":160894,"avatar_url":"https://avatars.githubusercontent.com/u/160894?v=3","gravatar_id":"","url":"https://api.github.com/users/CyberShadow","html_url":"https://github.com/CyberShadow","followers_url":"https://api.github.com/users/CyberShadow/followers","following_url":"https://api.github.com/users/CyberShadow/following{/other_user}","gists_url":"https://api.github.com/users/CyberShadow/gists{/gist_id}","starred_url":"https://api.github.com/users/CyberShadow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CyberShadow/subscriptions","organizations_url":"https://api.github.com/users/CyberShadow/orgs","repos_url":"https://api.github.com/users/CyberShadow/repos","events_url":"https://api.github.com/users/CyberShadow/events{/privacy}","received_events_url":"https://api.github.com/users/CyberShadow/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":14,"created_at":"2015-10-03T18:40:42Z","updated_at":"2015-10-15T08:20:03Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/D-Programming-Language/druntime/pulls/1402","html_url":"https://github.com/D-Programming-Language/druntime/pull/1402","diff_url":"https://github.com/D-Programming-Language/druntime/pull/1402.diff","patch_url":"https://github.com/D-Programming-Language/druntime/pull/1402.patch"},"body":"Plan of attack:\r\n\r\n- [x] To prevent *any* code breakage, create a comprehensive test of the exact signatures of declarations in core.sys.windows.windows\r\n- [x] Add the win32 headers as-is\r\n- [x] Through a series of commits, incrementally beat them into shape suitable for inclusion in Druntime\r\n- [x] Get all tests to pass (mostly involving conflicts due to duplicate declarations, currently blocked by a DMD regression)\r\n- [x] Add .lib files to the installer to allow 32-bit (OMF) Windows apps to use these bindings (Post-merge)\r\n\r\nHopefully, satisfying the comprehensive test should also imply that Phobos, Druntime and other projects will be able to use the new headers with no changes.\r\n\r\nThis is similar to https://github.com/D-Programming-Language/druntime/pull/1076 but:\r\n\r\n - uses a more thorough approach to avoid code breakage;\r\n - all modifications from the win32 bindings are small and self-contained, thus should be reviewable and repeatable.\r\n\r\nOpen questions:\r\n\r\n- [ ] Licensing: currently, the headers' license is \"public domain\". We could change this to Boost.  \r\nAdditionally, this excludes all files that were not explicitly listed as public domain (winsock, winsock2 and DirectX headers).\r\n- [ ] What changes can be made that must be done now (i.e. which would break code if were to be done later)? E.g. introducing usage D features such as named enums."},"comment":{"url":"https://api.github.com/repos/D-Programming-Language/druntime/issues/comments/148315025","html_url":"https://github.com/D-Programming-Language/druntime/pull/1402#issuecomment-148315025","issue_url":"https://api.github.com/repos/D-Programming-Language/druntime/issues/1402","id":148315025,"user":{"login":"DmitryOlshansky","id":281770,"avatar_url":"https://avatars.githubusercontent.com/u/281770?v=3","gravatar_id":"","url":"https://api.github.com/users/DmitryOlshansky","html_url":"https://github.com/DmitryOlshansky","followers_url":"https://api.github.com/users/DmitryOlshansky/followers","following_url":"https://api.github.com/users/DmitryOlshansky/following{/other_user}","gists_url":"https://api.github.com/users/DmitryOlshansky/gists{/gist_id}","starred_url":"https://api.github.com/users/DmitryOlshansky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DmitryOlshansky/subscriptions","organizations_url":"https://api.github.com/users/DmitryOlshansky/orgs","repos_url":"https://api.github.com/users/DmitryOlshansky/repos","events_url":"https://api.github.com/users/DmitryOlshansky/events{/privacy}","received_events_url":"https://api.github.com/users/DmitryOlshansky/received_events","type":"User","site_admin":false},"created_at":"2015-10-15T08:20:03Z","updated_at":"2015-10-15T08:20:03Z","body":"@AndrejMitrovic see also:\r\n\r\n> Add the win32 headers as-is\r\n> Through a series of commits, incrementally beat them into shape suitable for inclusion in Druntime\r\n"}}