-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[HybridGlobalization] Include all globalization symbols #96684
Conversation
Tagging subscribers to this area: @dotnet/area-system-globalization Issue DetailsBy this PR we are Including all globalization symbols. These changes should fix Contributes to #80689
|
/azp run runtime-ioslike,runtime-ioslikesimulator,runtime-maccatalyst |
Azure Pipelines successfully started running 3 pipeline(s). |
/azp run runtime-ioslike,runtime-ioslikesimulator,runtime-maccatalyst |
Azure Pipelines successfully started running 3 pipeline(s). |
I ran this against the branch and it no longer prints "Not Found".
|
How are you going to implement opt-in to full ICU globalization with this approach? I do not think that the change in this PR goes in the right direction. Instead, I think you should introduce a new library: libSystem.Globalization.Hybrid. When the hybrid globalization is turned on, link with this library. When the hybrid globalization is turned off, link with the default ICU-based libSystem.Globalization. |
That's exactly what we need to do. I'd like to unblock xamarin asap, so is this an acceptable interim solution? |
The best way to unblock xamarin-ios is to revert #93220 that introduced the problem. It is guaranteed to work. |
I agree that it's guaranteed to work, but #93220 is a pretty significant change that I would like to have out early. I feel this PR allows us to run with HG as the default and separates out how we're going to handle toggling between the two modes. |
I see that this significant change was not tested end-to-end and that the build system interactions are poorly understood. I think it is likely that there are more blocking problems hidding behind this one. You can certainly try again if you would like. A better way to push this change through: Introduce property for HG opt-in, let it flow through the system. Once it flows through the system, verify that end-to-end scenarios like building and running MAUI apps work well with HG turned on. Once we have a reasonable confidence that this works for end-to-end, flip the default for the property (one line change). A lot less stress, code flow blocked for weeks, etc. |
/azp run runtime-ioslike,runtime-ioslikesimulator,runtime-maccatalyst |
Azure Pipelines successfully started running 3 pipeline(s). |
/azp run runtime-ioslike,runtime-ioslikesimulator,runtime-maccatalyst |
Azure Pipelines successfully started running 3 pipeline(s). |
/azp run runtime-ioslike,runtime-ioslikesimulator,runtime-maccatalyst |
Azure Pipelines successfully started running 3 pipeline(s). |
/azp run runtime-ioslike,runtime-ioslikesimulator,runtime-maccatalyst |
Azure Pipelines successfully started running 3 pipeline(s). |
/azp run runtime-ioslike,runtime-ioslikesimulator,runtime-maccatalyst |
Azure Pipelines successfully started running 3 pipeline(s). |
#include "pal_timeZoneInfo.h" | ||
|
||
#ifdef DEBUG | ||
#define assert_err(cond, msg, err) do \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We #include "pal_utilities.h"
everywhere else to get these assert definitions. Why can't we do it here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The ios runtime build builds globalization into its runtime as opposed to using libSystem.Globalization. I couldn't figure out how to generate pal_config.h, which is required when using pal_utilities. We could either get that right now or remove this when we follow up with generating Hybrid and libSystem.Globalization libraries.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add it to the cleanup list (#96328) ?
Failures are not related to this PR changes. |
* Include all symbols for Globalization Co-authored-by: Steve Pfister <steve.pfister@microsoft.com>
By this PR we are Including all globalization symbols.
For
HybridGlobalization
we will have empty placeholders in pal_placeholders.c and these methods will not be called from managed code.These symbols are needed for having consistency between
System.Private.CoreLib.dll
andlibSystem.Globalization.Native.a
and for future to support also our ICU libs.These changes should fix
xamarin-macios
build reported by #96251.Contributes to #80689