{"action":"created","issue":{"url":"https://api.github.com/repos/behnam/rust-unic/issues/218","repository_url":"https://api.github.com/repos/behnam/rust-unic","labels_url":"https://api.github.com/repos/behnam/rust-unic/issues/218/labels{/name}","comments_url":"https://api.github.com/repos/behnam/rust-unic/issues/218/comments","events_url":"https://api.github.com/repos/behnam/rust-unic/issues/218/events","html_url":"https://github.com/behnam/rust-unic/pull/218","id":306322264,"number":218,"title":"Split tables","user":{"login":"CAD97","id":5992217,"avatar_url":"https://avatars1.githubusercontent.com/u/5992217?v=4","gravatar_id":"","url":"https://api.github.com/users/CAD97","html_url":"https://github.com/CAD97","followers_url":"https://api.github.com/users/CAD97/followers","following_url":"https://api.github.com/users/CAD97/following{/other_user}","gists_url":"https://api.github.com/users/CAD97/gists{/gist_id}","starred_url":"https://api.github.com/users/CAD97/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CAD97/subscriptions","organizations_url":"https://api.github.com/users/CAD97/orgs","repos_url":"https://api.github.com/users/CAD97/repos","events_url":"https://api.github.com/users/CAD97/events{/privacy}","received_events_url":"https://api.github.com/users/CAD97/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":8,"created_at":"2018-03-19T03:28:53Z","updated_at":"2018-03-20T02:31:08Z","closed_at":null,"author_association":"COLLABORATOR","pull_request":{"url":"https://api.github.com/repos/behnam/rust-unic/pulls/218","html_url":"https://github.com/behnam/rust-unic/pull/218","diff_url":"https://github.com/behnam/rust-unic/pull/218.diff","patch_url":"https://github.com/behnam/rust-unic/pull/218.patch"},"body":"Supersedes #207 \r\n\r\nStep one of refactoring the table structure for better future growth. I'll fix the merge conflict soon, but wanted to get this out.\r\n\r\nI've been playing around with the tables ever since the thread prompted by miri. This is an incremental move towards the table design that I think is what we want.\r\n\r\nThe enum has been slit into two distinct types. This skips the branch required before access.\r\n\r\nBoth of the tables are now indirect -- this means having a separate `&[char]` and `&[T]`, so everything should pack better. As `slice::binary_search` returns an index anyway, this seems like an all-around better choice for our associative slices, since _space_ compression is what we're mostly concerned with, and the cyclomatic cost remains the same. I suspect any speed lost by not having the value next to the key should be gained in the better packing of data for the binary search. See the first commit for the full argument.\r\n\r\nAfter this, the next step will be to add a table specifically for the `char->Name` translation. See the multiple places I've marked `TODO(CAD97)` for the upcoming work.\r\n\r\nIf we ever get fields with a type of `impl Trait`, it would probably be prudent to add a trait for the `CharMap` shape, so that the table structure can be changed in the future without affecting the public API surface. (Along those lines, I think there might be a public dependency in canonical_composition_mapping that we'd want to get rid of before bringing `unic-ucd` to 1.0, based on what I had to modify.)\r\n\r\nr? @behnam \r\nping @CasualX; this sort of integrates some of the path you took."},"comment":{"url":"https://api.github.com/repos/behnam/rust-unic/issues/comments/374451682","html_url":"https://github.com/behnam/rust-unic/pull/218#issuecomment-374451682","issue_url":"https://api.github.com/repos/behnam/rust-unic/issues/218","id":374451682,"user":{"login":"CAD97","id":5992217,"avatar_url":"https://avatars1.githubusercontent.com/u/5992217?v=4","gravatar_id":"","url":"https://api.github.com/users/CAD97","html_url":"https://github.com/CAD97","followers_url":"https://api.github.com/users/CAD97/followers","following_url":"https://api.github.com/users/CAD97/following{/other_user}","gists_url":"https://api.github.com/users/CAD97/gists{/gist_id}","starred_url":"https://api.github.com/users/CAD97/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CAD97/subscriptions","organizations_url":"https://api.github.com/users/CAD97/orgs","repos_url":"https://api.github.com/users/CAD97/repos","events_url":"https://api.github.com/users/CAD97/events{/privacy}","received_events_url":"https://api.github.com/users/CAD97/received_events","type":"User","site_admin":false},"created_at":"2018-03-20T02:31:08Z","updated_at":"2018-03-20T02:31:08Z","author_association":"COLLABORATOR","body":"Master build passed. I'm going to restart Travis on this PR one more time, then if that fails accross the board again I'll try and see what I can diagnose locally. @behnam if you've got a not-Windows machine, it'd be useful if you could run a cold build and see what you get. FWIW my last cold build --all took a total of ~21m."}}
{"actor":{"display_login":"CAD97"}}