{"action":"created","issue":{"url":"https://api.github.com/repos/scala/slip/issues/30","labels_url":"https://api.github.com/repos/scala/slip/issues/30/labels{/name}","comments_url":"https://api.github.com/repos/scala/slip/issues/30/comments","events_url":"https://api.github.com/repos/scala/slip/issues/30/events","html_url":"https://github.com/scala/slip/pull/30","id":115841003,"number":30,"title":"Unsigned integer data types","user":{"login":"sjrd","id":535934,"avatar_url":"https://avatars.githubusercontent.com/u/535934?v=3","gravatar_id":"","url":"https://api.github.com/users/sjrd","html_url":"https://github.com/sjrd","followers_url":"https://api.github.com/users/sjrd/followers","following_url":"https://api.github.com/users/sjrd/following{/other_user}","gists_url":"https://api.github.com/users/sjrd/gists{/gist_id}","starred_url":"https://api.github.com/users/sjrd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sjrd/subscriptions","organizations_url":"https://api.github.com/users/sjrd/orgs","repos_url":"https://api.github.com/users/sjrd/repos","events_url":"https://api.github.com/users/sjrd/events{/privacy}","received_events_url":"https://api.github.com/users/sjrd/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":22,"created_at":"2015-11-09T09:45:36Z","updated_at":"2015-11-09T18:00:26Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/scala/slip/pulls/30","html_url":"https://github.com/scala/slip/pull/30","diff_url":"https://github.com/scala/slip/pull/30.diff","patch_url":"https://github.com/scala/slip/pull/30.patch"},"body":"**By: Sébastien Doeraene @sjrd and Denys Shabalin @densh**\r\n\r\n**tl;dr**: We propose the addition of 4 \"primitive\" types to represent unsigned integers: UByte, UShort, UInt and ULong.\r\n\r\nA prototype implementation of this proposal, with unit tests and benchmarks, can be found at https://github.com/scala/scala/compare/2.12.x...sjrd:uints\r\n\r\nFor the non-tl;dr, read the complete text.\r\n\r\nNote that this is probably more a *SIP* rather than a SLIP, as we did have to touch the compiler one tiny bit (see the implementation), but we post it here anyway."},"comment":{"url":"https://api.github.com/repos/scala/slip/issues/comments/155140941","html_url":"https://github.com/scala/slip/pull/30#issuecomment-155140941","issue_url":"https://api.github.com/repos/scala/slip/issues/30","id":155140941,"user":{"login":"sjrd","id":535934,"avatar_url":"https://avatars.githubusercontent.com/u/535934?v=3","gravatar_id":"","url":"https://api.github.com/users/sjrd","html_url":"https://github.com/sjrd","followers_url":"https://api.github.com/users/sjrd/followers","following_url":"https://api.github.com/users/sjrd/following{/other_user}","gists_url":"https://api.github.com/users/sjrd/gists{/gist_id}","starred_url":"https://api.github.com/users/sjrd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sjrd/subscriptions","organizations_url":"https://api.github.com/users/sjrd/orgs","repos_url":"https://api.github.com/users/sjrd/repos","events_url":"https://api.github.com/users/sjrd/events{/privacy}","received_events_url":"https://api.github.com/users/sjrd/received_events","type":"User","site_admin":false},"created_at":"2015-11-09T18:00:26Z","updated_at":"2015-11-09T18:00:26Z","body":"> you can only value-class wrap once\r\n\r\nThis need not always be the case. It is an implementation restriction. Dotty demonstrates that you can have several nestings of value classes, IIRC.\r\n\r\n> I can't find the string \"lub\" in either the proposal or the comments.\r\n\r\nNope, but we've mentioned \"weak conformance\", both in the SLIP and in the comments.\r\n\r\n> What's the type of this?\r\n>     def f(x: Int, y: UInt) = if (condition) x else y\r\n> I'm guessing it's AnyVal?\r\n\r\nYes, so what?"}}