JuliaLang / JuliaLang/JuliaSyntax.jl

eliminate dependency on Base.is_id_char and julia-specific utf8proc

Open
#377 2 comments 1 reaction 0 assignees View on GitHub
Dominant language
Julia
Stars
293
Forks
50
PR merge metrics
No merged PRs in 30d

Description

As discussed in #372, in order to make the JuliaSyntax parsing independent of the version of Julia in which it runs, it needs to:

1. Add a dependency on [utf8proc_jll](https://github.com/JuliaBinaryWrappers/utf8proc_jll.jl), rather than using the utf8proc bundled with Julia. This is important because the supported version of Unicode (for character classification) depends on utf8proc.
2. Re-implement `Base.is_id_start_char` and `Base.is_id_char` to identify which characters can appear in identifiers (or technically, which characters can begin graphemes, now that #372 is merged … this could simplify the rules slightly since we no longer need to explicitly check for combining marks).

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing #372 and the JuliaSyntax parsing code that uses Julia's bundled utf8proc and Base.is_id_start_char/Base.is_id_char. Done means adding the utf8proc_jll dependency and replacing those Base checks with identifier or grapheme-start classification independent of the Julia version.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
compilers
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.