`<format>`: Investigate deriving `_Grapheme_Extend_ranges` from other tables
Open
Nobody has claimed this yet.
format
performance
- Dominant language
- C++
- Stars
- 11.1k
- Forks
- 1.7k
- Avg merge
- 4d 15h
- Merged PRs (30d)
- 22
Description
For followup after we merge #3656.
@cpplearner:
_Grapheme_Extend_rangesrepresents code points with the Unicode propertyGrapheme_Extend=Yes.
- Characters in these ranges are escaped unless they immediately follow an unescaped character. ([format.string.escaped]/(2.2.1.2.2))
- It would be more space efficient to reuse the existing data for
Grapheme_Cluster_Break:Grapheme_Extend=YesisGrapheme_Cluster_Break=ExtendminusEmoji_Modifier=Yes, andEmoji_Modifier=Yesis just1F3FB..1F3FF. I chose to define a new array for simplicity.
@barcharcraz:
This is a fairly decent amount of data. We should at least open an issue to derive these from the other tables.
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
Review #3656 and the quoted [format.string.escaped] wording first. Compare the existing Grapheme_Cluster_Break data with _Grapheme_Extend_ranges and determine whether the latter can be derived as described, including the 1F3FB..1F3FF Emoji_Modifier exception. Done means the duplicate range data is removed without changing the specified escaping behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100