I originally introduced it as a public API but after some discussion we decided it's best as a private API.
When copying value types (like via Array.Copy) it was possible to encounter a memory region going over the end of the card table array. In that case we would overwrite data after the card table and fail to mark cards at the start of the array. It's hard to do a test case for this because we allocate the shadow card table directly after the regular one, so the overwrite is benign. It would also require allocating very large arrays (>2Gb) and run very slowly.
…Error is OK. We're adding this new API call to replace the `g_assert (mono_error_ok (&error));` code pattern so that when there's an error we can print the error message from the MonoError.
…nute DST offsets. The reference sources do not support sub-minute DST offsets as the exception below shows, while Europe/Dublin has a DST offset of 34:39 in 1916. There is no equivalent TimeZoneInfo for Europe/Dublin in .NET, so the problem doesn't show up there. System.ArgumentException: The TimeSpan parameter cannot be specified more precisely than whole minutes. Parameter name: daylightDelta at System.TimeZoneInfo/AdjustmentRule.ValidateAdjustmentRule (System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo/TransitionTime,System.TimeZoneInfo/TransitionTime) [0x0012c] in /work/mono/master/external/referencesource/mscorlib/system/timezoneinfo.cs:3907 at System.TimeZoneInfo/AdjustmentRule.CreateAdjustmentRule (System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo/TransitionTime,System.TimeZoneInfo/TransitionTime) [0x00000] in /work/mono/master/external/referencesource/mscorlib/system/timezoneinfo.cs:3836 at System.TimeZoneInfo.ParseTZBuffer (string,byte,int) [0x002ca] in /work/mono/master/mcs/class/corlib/System/TimeZoneInfo.cs:1230 at System.TimeZoneInfo.BuildFromStream (string,System.IO.Stream) [0x00030] in /work/mono/master/mcs/class/corlib/System/TimeZoneInfo.cs:479 at System.TimeZoneInfo.FindSystemTimeZoneByFileName (string,string) [0x00018] in /work/mono/master/mcs/class/corlib/System/TimeZoneInfo.cs:463 at System.TimeZoneInfo.FindSystemTimeZoneById (string) [0x00075] in /work/mono/master/mcs/class/corlib/System/TimeZoneInfo.cs:450 at MonoTests.System.TimeZoneInfoTest/FindSystemTimeZoneByIdTests.Dublin () [0x00015] in /work/mono/master/mcs/class/corlib/Test/System/TimeZoneInfoTest.cs:812
The profiler API needs to evolve with the runtime. By versioning the API we can at least to some degree let developers know when their modules are out of date and how to update them.
…ing a TimeZoneNotFoundException.
…erge. This should fix bug #29078, patch by Neale Ferguson.
WS-Discovery never got working, skip cosmetic test to not block porting.