Vague character definition
Nobody has claimed this yet.
- Dominant language
- reStructuredText
- Stars
- 497
- Forks
- 41
- Avg merge
- 3h 52m
- Merged PRs (30d)
- 4
Description
Currently the specification reads:
A character is defined by this document for each cell in the coding space described by Unicode, regardless of whether or not Unicode allocates a character to that cell.
With a link to the Unicode 2017 standard. I think this is a bit vague in two ways. First, the term "cell" is used, and I don't know which Unicode concept this translates to. Display Cell maybe? Also wondering what "character" means in the second sentence. Unicode glossary provides four different definitions what a character can be.
This is relevant I guess in many ways, including the multiple ways the compiler exposes column numbers to user code (panic column info, column macro, nightly proc macro span introspection api). E.g. what is the output of this:
fn main(){
let (a,b) = ("🇪🇺", column!());
println!("{b}");
}
It's a non trivial question because 🇪🇺 is a multi code point grapheme cluster.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the quoted character-definition text, then read the linked Unicode 2017 standard and the Unicode glossary entries for “display cell” and “character.” Use the Rust example involving the 🇪🇺 grapheme cluster to identify the specification behavior that needs to be made explicit; done means the terms and relevant column-number behavior are unambiguous.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100