rust-lang / rust-lang/fls

Vague character definition

Open
#135 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-content A-lexer C-enhancement
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.