{"action":"created","issue":{"url":"https://api.github.com/repos/JuliaLang/julia/issues/16107","repository_url":"https://api.github.com/repos/JuliaLang/julia","labels_url":"https://api.github.com/repos/JuliaLang/julia/issues/16107/labels{/name}","comments_url":"https://api.github.com/repos/JuliaLang/julia/issues/16107/comments","events_url":"https://api.github.com/repos/JuliaLang/julia/issues/16107/events","html_url":"https://github.com/JuliaLang/julia/issues/16107","id":151755965,"number":16107,"title":"Stringapalooza","user":{"login":"StefanKarpinski","id":153596,"avatar_url":"https://avatars.githubusercontent.com/u/153596?v=3","gravatar_id":"","url":"https://api.github.com/users/StefanKarpinski","html_url":"https://github.com/StefanKarpinski","followers_url":"https://api.github.com/users/StefanKarpinski/followers","following_url":"https://api.github.com/users/StefanKarpinski/following{/other_user}","gists_url":"https://api.github.com/users/StefanKarpinski/gists{/gist_id}","starred_url":"https://api.github.com/users/StefanKarpinski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StefanKarpinski/subscriptions","organizations_url":"https://api.github.com/users/StefanKarpinski/orgs","repos_url":"https://api.github.com/users/StefanKarpinski/repos","events_url":"https://api.github.com/users/StefanKarpinski/events{/privacy}","received_events_url":"https://api.github.com/users/StefanKarpinski/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/JuliaLang/julia/labels/strings","name":"strings","color":"006b75"},{"url":"https://api.github.com/repos/JuliaLang/julia/labels/unicode","name":"unicode","color":"5f4a60"}],"state":"open","locked":false,"assignee":{"login":"StefanKarpinski","id":153596,"avatar_url":"https://avatars.githubusercontent.com/u/153596?v=3","gravatar_id":"","url":"https://api.github.com/users/StefanKarpinski","html_url":"https://github.com/StefanKarpinski","followers_url":"https://api.github.com/users/StefanKarpinski/followers","following_url":"https://api.github.com/users/StefanKarpinski/following{/other_user}","gists_url":"https://api.github.com/users/StefanKarpinski/gists{/gist_id}","starred_url":"https://api.github.com/users/StefanKarpinski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StefanKarpinski/subscriptions","organizations_url":"https://api.github.com/users/StefanKarpinski/orgs","repos_url":"https://api.github.com/users/StefanKarpinski/repos","events_url":"https://api.github.com/users/StefanKarpinski/events{/privacy}","received_events_url":"https://api.github.com/users/StefanKarpinski/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/JuliaLang/julia/milestones/14","html_url":"https://github.com/JuliaLang/julia/milestones/0.5.0","labels_url":"https://api.github.com/repos/JuliaLang/julia/milestones/14/labels","id":868319,"number":14,"title":"0.5.0","description":"Release-defining items for v0.5 - the `Arraymageddon` release.","creator":{"login":"vtjnash","id":330950,"avatar_url":"https://avatars.githubusercontent.com/u/330950?v=3","gravatar_id":"","url":"https://api.github.com/users/vtjnash","html_url":"https://github.com/vtjnash","followers_url":"https://api.github.com/users/vtjnash/followers","following_url":"https://api.github.com/users/vtjnash/following{/other_user}","gists_url":"https://api.github.com/users/vtjnash/gists{/gist_id}","starred_url":"https://api.github.com/users/vtjnash/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vtjnash/subscriptions","organizations_url":"https://api.github.com/users/vtjnash/orgs","repos_url":"https://api.github.com/users/vtjnash/repos","events_url":"https://api.github.com/users/vtjnash/events{/privacy}","received_events_url":"https://api.github.com/users/vtjnash/received_events","type":"User","site_admin":false},"open_issues":30,"closed_issues":43,"state":"open","created_at":"2014-11-16T16:16:12Z","updated_at":"2016-04-29T09:41:34Z","due_on":"2016-04-01T04:00:00Z","closed_at":null},"comments":6,"created_at":"2016-04-28T22:17:29Z","updated_at":"2016-04-29T10:09:17Z","closed_at":null,"body":"## Major tasks\r\n\r\n### Round 1\r\n- [ ] Base: merge `ASCIIString`, `UT8String` and `ByteString` into `String`, #16058\r\n- [ ] Compat: add `String`\r\n\r\n### Round 2\r\n- [ ] Base: replace `utf8` and `string` with `String`\r\n- [ ] Base: replace `s = ascii(s)` with `s = String(s); isascii(s) || error(...)`\r\n\r\n### Round 3\r\n- [ ] Base: remove `UTF16String` and `UTF32String`\r\n- [ ] make package with ASCII, Latin-1, UTF-8, UTF-16 and UTF-32 string types\r\n\r\n### Round 4\r\n- [ ] Base: change `Char` representation (allow lossless string processing of any data)\r\n- [ ] Base: remove `RepString` and `RevString` (move to package?)\r\n- [ ] Base: merge `SubString` and `String` (add offset field to `String`)\r\n\r\n## Cleanup tasks\r\n\r\n- [ ] figure out `LineEdit` test change, https://github.com/JuliaLang/julia/pull/16058#discussion_r61192341\r\n- [ ] delete redundant `String` inner constructor, https://github.com/JuliaLang/julia/pull/16058#discussion_r61228065\r\n- [ ] replace `jl_is_utf8_string` and `jl_is_byte_string` with `jl_is_string`, https://github.com/JuliaLang/julia/pull/16058#discussion_r61232464\r\n- [ ] check if `uv_getaddrinfo` handles non-ASCII domain names, https://github.com/JuliaLang/julia/pull/16058#discussion_r61252081\r\n- [ ] check if SuiteSparse handles non-ASCII inputs, https://github.com/JuliaLang/julia/pull/16058#discussion_r61252299\r\n- [ ] fix signature of `connect` in docs, https://github.com/JuliaLang/julia/pull/16058#discussion_r61231943\r\n- [ ] improve `isspace` implementation, https://github.com/JuliaLang/julia/pull/16058#discussion_r61231737\r\n- [ ] figure out why removing seemingly redundant `convert` method breaks bootstrap, https://github.com/JuliaLang/julia/pull/16058#discussion_r61231162\r\n- [ ] simplify `takebuf` API, https://github.com/JuliaLang/julia/pull/16058#discussion_r61229502\r\n- [ ] add deprecation warning for `readdlm`'s `ignore_invalid_chars` option, https://github.com/JuliaLang/julia/pull/16058#discussion_r61190549"},"comment":{"url":"https://api.github.com/repos/JuliaLang/julia/issues/comments/215676182","html_url":"https://github.com/JuliaLang/julia/issues/16107#issuecomment-215676182","issue_url":"https://api.github.com/repos/JuliaLang/julia/issues/16107","id":215676182,"user":{"login":"nalimilan","id":1120448,"avatar_url":"https://avatars.githubusercontent.com/u/1120448?v=3","gravatar_id":"","url":"https://api.github.com/users/nalimilan","html_url":"https://github.com/nalimilan","followers_url":"https://api.github.com/users/nalimilan/followers","following_url":"https://api.github.com/users/nalimilan/following{/other_user}","gists_url":"https://api.github.com/users/nalimilan/gists{/gist_id}","starred_url":"https://api.github.com/users/nalimilan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nalimilan/subscriptions","organizations_url":"https://api.github.com/users/nalimilan/orgs","repos_url":"https://api.github.com/users/nalimilan/repos","events_url":"https://api.github.com/users/nalimilan/events{/privacy}","received_events_url":"https://api.github.com/users/nalimilan/received_events","type":"User","site_admin":false},"created_at":"2016-04-29T10:09:17Z","updated_at":"2016-04-29T10:09:17Z","body":"+1 for including as much of this plan as possible into 0.5. Breakage better happen soon.\r\n\r\nAs regards moving `ASCIIString`, etc. to a package (round 3, bullet 2), see discussion on an implementation for any encoding in StringEncodings.jl [here](https://github.com/nalimilan/StringEncodings.jl/pull/9).\r\n\r\nAs regards changing `Char`'s underlying representation(round 4, bullet 1), another step would also be to introduce `AbstractChar` and use it in method signatures to allow e.g. the `ASCIIString` replacement to implement `ASCIIChar <: AbstractChar` as a `UInt8`. This would allow people working with ASCII data to actually enjoy higher performance than before."}}