{"action":"created","issue":{"url":"https://api.github.com/repos/D-Programming-Language/phobos/issues/2687","labels_url":"https://api.github.com/repos/D-Programming-Language/phobos/issues/2687/labels{/name}","comments_url":"https://api.github.com/repos/D-Programming-Language/phobos/issues/2687/comments","events_url":"https://api.github.com/repos/D-Programming-Language/phobos/issues/2687/events","html_url":"https://github.com/D-Programming-Language/phobos/pull/2687","id":48409085,"number":2687,"title":"Move std.typetuple to std.meta.list","user":{"login":"ntrel","id":1107820,"avatar_url":"https://avatars.githubusercontent.com/u/1107820?v=3","gravatar_id":"","url":"https://api.github.com/users/ntrel","html_url":"https://github.com/ntrel","followers_url":"https://api.github.com/users/ntrel/followers","following_url":"https://api.github.com/users/ntrel/following{/other_user}","gists_url":"https://api.github.com/users/ntrel/gists{/gist_id}","starred_url":"https://api.github.com/users/ntrel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ntrel/subscriptions","organizations_url":"https://api.github.com/users/ntrel/orgs","repos_url":"https://api.github.com/users/ntrel/repos","events_url":"https://api.github.com/users/ntrel/events{/privacy}","received_events_url":"https://api.github.com/users/ntrel/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/D-Programming-Language/phobos/labels/needs%20work","name":"needs work","color":"f7c6c7"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":76,"created_at":"2014-11-11T17:17:45Z","updated_at":"2015-03-24T23:25:19Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/D-Programming-Language/phobos/pulls/2687","html_url":"https://github.com/D-Programming-Language/phobos/pull/2687","diff_url":"https://github.com/D-Programming-Language/phobos/pull/2687.diff","patch_url":"https://github.com/D-Programming-Language/phobos/pull/2687.patch"},"body":"https://issues.dlang.org/show_bug.cgi?id=4113\r\n\r\nPart of [DIP 54](http://wiki.dlang.org/DIP54).\r\n\r\nMy plan of attack is to create `std.meta.list` as described in the DIP, then work on updating dlang.org and remaining Phobos modules not to use *tuple* for template argument lists. I don't intend to work on `std.meta.pack` as that seems additional functionality best done by someone else.\r\n\r\nBTW I think the DIP also needs to mention what happens to `.tupleof` - copying @Dicebot.\r\n\r\nFor the documented new symbol name for *TypeTuple*, *TemplateArgumentList*, I think the 'Template' word is redundant because there's always a '!' after the symbol, e.g. TemplateArgumentList!int, so the reader knows it's a template. I suggest we use just ArgumentList ~~or ArgList~~. It's still descriptive, and we need a short name (e.g. for easy use in unittests) otherwise everyone will just alias it differently. But I will change this if necessary.\r\n\r\n* Rename `std.typetuple` to `std.meta.list`.\r\n* Deprecate `std.typetuple`.\r\n* Rename TypeTuple -> List, recommend `import meta = std.meta.list` (as discussed below).\r\n* Update `std.meta.list` docs to mention *template argument list* or just list instead of tuple.\r\n* Update makefiles.\r\n* Fix remaining uses of `std.typetuple`, `TypeTuple` in Phobos.\r\n* Rename some symbols for consistency (see discussion below & commits)."},"comment":{"url":"https://api.github.com/repos/D-Programming-Language/phobos/issues/comments/85739030","html_url":"https://github.com/D-Programming-Language/phobos/pull/2687#issuecomment-85739030","issue_url":"https://api.github.com/repos/D-Programming-Language/phobos/issues/2687","id":85739030,"user":{"login":"Dicebot","id":1132234,"avatar_url":"https://avatars.githubusercontent.com/u/1132234?v=3","gravatar_id":"","url":"https://api.github.com/users/Dicebot","html_url":"https://github.com/Dicebot","followers_url":"https://api.github.com/users/Dicebot/followers","following_url":"https://api.github.com/users/Dicebot/following{/other_user}","gists_url":"https://api.github.com/users/Dicebot/gists{/gist_id}","starred_url":"https://api.github.com/users/Dicebot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Dicebot/subscriptions","organizations_url":"https://api.github.com/users/Dicebot/orgs","repos_url":"https://api.github.com/users/Dicebot/repos","events_url":"https://api.github.com/users/Dicebot/events{/privacy}","received_events_url":"https://api.github.com/users/Dicebot/received_events","type":"User","site_admin":false},"created_at":"2015-03-24T23:25:19Z","updated_at":"2015-03-24T23:25:19Z","body":"> The meta rule seems particularly arcane as the modus operandi for the rest of Phobos is that the module system should be used to avoid collisions, which is why we have std.file.copy & std.algorithm.copy, std.file.write & std.stdio.write, std.ascii.toLower & std.uni.toLower, etc etc.\r\n\r\nI'd love it to be that way but it was mentioned as historical mistake and new rule is \"no name collisions within Phobos at all\". AFAIR specifically @andralex was against adding new name clashes."}}