Jonathan Pryor [Fri, 12 Dec 2014 17:17:53 +0000 (12:17 -0500)]
[mscorlib/Android] CultureInfo.ClearCachedData() clears DateTime.
Context: https://bugzilla.xamarin.com/show_bug.cgi?id=24947
When an Android user changes the timezone, those TimeZone changes
aren't reflected in Xamarin.Android apps. Part of this is a
Xamarin.Android bug, in which it needs to listen for TimeZone change
notifications and in turn let Mono know that the TimeZone changed.
Xamarin.Android can/will call Thread.CurrentCulture.ClearCachedData()
and Thread.CurrentUICulture.ClearCachedData() when the TimeZone has
changed. This will allow Mono to lookup the TimeZone info again.
At which point we hit two problems within Mono:
1. TimeZoneInfo.AndroidTimeZones.Local is unnecessarily cached.
2. DateTime itself caches the UTC offset for use by DateTime.Now.
TimeZoneInfo.Local is *already* cached, and TimeZoneInfo.Local is
properly cleared by TimeZoneInfo.ClearCachedData() while
TimeZoneInfo.AndroidTimeZones.Local wasn't. Removing the extra
cache allows the TimeZoneInfo to be looked up again.
Which brings us to DateTime.Now: for my simple test case, after
calling CultureInfo.ClearCachedData() the result of
DateTime.Now.ToString() didn't reflect the newly current TimeZone. The
cause for this was DateTime.to_local_time_span_object and
DateTime.last_now, which DateTime.Now uses as a cache for the
TimeZone's UTC offset.
Since these DateTime fields weren't cleared, subsequent DateTime.Now
invocations reported the *previous* TimeZone instead of the current
timezone.
To fix this, add an `internal` DateTime.ClearCachedData() method, and
call DateTime.ClearCachedData() from CultureInfo.ClearCachedData().
Zoltan Varga [Fri, 12 Dec 2014 00:30:07 +0000 (19:30 -0500)]
[amd64] Fix a simple peephole opt broken by the OP_IL_SEQ_POINT changes.
Zoltan Varga [Fri, 12 Dec 2014 00:14:18 +0000 (19:14 -0500)]
[jit] Mark OP_IL_SEQ_POINT as not having side effects.
Zoltan Varga [Thu, 11 Dec 2014 23:31:53 +0000 (18:31 -0500)]
[bcl] Fix another test failure caused by the usage of the reference version of System.ComponentModel.
Mark Probst [Thu, 11 Dec 2014 23:02:15 +0000 (15:02 -0800)]
[sgen] Add an assertion.
Mark Probst [Thu, 11 Dec 2014 23:01:45 +0000 (15:01 -0800)]
[sgen] Use the `SGEN_UPDATE_REFERENCE` macro in optimized copy.
Mark Probst [Thu, 11 Dec 2014 22:57:58 +0000 (14:57 -0800)]
[sgen] Fix evacuation.
We can't dereference an object's VTable before we know that it's not
tagged. In this case, forwarded. The access would be unaligned and
might even fault.
Zoltan Varga [Thu, 11 Dec 2014 22:51:19 +0000 (17:51 -0500)]
Revert "[jit] Enable tail calls from gshared code. Fixes #25224."
This reverts commit
ca0dd5c0bb0f600331aac3c6b8d0579e37cdd0c7.
Revert this as it causes a performance regression in f#.
Alexis Christoforides [Thu, 11 Dec 2014 21:00:40 +0000 (16:00 -0500)]
Fix merge typo
Alexis Christoforides [Thu, 11 Dec 2014 20:30:25 +0000 (15:30 -0500)]
[System.IO.KeventWatcher] Fixed deadlock when watcher stopped/disposed from its own event handler.
This fixes hangs in tests that do that (ie. System.Runtime.Caching).
Zoltan Varga [Thu, 11 Dec 2014 20:37:29 +0000 (15:37 -0500)]
[jit] Enable tail calls from gshared code. Fixes #25224.
Zoltan Varga [Thu, 11 Dec 2014 18:55:37 +0000 (13:55 -0500)]
[jit] Remove some dead code.
Joao Matos [Thu, 11 Dec 2014 18:45:44 +0000 (18:45 +0000)]
[runtime] Fixed shutdown crasher in mono_thread_pool_cleanup.
We call `mono_thread_pool_cleanup` twice from `mono_runtime_try_shutdown` and later `mono_domain_finalize`, which meant we tried to destroy the semaphore twice and that caused a crasher.
Fix this by clearing out the semaphore pointer. That way when we try to destroy it again it's already null and execution continues just fine.
Zoltan Varga [Thu, 11 Dec 2014 18:23:02 +0000 (13:23 -0500)]
[sdb] Fix the decoding of the next array when decoding sequence points.
Joao Matos [Thu, 11 Dec 2014 17:46:36 +0000 (17:46 +0000)]
[sgen] Fixed dump_alloc_records() to work on MSVC.
We are getting some crashers in printf when using the 'z' size_t printf specifier.
Joao Matos [Thu, 11 Dec 2014 17:40:36 +0000 (17:40 +0000)]
[sgen] Align vtable pointers to 8-bytes for phony vtable used for filling the nursery.
Thanks to Kumpera for providing the fix!
Mark Probst [Thu, 11 Dec 2014 17:30:12 +0000 (09:30 -0800)]
[sgen] Disable evacuation temporarily to fix crashes.
Zoltan Varga [Thu, 11 Dec 2014 16:58:41 +0000 (11:58 -0500)]
[sdb] Another try at fixing #25009.
Marek Safar [Thu, 11 Dec 2014 12:40:00 +0000 (13:40 +0100)]
Fix DateTimeConverter test
Zoltan Varga [Thu, 11 Dec 2014 12:34:04 +0000 (07:34 -0500)]
[sdb] Fix another shutdown crash. Fixes #25009.
Rodrigo Kumpera [Wed, 10 Dec 2014 15:53:16 +0000 (10:53 -0500)]
Merge pull request #1403 from schani/fix-roslyn-linux-oom
Fix Roslyn Linux OOM
Atsushi Eno [Wed, 10 Dec 2014 15:16:35 +0000 (23:16 +0800)]
bump rx to rx-oss-v2.2 and add branch info on .gitmodules.
Marek Safar [Wed, 10 Dec 2014 14:07:04 +0000 (15:07 +0100)]
[mcs] Better recovery from failed async return type inference. Fixes #25165
Jo Shields [Wed, 10 Dec 2014 12:56:49 +0000 (12:56 +0000)]
Distribute reference assemblies in source tarball. Yuck.
Marek Safar [Wed, 10 Dec 2014 11:52:23 +0000 (12:52 +0100)]
Marek Safar [Wed, 10 Dec 2014 11:30:56 +0000 (12:30 +0100)]
[mcs] Update static using to match the latest update (still work in progress)
Marek Habersack [Wed, 10 Dec 2014 10:33:14 +0000 (11:33 +0100)]
Specify referencesource branch in .gitmodules to make updating easier
Marek Habersack [Wed, 10 Dec 2014 10:31:27 +0000 (11:31 +0100)]
Update external/referencesource to fix mobile builds
Mark Probst [Fri, 14 Nov 2014 23:13:54 +0000 (15:13 -0800)]
[sgen] Always alloc degraded when nursery allocation fails.
There's an unlikely case that Roslyn triggers quite often on Linux: A
thread tries to allocate from the nursery, but it's full. It triggers
a nursery collection, then tries allocating again. Between the
collection and the allocation retry, another thread fills the nursery
so that the retry also fails.
We failed an assertion in this case. Now we always go to the major
heap if it happens.
Zoltan Varga [Tue, 9 Dec 2014 23:34:35 +0000 (18:34 -0500)]
[arm] Really fix the build.
Zoltan Varga [Tue, 9 Dec 2014 23:19:42 +0000 (18:19 -0500)]
[arm] Fix the build.
Mark Probst [Tue, 9 Dec 2014 21:15:55 +0000 (13:15 -0800)]
[runtime] Fix string size calculation in `mono_string_new_size()`.
This bug is not hit when doing managed allocations with SGen because the
managed allocator catches it. It can be triggered with the embedding API, as
well as when the heavy binary protocol is enabled, in which case `bug-17590`
fails.
Zoltan Varga [Tue, 9 Dec 2014 20:40:11 +0000 (15:40 -0500)]
[runtime] Allow StructLayoutAttribute.Pack values between 16 and 128. Fixes #25059.
Zoltan Varga [Tue, 9 Dec 2014 20:16:49 +0000 (15:16 -0500)]
[System.Drawing] Add support for a null culture argument to the ConvertFrom () method in RectangeConverter/SizeFConverter, the reference sources version of TypeConverter.ConvertFromString () passes null as the culture.
Zoltan Varga [Tue, 9 Dec 2014 19:53:13 +0000 (14:53 -0500)]
[System.Data] Fix a test failure caused by the transition to the reference sources version of System.ComponentModel.
Marcos Henrich [Tue, 9 Dec 2014 19:01:46 +0000 (19:01 +0000)]
Merge pull request #1436 from esdrubal/readerwriterlockslim
[System.Core] Bring .NET implementation of ReaderWriterLockSlim.
Zoltan Varga [Tue, 9 Dec 2014 18:34:47 +0000 (13:34 -0500)]
Merge pull request #1448 from ermshiperete/TSBTextTruncation
[MWF] Don't truncate text on ToolStripButton
Zoltan Varga [Tue, 9 Dec 2014 17:29:58 +0000 (12:29 -0500)]
Merge pull request #1449 from ermshiperete/Xamarin-bug-23591
[MWF] Fix crash in multi-selection list view
Eberhard Beilharz [Tue, 9 Dec 2014 17:15:12 +0000 (18:15 +0100)]
[MWF] Fix crash in multi-selection list view
Calling owner.UpdateMultiSelection can also change the selected item,
causing a crash.
This change improves the fix for Xamarin bug #23591.
Paolo Molaro [Tue, 9 Dec 2014 16:40:45 +0000 (17:40 +0100)]
[profiler] Enhance the profiler to keep track of and summarize jit trampolines and helpers.
Paolo Molaro [Tue, 9 Dec 2014 16:39:27 +0000 (17:39 +0100)]
[profiler] Report trampolines and other JIT helpers to the profiler.
Paolo Molaro [Tue, 9 Dec 2014 16:37:30 +0000 (17:37 +0100)]
[jit] Expose helper method to the rest of the JIT to get specific trampoline descriptions.
Paolo Molaro [Tue, 9 Dec 2014 16:36:12 +0000 (17:36 +0100)]
[profiler] Provide more options for describing jit code buffers precisely.
Jo Shields [Tue, 9 Dec 2014 16:44:27 +0000 (16:44 +0000)]
ReferenceSource ComponentModel changes to mobile_System.dll.sources
Eberhard Beilharz [Tue, 9 Dec 2014 16:22:30 +0000 (17:22 +0100)]
[MWF] Don't truncate text on ToolStripButton
Previous code subtracted 4 pixels of the height of the text of a
toolstrip button, presumably to leave a margin. However, margins
are handled elsewhere, so we ended up with truncated text.
Marek Safar [Tue, 9 Dec 2014 14:56:09 +0000 (15:56 +0100)]
[system] Workaround boostrap issue with HostProtectionAttribute
Zoltan Varga [Tue, 9 Dec 2014 14:25:03 +0000 (09:25 -0500)]
Merge pull request #1447 from chrisvire/bug-25102
[MWF] Use Ctrl+PageUp/PageDown for Tab Navigation
Marek Safar [Tue, 9 Dec 2014 14:09:34 +0000 (15:09 +0100)]
[corlib] Workaround boostrap issue with HostProtectionAttribute
Marek Safar [Tue, 9 Dec 2014 13:27:42 +0000 (14:27 +0100)]
[System] Use ComponentModel from reference sources
Marek Safar [Tue, 9 Dec 2014 09:03:30 +0000 (10:03 +0100)]
Merge pull request #1446 from odinserj/master
Add DateTimeOffsetConverter to the default converters list
Marek Safar [Tue, 9 Dec 2014 08:59:25 +0000 (09:59 +0100)]
make dist fix
Marek Safar [Tue, 9 Dec 2014 08:46:47 +0000 (09:46 +0100)]
Fix dmcs to have correct sdk value
Marek Safar [Tue, 9 Dec 2014 08:29:43 +0000 (09:29 +0100)]
Update mcs test
Zoltan Varga [Mon, 8 Dec 2014 22:53:35 +0000 (17:53 -0500)]
[sdb] Fix more crashes on shutdown when the assembly unload callbacks are called on the debugger thread. Fixes #25009.
Zoltan Varga [Mon, 8 Dec 2014 20:56:01 +0000 (15:56 -0500)]
[build] Print out the version of the bootstrap mcs if the profile check fails.
Zoltan Varga [Mon, 8 Dec 2014 20:48:17 +0000 (15:48 -0500)]
[runtime] Remove the bug-438454.exe test, it tests behaviour which is by design.
Zoltan Varga [Mon, 8 Dec 2014 20:18:00 +0000 (15:18 -0500)]
[runtime] Add another rule for the builder-sgen.h -> main-sgen.o dependency since apparently some versions of automake etc. generate a main-sgen.o file too.
Zoltan Varga [Mon, 8 Dec 2014 20:15:44 +0000 (15:15 -0500)]
Revert "[build] Rework the buildver dep check."
This reverts commit
a9f31e63db668955e2723796201d5c12dd146eae.
Revert this as it breaks make dist by having a source file depend on a generated file.
Marek Safar [Mon, 8 Dec 2014 18:54:30 +0000 (19:54 +0100)]
gmcs script is no longer installed.
The intention is to make build failures easy to spot instead of silently upgrading
target framework from 2 to 4 and then fail down the road on e.g type ambiguity
caused by new 4.0 framework types or methods
Sergey Odinokov [Mon, 8 Dec 2014 18:59:00 +0000 (21:59 +0300)]
Add DateTimeOffsetConverter to the default converters list.
This is the fix for https://bugzilla.xamarin.com/show_bug.cgi?id=25158
Current implementation does not contain the DateTimeOffsetConverter
in the list of default converters. This cause NotSupportedException
to be thrown when trying to serialize/deserialize DateTimeOffset
values to/from strings.
In .NET Framework implementation this class is added to such a list.
Alex Rønne Petersen [Mon, 8 Dec 2014 18:40:15 +0000 (19:40 +0100)]
Use `git://...` instead of `git@...` for submodules.
Marek Safar [Mon, 8 Dec 2014 16:50:21 +0000 (17:50 +0100)]
[corlib] Update SafeHandle dispose pattern to match .net. Fixes #25132
Marek Habersack [Mon, 8 Dec 2014 16:23:11 +0000 (17:23 +0100)]
Added reference-assemblies submodule to fix the build
Marek Safar [Mon, 8 Dec 2014 15:46:10 +0000 (16:46 +0100)]
Change 4.0 profile to metadata reference only profile
Marek Safar [Mon, 8 Dec 2014 13:48:28 +0000 (14:48 +0100)]
[corlib] Remove duplicate FirstChanceExceptionEventArgs
Atsushi Eno [Mon, 8 Dec 2014 15:40:52 +0000 (23:40 +0800)]
[mkbundle] fix execution for X.Android on Windows regarding dos2unix.
This fixes bug #25086 (Xamarin.Android). Details described there.
To fix the issue, we use #if XAMARIN_ANDROID to avoid that old cygwin-only
code path. (We are not sure if simply removing the old code still works,
so we don't remove that for now.)
Chris Hubbard [Mon, 8 Dec 2014 15:35:56 +0000 (10:35 -0500)]
[MWF] Use Ctrl+PageUp/PageDown for Tab Navigation
In the Windows implementation of the TabControl, Ctrl+PageUp
navigates to the previous tab and Ctrl+PageDown navigates to the
next tab (with both wrapping around). This change implements this
feature in the Mono implementation.
Change-Id: Ib940bd08d5ba641f05ed91c0e789e356e68f72bb
Marek Safar [Mon, 8 Dec 2014 11:04:01 +0000 (12:04 +0100)]
[system] Replace System.Collections.Generic from reference sources
Marek Safar [Mon, 8 Dec 2014 11:02:33 +0000 (12:02 +0100)]
[system] Add test for #25137
Marek Safar [Mon, 8 Dec 2014 10:33:04 +0000 (11:33 +0100)]
[system] Fix soctec test to not block indefinitely
Marek Safar [Mon, 8 Dec 2014 09:49:01 +0000 (10:49 +0100)]
Merge pull request #1445 from meebey/registry_fix_unneeded_write_permission
[corlib] Fix needing write permission when reading registry values. Fixe...
Mirco Bauer [Mon, 8 Dec 2014 09:29:24 +0000 (10:29 +0100)]
[corlib] Fix needing write permission when reading registry values. Fixes #25106
ToKey() ignores the setting parameter when calling RegistryKey.OpenSubKey() and
thus always asks for write permission. If you try to read read-only keys (say
HKLM without admin rights) it will fail with a SecurityException.
Zoltan Varga [Sat, 6 Dec 2014 11:17:55 +0000 (06:17 -0500)]
[amd64] Fix the passing of nested structures in registers which cross an 8 byte boundary in pinvoke. Fixes #25095.
Alexis Christoforides [Fri, 5 Dec 2014 20:53:55 +0000 (15:53 -0500)]
[canaries] Removed accidental hardcode
Alexis Christoforides [Fri, 5 Dec 2014 20:48:21 +0000 (15:48 -0500)]
[runtime] Replace offsetof with G_STRUCT_OFFSET on commit's @
b0cff959e47c3d9955e6675364bf71404cd74bac changes
Alexis Christoforides [Fri, 5 Dec 2014 20:05:21 +0000 (15:05 -0500)]
[System.IO.KeventWatcher] More fixes and MS behavior matching for the new implementation.
* Fixed the FileSystemEventArgs.Name property for all events
* Fixed regression of bug #5747 (and related path normalizing issues) https://bugzilla.xamarin.com/show_bug.cgi?id=5747
* Improved error handling, set hard limit on file descriptors to 200 for now to help isolate issues
* Fixed issues with rapid event Changed+Renamed firing
Mark Probst [Fri, 5 Dec 2014 19:55:20 +0000 (11:55 -0800)]
[sgen] Remove debugging comment.
Mark Probst [Fri, 5 Dec 2014 19:09:58 +0000 (11:09 -0800)]
[sgen] Fix pinning in the presence of canaries.
Zoltan Varga [Fri, 5 Dec 2014 19:09:00 +0000 (14:09 -0500)]
Merge pull request #980 from StephenMcConnel/bug-18638
Fix bugs in sizing TableLayoutPanel (Xamarin bug 18638)
Zoltan Varga [Fri, 5 Dec 2014 19:07:39 +0000 (14:07 -0500)]
Merge pull request #1442 from ermshiperete/TextOverlapsImage
[MWF] Fix problem when button text overlaps image
Zoltan Varga [Fri, 5 Dec 2014 19:07:20 +0000 (14:07 -0500)]
Merge pull request #1322 from StephenMcConnel/bug23532
Remove excessive shortcut key matching in ToolStrip
Zoltan Varga [Fri, 5 Dec 2014 19:06:36 +0000 (14:06 -0500)]
Merge pull request #1323 from StephenMcConnel/bug-23591
Fix potential crash in ListView.ItemControl.ItemsMouseDown
Jonathan Pryor [Fri, 5 Dec 2014 18:23:51 +0000 (13:23 -0500)]
[mscorlib/Android] TimeZoneInfo.Local.Id should NOT be "Local".
Fixes: https://bugzilla.xamarin.com/show_bug.cgi?id=24742
Context: Commit
f7fd52ad
Context: https://bugzilla.xamarin.com/show_bug.cgi?id=24958
The logic of Commit
f7fd52ad was 'Desktop Mono returns "Local" from
TimeZoneInfo.Local.Id, so surely Xamarin.Android should', predicated
in part on the assumption that whatever Desktop Mono does should be
the same as what Desktop .NET does.
This assumption wasn't verified, and is in fact wrong; Desktop .NET
doesn't return "Local" from TimeZoneInfo.Local.Id, it returns an
actual identifier.
The reason why Desktop Mono returns "Local" is due to implementation
sanity, particularly on OS X: /etc/localtime may be a symlink OR a
copy of the timezone data, and when it's a copy there's no way to
determine the Olson ID for the timezone. Consequently, it may not be
possible to determine the TimeZone ID.
Xamarin.Android doesn't have that problem; it uses the Android
persist.sys.timezone system property value,
falling back to java.util.TimeZone.getDefault().getID() if necessary,
and thus always has access to an Olson ID.
Change TimeZoneInfo.Local.Id on Xamarin.Android to return the Olson ID
instead of "Local", partially reverting Commit
f7fd52ad.
Marek Safar [Fri, 5 Dec 2014 17:50:54 +0000 (18:50 +0100)]
Update profiler tests environment
Marcos Henrich [Fri, 5 Dec 2014 17:12:28 +0000 (17:12 +0000)]
Bump referencesource
Marek Safar [Fri, 5 Dec 2014 16:57:02 +0000 (17:57 +0100)]
[mcs] Fix null operator on arrays with property receiver.
Marek Safar [Fri, 5 Dec 2014 16:41:05 +0000 (17:41 +0100)]
Merge pull request #1443 from esdrubal/userinfoescape
[System] Fixed UriParseComponents.ParseUser.
Eberhard Beilharz [Fri, 5 Dec 2014 16:35:35 +0000 (17:35 +0100)]
[MWF] Fix problem when button text overlaps image
When we draw a button with ImageAboveText.ImageAboveText and the
text is too big to fit below the image we have to draw the text over
the image. This should happen from the bottom, not from the top as
the previous implementation did. With the previous code we ended up
having the text at the top of the button under certain conditions.
Marcos Henrich [Fri, 5 Dec 2014 16:13:57 +0000 (16:13 +0000)]
[System] Fixed UriParseComponents.ParseUser. Fixes #25087.
UriParseComponents.ParseUser was unescaping all escaped chars and when a non valid user info char was encountered it was assuming that those chars were not part of the user info. The chars were not consumed thus the problems while parsing the rest of the input.
UriParseComponents.ParseUser now keeps non valid user info chars escaped.
Marcos Henrich [Fri, 5 Dec 2014 16:11:32 +0000 (16:11 +0000)]
[System] Test Uri constructor with escaped user info chars.
Marek Safar [Fri, 5 Dec 2014 15:51:25 +0000 (16:51 +0100)]
[mcs] Add dictionary initializer for arrays.
Marek Safar [Fri, 5 Dec 2014 15:39:44 +0000 (16:39 +0100)]
Update runtime tests environment
Marek Safar [Fri, 5 Dec 2014 14:02:22 +0000 (15:02 +0100)]
Fix resgen 4.0 profile path
Zoltan Varga [Fri, 5 Dec 2014 13:51:27 +0000 (08:51 -0500)]
Fix the DISABLE_REMOTING build.
Marek Safar [Fri, 5 Dec 2014 11:01:12 +0000 (12:01 +0100)]
Restore 4.0 profile as metadata only profile
Marek Safar [Fri, 5 Dec 2014 10:20:46 +0000 (11:20 +0100)]
[corlib] Add missing API
Atsushi Eno [Fri, 5 Dec 2014 06:55:33 +0000 (14:55 +0800)]
revive nunit-console which referenced lib/mono/2.0.
Actually the entire REWRITE2_* should be killed.
Mark Probst [Thu, 4 Dec 2014 22:35:27 +0000 (14:35 -0800)]
Fix a C compiler warning.
Alex Rønne Petersen [Thu, 4 Dec 2014 17:02:39 +0000 (18:02 +0100)]
No longer include Volatile.cs in Mvc3 since the 4.0 profile is gone now.
Marek Safar [Thu, 4 Dec 2014 17:59:42 +0000 (18:59 +0100)]
Add System.Data.Entity assembly