{"action":"created","issue":{"url":"https://api.github.com/repos/Araq/Nim/issues/2763","labels_url":"https://api.github.com/repos/Araq/Nim/issues/2763/labels{/name}","comments_url":"https://api.github.com/repos/Araq/Nim/issues/2763/comments","events_url":"https://api.github.com/repos/Araq/Nim/issues/2763/events","html_url":"https://github.com/Araq/Nim/issues/2763","id":78272639,"number":2763,"title":"Implement alternative module namespacing","user":{"login":"dom96","id":246651,"avatar_url":"https://avatars.githubusercontent.com/u/246651?v=3","gravatar_id":"","url":"https://api.github.com/users/dom96","html_url":"https://github.com/dom96","followers_url":"https://api.github.com/users/dom96/followers","following_url":"https://api.github.com/users/dom96/following{/other_user}","gists_url":"https://api.github.com/users/dom96/gists{/gist_id}","starred_url":"https://api.github.com/users/dom96/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dom96/subscriptions","organizations_url":"https://api.github.com/users/dom96/orgs","repos_url":"https://api.github.com/users/dom96/repos","events_url":"https://api.github.com/users/dom96/events{/privacy}","received_events_url":"https://api.github.com/users/dom96/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Araq/Nim/labels/postponed","name":"postponed","color":"ada2ab"},{"url":"https://api.github.com/repos/Araq/Nim/labels/RFC","name":"RFC","color":"1d1d1d"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":15,"created_at":"2015-05-19T22:21:19Z","updated_at":"2015-05-22T16:13:08Z","closed_at":null,"body":"The following proposal:\r\n\r\n```nim\r\n# module foo\r\n \r\nproc bar(s: string) = echo(s)\r\n \r\nproc goo() = echo 42\r\n \r\n# module main\r\n \r\nuse foo\r\n \r\ngoo() # Error\r\nfoo.goo() # Works\r\nvar x = \"test\"\r\nbar(x) # Error\r\nfoo.bar(x) # Works\r\nx.bar() # Works\r\n```\r\n\r\nAs discussed on IRC http://irclogs.nim-lang.org/19-05-2015.html"},"comment":{"url":"https://api.github.com/repos/Araq/Nim/issues/comments/104701219","html_url":"https://github.com/Araq/Nim/issues/2763#issuecomment-104701219","issue_url":"https://api.github.com/repos/Araq/Nim/issues/2763","id":104701219,"user":{"login":"ozra","id":563674,"avatar_url":"https://avatars.githubusercontent.com/u/563674?v=3","gravatar_id":"","url":"https://api.github.com/users/ozra","html_url":"https://github.com/ozra","followers_url":"https://api.github.com/users/ozra/followers","following_url":"https://api.github.com/users/ozra/following{/other_user}","gists_url":"https://api.github.com/users/ozra/gists{/gist_id}","starred_url":"https://api.github.com/users/ozra/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ozra/subscriptions","organizations_url":"https://api.github.com/users/ozra/orgs","repos_url":"https://api.github.com/users/ozra/repos","events_url":"https://api.github.com/users/ozra/events{/privacy}","received_events_url":"https://api.github.com/users/ozra/received_events","type":"User","site_admin":false},"created_at":"2015-05-22T16:13:07Z","updated_at":"2015-05-22T16:13:07Z","body":"@Araq - I'm glad to hear that :-) I guess, maybe if one had a `-dcandidate` def for making a release build while finishing up, and then use `-drelease` for the final 'actual release' would do heavier lifting and produce both the binary and a \"release-verification-spec\"-file or something, for reference for the next release. Then one could use the tooling in a git hook, or manualy or whatever, before comitting an actual release.\r\n\r\n@dom96 - well that is why it's a serious issue - it only arises at run-time, and since it \"crept\" in to your code unknowingly (you could've just updated dependency mods, not changing a single line in your own code), it is a \"hidden danger\". But once again - it's only happened to me once in 16 years of C++. Far more often I've had the problem of C++ making weird overloading priorities, like picking overloads with 'bool' over 'int'ish' when passing an unsigned. But those are ofc caught at compile time - and completely unrelated.\r\n"}}