Consider using a pointer offset instead of a slice and integer position
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
- Issue type
- Refactor
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- rust
- Domain
- performance
Research direction
Start in src/tokenizer.rs around line 372, where next_byte_unchecked is used by code such as skip_whitespace. Compare the generated assembly for the current slice-and-offset approach with the proposed pointer-offset approach, then verify that tokenizer behavior is unchanged and that the generated code has fewer indirections.
Written by the indexing model from the issue text.
Description
The generated assembly for code using next_byte_unchecked like skip_whitespace has a suprising number of indirections in order to actually get the byte value. This is caused by the need to get the slice, then get the byte at the desired offset from it at https://github.com/servo/rust-cssparser/blob/682087fca5ba5f2f05a09bba72c62dac6b3d778d/src/tokenizer.rs#L372. If we use store a pointer and increase its instead of the offset, it should cause more efficient code to be generated.
- Dominant language
- Rust
- Stars
- 869
- Forks
- 152
- Avg merge
- 15h 8m
- Merged PRs (30d)
- 12
Contributor guide
No contributing guide indexed for this repository
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.
More from servo/rust-cssparser
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
servo/rust-cssparser#440 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
servo/rust-cssparser#439 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
servo/rust-cssparser#434 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
servo/rust-cssparser#438 · 3 comments · 1 reaction ·
-
Difficulty 5/5 Over a week Newbie friendliness 28/100
servo/rust-cssparser#436 · 1 comment ·
All issues in servo/rust-cssparser
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
state:needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
zed-industries/zed#64680 · 2 comments ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
RustPython/RustPython#8802 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
TheLarkInn/aipm#2390 ·