Repository navigation
Conversation
Remove the global NO_PROPS symbol-table guard from Idna2008 initialization. Its UnicodeSets already select the development symbol table explicitly; changing the global table can break ICU transliterator initialization. Obtain shared IDNA normalization and case-folding transforms directly from ToolUnicodeTransformFactory. Loading Idna2008 before GenerateIdnaTest must not permanently capture ICU transforms from the default global factory.
I would not. I would rather have the thing crash in some configurations than risk using outdated properties and producing bad data. There is a reason why I added that guard. |
Nothing about this transliterator seems legitimate anyway. This is from a 15 year old papering over of a change in format of kMandarin, it has no relevance anymore, and we do not try to pretend the format of the other readings did not change. |
See https://util.unicode.org/UnicodeJsps/character.jsp?a=4E00&history=assigned for many examples. |
Agreed. Dropped. |
|
I'm all in favor of breaking all dependencies on ICU properties; and having
Unicode tools fail rather than get the wrong answer.
Guava has a memoizer, btw, and newer versions of java effectively have the
same built in.
…On Fri, Oct 9, 2026, 17:10 Robin Leroy ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In unicodetools/src/main/java/org/unicode/idna/Idna2008.java
<#1601 (comment)>
:
> @@ -31,14 +31,20 @@ public enum Idna2008Type {
static final UnicodeMap<Idna2008Type> IDNA2008Computed;
static {
If we are going to touch this, could we make it not have nearly all of its
logic in or called from a static block (cf. Markus’s earlier comment on
the other file)?
—
Reply to this email directly, view it on GitHub
<#1601?email_source=notifications&email_token=ACJLEMDLAUQ53EXZHYI2WB35TF5AXA5CNFSNUABKM5UWIORPF5TWS5BNNB2WEL2QOVWGYUTFOF2WK43UKJSXM2LFO4XTKNBXGY2TEMBWHE32M4TFMFZW63VKON2WE43DOJUWEZLEUVSXMZLOOSWGM33PORSXEX3DNRUWG2Y#pullrequestreview-5476520697>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACJLEMBIOELVADEFAY6E2YL5TF5AXAVCNFSNUABFKJSXA33TNF2G64TZHMYTKMRRGYYTANBWHNEXG43VMU5TKNZYGUYTMMBRGYY2C5QC>
.
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS
<https://github.com/notifications/mobile/ios/ACJLEMD5GFN2UFNIHGG6PTD5TF5AXA5CNFSNUABKM5UWIORPF5TWS5BNNB2WEL2QOVWGYUTFOF2WK43UKJSXM2LFO4XTKNBXGY2TEMBWHE32M4TFMFZW63VKON2WE43DOJUWEZLEUVSXMZLOOSVGM33PORSXEX3JN5ZQ>
and Android
<https://github.com/notifications/mobile/android/ACJLEMDBO5B7TMQYYMC65UL5TF5AXA5CNFSNUABKM5UWIORPF5TWS5BNNB2WEL2QOVWGYUTFOF2WK43UKJSXM2LFO4XTKNBXGY2TEMBWHE32M4TFMFZW63VKON2WE43DOJUWEZLEUVSXMZLOOSXGM33PORSXEX3BNZSHE33JMQ>.
Download it today!
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
|
… OK, let’s revert #1582, it immediately made itself a nuisance. |
Fix IDNA initialization dependencies that made behavior depend on which generator ran first. Eager transforms in
Idnacould capture ICU normalization before the development-data factory was installed, while unrelated initialization could fail under theNO_PROPSguard.Also:
Use the latest-version unicodetools
Normalizeraccessors for IDNA processing and test generation.Compute IDNA2008 properties lazily through
getInstance(), update the JSP and test callers, and move file-generation setup into the generator.Move IDNA2003’s Unicode 3.2 age-filtered NFKC transform into a lazy holder in
StringPrepData. GeneralizeFilteredUnicodeTransformto acceptTransform<String, String>so it can wrap a unicodetools normalizer directly.Define the fixed noncharacter, private-use, and surrogate sets directly, avoiding implicit ICU property lookups during
UnicodePropertyinitialization.Remove the legacy numeric-pinyin conversion of historical
kMandarinvalues, preserving the property-file values and eliminating eager ICU transliterator initialization.Approver: Feel free to merge on my behalf