Skip to content

[browser][non-icu] HybridGlobalization normalization unblocking APIs that became supported. - #86694

Closed
ilonatommy wants to merge 4 commits into
dotnet:mainfrom
ilonatommy:hg-normalization-followup
Closed

[browser][non-icu] HybridGlobalization normalization unblocking APIs that became supported. #86694
ilonatommy wants to merge 4 commits into
dotnet:mainfrom
ilonatommy:hg-normalization-followup

Conversation

@ilonatommy

@ilonatommyilonatommy commented May 24, 2023

Copy link
Copy Markdown
Member

In non-hybrid globalization we are not supporting normalization forms: KD and KC.
In the hybrid mode, both forms are supported and we need them for implemenation of hybrid IDN/ACE mapping.
This PR is changing the public API behavior by enabling both forms on Browser platform. When the HybridGlobalziation (that is an opt-in feature) is switched off and the user is not in InvariantGlobalization mode, they will get PNSE exception when they try to use KD/KC. It is asured by validation in

Contributes to #79989.

@lewing this PR changes the behavior: from failing in the build to failing during runtime when KD/KC forms are used.

@ghost

Copy link
Copy Markdown

Tagging subscribers to 'arch-wasm': @lewing
See info in area-owners.md if you want to be subscribed.

Issue Details

In non-hybrid globalization we are not supporting nromalization forms: KD and KC.
In the hybrid mode, both forms are supported and we need them for implemenation of hybrid IDN/ACE mapping.
This PR is changing the public API behavior by enabling both forms on Browser platform. When the HybridGlobalziation (that is an opt-in feature) is switched off and the user is not in InvariantGlobalization mode, they will get PNSE exception when they try to use KD/KC. It is asured by validation in

Author:ilonatommy
Assignees:ilonatommy
Labels:

arch-wasm, area-System.Globalization

Milestone:-

@tarekgh

Copy link
Copy Markdown
Member

Looks you need a small tweak to this fix?

/__w/1/s/src/libraries/System.Private.CoreLib/src/System/Globalization/Normalization.Icu.cs(104,36): error CS0117: 'GlobalizationMode' does not contain a definition for 'Hybrid' [/__w/1/s/src/coreclr/System.Private.CoreLib/System.Private.CoreLib.csproj]
##[error]src/libraries/System.Private.CoreLib/src/System/Globalization/Normalization.Icu.cs(104,36): error CS0117: (NETCORE_ENGINEERING_TELEMETRY=Build) 'GlobalizationMode' does not contain a definition for 'Hybrid'

@ilonatommy

Copy link
Copy Markdown
MemberAuthor

Drafting till we:

  • will be able to provide unified behavior for non-hybrid and hybrid mode e.g. by adding more data to ICU, we could leverage custom ICU build [browser][icu] Automate custom icu creation #82908
    OR
  • introduce code analysis that will detect HybridGlobalization mode, so we could preserve failing the build for non-hybrid mode.

@ilonatommy
ilonatommy marked this pull request as draft May 25, 2023 14:36
@ilonatommy

Copy link
Copy Markdown
MemberAuthor

Closing - normalization is getting reverted with #87007

@ghostghost locked as resolved and limited conversation to collaborators Jul 2, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

arch-wasmWebAssembly architecturearea-System.Globalization

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ilonatommy@tarekgh