mono.git
8 years agoMerge pull request #2721 from ludovic-henry/fix-mono_ms_ticks
Ludovic Henry [Mon, 25 Apr 2016 15:22:15 +0000 (11:22 -0400)]
Merge pull request #2721 from ludovic-henry/fix-mono_ms_ticks

[runtime] Fix potential overflow when using mono_msec_ticks

8 years agoMerge pull request #2941 from jogibear9988/patch-1
Alexander Köplinger [Sun, 24 Apr 2016 17:49:48 +0000 (13:49 -0400)]
Merge pull request #2941 from jogibear9988/patch-1

Bugfix DateTime in Sqlite: https://bugzilla.xamarin.com/show_bug.cgi?id=40603

8 years agoRevert "[verifier] Do method visibility checks for virtual final methods. Enable...
Marek Safar [Sun, 24 Apr 2016 14:08:52 +0000 (16:08 +0200)]
Revert "[verifier] Do method visibility checks for virtual final methods. Enable type visibility for all methods. Fixes #5644."

This reverts commit 24ee5b8db0ab3115f88dcef72432568e3c1b8e83.

8 years agoRevert "WIP - don't merge"
Marek Safar [Sun, 24 Apr 2016 14:08:38 +0000 (16:08 +0200)]
Revert "WIP - don't merge"

This reverts commit 359bb511d3cdb2b320fba35d99684152615d5242.

8 years agoRevert "WIP fix the previous issue."
Marek Safar [Sun, 24 Apr 2016 14:08:21 +0000 (16:08 +0200)]
Revert "WIP fix the previous issue."

This reverts commit a26a53369857ed120522c8625b1bebc653f25baf.

8 years ago[corlib] Reenable IsReadOnly test
Marek Safar [Sun, 24 Apr 2016 07:24:13 +0000 (09:24 +0200)]
[corlib] Reenable IsReadOnly test

8 years ago[xbuild] Fix ApplicationIcon incremental build dependency
Marek Safar [Sun, 24 Apr 2016 07:17:23 +0000 (09:17 +0200)]
[xbuild] Fix ApplicationIcon incremental build dependency

8 years agoMerge pull request #2942 from jogibear9988/patch-2
Marek Safar [Sun, 24 Apr 2016 07:49:59 +0000 (09:49 +0200)]
Merge pull request #2942 from jogibear9988/patch-2

bugfix numInfo of Cultureinfo NonSerialized on Windows

8 years agoMerge pull request #2945 from mono/xi-40574
Marek Safar [Sun, 24 Apr 2016 07:04:31 +0000 (09:04 +0200)]
Merge pull request #2945 from mono/xi-40574

[linker] Method decorated with System.Runtime.Serialization.*Attribut…

8 years ago[linker] Method decorated with System.Runtime.Serialization.*Attribute must be marked...
Sebastien Pouliot [Sat, 23 Apr 2016 09:05:38 +0000 (05:05 -0400)]
[linker] Method decorated with System.Runtime.Serialization.*Attribute must be marked, Fixes #40574

Some serialization attributes are unlikely to have direct reference,
from IL, but will be needed at runtime to correctly serialize (or
deserialize) objects.

* OnDeserializedAttribute
* OnDeserializingAttribute
* OnSerializedAttribute
* OnSerializingAttribute

This, along with aad627c5e8ddf15397c87fa2d3e18b54f929c927, fixed bug
40574. The later part will have new unit tests in XI.

references:
https://bugzilla.xamarin.com/show_bug.cgi?id=40574

8 years ago[corlib] Disable core security icalls on mobile
Marek Safar [Sat, 23 Apr 2016 06:56:08 +0000 (08:56 +0200)]
[corlib] Disable core security icalls on mobile

8 years agoMicrosoft relicensed this fork of the Ajax library under the MIT license
Miguel de Icaza [Sat, 23 Apr 2016 00:19:02 +0000 (20:19 -0400)]
Microsoft relicensed this fork of the Ajax library under the MIT license

8 years agoMicrosoft relicensed this fork of the DLR under the MIT license
Miguel de Icaza [Sat, 23 Apr 2016 00:18:34 +0000 (20:18 -0400)]
Microsoft relicensed this fork of the DLR under the MIT license

8 years agoMerge pull request #2944 from lambdageek/dev/monoerror-thread_create
Aleksey Kliger (λgeek) [Fri, 22 Apr 2016 19:18:33 +0000 (15:18 -0400)]
Merge pull request #2944 from lambdageek/dev/monoerror-thread_create

[runtime] MonoError-ize mono_thread_create{,_internal}

8 years ago[runtime] MonoError-ize mono_thread_create{,_internal}
Aleksey Kliger [Wed, 20 Apr 2016 16:20:42 +0000 (12:20 -0400)]
[runtime] MonoError-ize mono_thread_create{,_internal}

Mark mono_thread_create external only.  Runtime should use
mono_thread_create_checked.

8 years ago[corlib] FileInfo from referencesource
Marek Safar [Fri, 22 Apr 2016 15:11:56 +0000 (17:11 +0200)]
[corlib] FileInfo from referencesource

8 years ago[corlib] Remove System.Core security types
Marek Safar [Fri, 22 Apr 2016 11:37:39 +0000 (13:37 +0200)]
[corlib] Remove System.Core security types

8 years ago[corlib] Remove duplicated sources
Marek Safar [Fri, 22 Apr 2016 08:35:44 +0000 (10:35 +0200)]
[corlib] Remove duplicated sources

8 years ago[System.Core] Add CommonCrypto dependencies
Marek Safar [Fri, 22 Apr 2016 08:30:09 +0000 (10:30 +0200)]
[System.Core] Add CommonCrypto dependencies

8 years ago[corlib] FileSystemInfo from reference source
Marek Safar [Fri, 22 Apr 2016 08:08:11 +0000 (10:08 +0200)]
[corlib] FileSystemInfo from reference source

8 years ago[acceptance-tests] Move roslyn build dependencies to download server
Alexander Köplinger [Fri, 22 Apr 2016 07:48:12 +0000 (09:48 +0200)]
[acceptance-tests] Move roslyn build dependencies to download server

storage.bos.internalx.com is only available via VPN now.

Also bump coreclr to get a recent minor fix.

8 years agoMerge pull request #2943 from mono/xi-40570
Marek Safar [Fri, 22 Apr 2016 05:55:16 +0000 (07:55 +0200)]
Merge pull request #2943 from mono/xi-40570

[System.Core] Add back AesManaged to tvOS and watchOS profiles. Fixes #40570

8 years ago[WindowsBase] Serialization fix of Int32Rect, Point, Rect, Size, Vector, Matrix ...
Kirill [Fri, 22 Apr 2016 04:44:52 +0000 (09:44 +0500)]
[WindowsBase] Serialization fix of Int32Rect, Point, Rect, Size, Vector, Matrix (#2873)

The problem is that private fields in described types doesn't start from _ prefix, but it should be so according to reference source.
That's way MONO can't deserialize that types correctly if source stream was created by MS .NET binary serializer.

This change is released under the MIT license.

8 years ago[System.Core] Add back AesManaged to tvOS and watchOS profiles
Sebastien Pouliot [Fri, 22 Apr 2016 01:25:38 +0000 (21:25 -0400)]
[System.Core] Add back AesManaged to tvOS and watchOS profiles

Switching maccore to use mono-4.5.0-branch introduced this bug where
AesManaged is not available in System.Core for both tvOS and watchOS
profiles (iOS is fine).

This results in unit tests failures on bots building maccore/master.

This fix the problem by importing the "main" monotouch_System.Core.
dll.sources into the other profiles - since they all share the same
feature set (in this case) and make it less likely to forget something
else in the future.

reference:
https://bugzilla.xamarin.com/show_bug.cgi?id=40570

8 years ago[runtime] Allow enums with base type of char in Enum.ToObject (), this is valid in...
Zoltan Varga [Thu, 21 Apr 2016 21:23:09 +0000 (17:23 -0400)]
[runtime] Allow enums with base type of char in Enum.ToObject (), this is valid in f#. Fixes #40568.

8 years agoMerge pull request #2940 from xmcclure/disable-jit-gsharedvt
monojenkins [Thu, 21 Apr 2016 20:40:20 +0000 (21:40 +0100)]
Merge pull request #2940 from xmcclure/disable-jit-gsharedvt

Fix gsharedvt compile on DISABLE_JIT platforms

8 years agobugfix numInfo of Cultureinfo NonSerialized on Windows, https://bugzilla.xamarin...
Jochen Kühner [Thu, 21 Apr 2016 19:59:57 +0000 (21:59 +0200)]
bugfix numInfo of Cultureinfo NonSerialized on Windows, https://bugzilla.xamarin.com/show_bug.cgi?id=35872

Cultureinfo numInfo is not NonSerialized on DotNet for windows, so it also should not on mono.

http://referencesource.microsoft.com/#mscorlib/system/globalization/cultureinfo.cs,76

8 years agoBugfix https://bugzilla.xamarin.com/show_bug.cgi?id=40603
Jochen Kühner [Thu, 21 Apr 2016 19:41:05 +0000 (21:41 +0200)]
Bugfix https://bugzilla.xamarin.com/show_bug.cgi?id=40603

8 years ago[I18N/CJK] iso-2022-jp GetChars() had some bogus conversion ranges.
Atsushi Eno [Thu, 21 Apr 2016 18:08:23 +0000 (03:08 +0900)]
[I18N/CJK] iso-2022-jp GetChars() had some bogus conversion ranges.

8 years agoFix gsharedvt compile on DISABLE_JIT platforms
Andi McClure [Thu, 21 Apr 2016 17:18:47 +0000 (13:18 -0400)]
Fix gsharedvt compile on DISABLE_JIT platforms

8 years agoMerge pull request #2939 from discofire/patch-1
Alexander Köplinger [Thu, 21 Apr 2016 16:24:58 +0000 (18:24 +0200)]
Merge pull request #2939 from discofire/patch-1

Update OracleConnection.cs

8 years agoUpdate OracleConnection.cs
discofire [Thu, 21 Apr 2016 15:48:49 +0000 (11:48 -0400)]
Update OracleConnection.cs

Fix SQL syntax for GetSchemaProcedures function. (Should have been 'SELECT' instead of 'SSELECT')

8 years agoMerge pull request #2918 from lateralusX/jlorenss/aot-x86-symbol-fix
Andi McClure [Thu, 21 Apr 2016 14:04:40 +0000 (10:04 -0400)]
Merge pull request #2918 from lateralusX/jlorenss/aot-x86-symbol-fix

Windows 32-bit x86 AOT assembler didn't compile due to incorrect symbol mangling.

8 years agoMerge pull request #2869 from BrzVlad/feature-mod-union-opt
Vlad Brezae [Thu, 21 Apr 2016 13:53:02 +0000 (16:53 +0300)]
Merge pull request #2869 from BrzVlad/feature-mod-union-opt

[sgen] Optimize mod union usage

8 years agoMerge pull request #2935 from kumpera/new-gc-test
monojenkins [Thu, 21 Apr 2016 07:45:27 +0000 (08:45 +0100)]
Merge pull request #2935 from kumpera/new-gc-test

[sgen] Add regression test for the interaction between the bridge and handles.

The bridge code was triggering handles to be considered deallocated thus leading
them to be overwritten.

8 years agoMerge pull request #2932 from ludovic-henry/fix-waithandle-remoting
monojenkins [Thu, 21 Apr 2016 06:30:26 +0000 (07:30 +0100)]
Merge pull request #2932 from ludovic-henry/fix-waithandle-remoting

[corlib] Ifdef out calls to SynchronizationAttribute on monotouch

When WaitHandle was imported from referencesource in f6fa8f0, the code was refactored and basically all WaitHandle.Wait* calls end up in WaitOneNative or WaitMultiple now.

On monotouch those methods threw a NotSupportedException when exitContext == true even before the import, so this behavior got inherited to some other methods that didn't throw after the exception was removed from them in 93e31cb. This broke tests in maccore and other code that passed exitContext=true.

To fix this, we just ifdef out the calls to SynchronizationAttribute on monotouch since they don't make sense there anyway since remoting isn't available. The commit that initially added the exception in 2ce9fc1 only did that to make the behavior consistent when the linker is enabled. By removing the calls we get the same result.

Do the same for Monitor so we're consistent.

commit message from @akoeplinger

8 years agoMerge pull request #2880 from kumpera/fix_5644
monojenkins [Wed, 20 Apr 2016 22:50:38 +0000 (23:50 +0100)]
Merge pull request #2880 from kumpera/fix_5644

[verifier] Do method visibility checks for virtual final methods. Enable type visibility for all methods. Fixes #5644.

I cannot repro the issue mentioned in the comments of mono_method_can_access_method.

* FIXME:
* with generics calls to explicit interface implementations can be expressed
* directly: the method is private, but we must allow it. This may be opening
* a hole or the generics code should handle this differently.
* Maybe just ensure the interface type is public.

@monojenkins merge

8 years ago[sgen] Add regression test for the interaction between the bridge and handles.
Rodrigo Kumpera [Wed, 20 Apr 2016 22:15:18 +0000 (15:15 -0700)]
[sgen] Add regression test for the interaction between the bridge and handles.

The bridge code was triggering handles to be considered deallocated thus leading
them to be overwritten.

8 years ago[docs] Added index.xml entry for CFNetworkHandler. (#2930)
Joel Martinez [Wed, 20 Apr 2016 20:51:37 +0000 (16:51 -0400)]
[docs] Added index.xml entry for CFNetworkHandler. (#2930)

This particular piece of documentation is added manually, because it's not in the regular BCL library, but is provided by Xamarin on the iOS platform. Because it was missing an entry in the index file, it was excluded from the published documentation when doing mdoc assemble.

8 years agoMerge pull request #2934 from vargaz/fix-36852
Zoltan Varga [Wed, 20 Apr 2016 20:14:44 +0000 (16:14 -0400)]
Merge pull request #2934 from vargaz/fix-36852

[sgen] Avoid returning NULL from null_link_if (), that means an empty…

8 years ago[corlib] Ifdef out calls to SynchronizationAttribute on monotouch
Ludovic Henry [Wed, 20 Apr 2016 15:38:34 +0000 (17:38 +0200)]
[corlib] Ifdef out calls to SynchronizationAttribute on monotouch

When WaitHandle was imported from referencesource in f6fa8f0, the code was refactored and basically all WaitHandle.Wait* calls end up in WaitOneNative or WaitMultiple now.

On monotouch those methods threw a NotSupportedException when exitContext == true even before the import, so this behavior got inherited to some other methods that didn't throw after the exception was removed from them in 93e31cb. This broke tests in maccore and other code that passed exitContext=true.

To fix this, we just ifdef out the calls to SynchronizationAttribute on monotouch since they don't make sense there anyway since remoting isn't available. The commit that initially added the exception in 2ce9fc1 only did that to make the behavior consistent when the linker is enabled. By removing the calls we get the same result.

Do the same for Monitor so we're consistent.

8 years ago[sgen] Avoid returning NULL from null_link_if (), that means an empty slot, not a...
Zoltan Varga [Wed, 20 Apr 2016 18:53:45 +0000 (14:53 -0400)]
[sgen] Avoid returning NULL from null_link_if (), that means an empty slot, not a handle pointing to null. Fixes #36852.

8 years agoWIP fix the previous issue.
Rodrigo Kumpera [Wed, 20 Apr 2016 17:14:46 +0000 (10:14 -0700)]
WIP fix the previous issue.

8 years agoWIP - don't merge
Rodrigo Kumpera [Tue, 19 Apr 2016 21:30:19 +0000 (14:30 -0700)]
WIP - don't merge

8 years ago[verifier] Do method visibility checks for virtual final methods. Enable type visibil...
Rodrigo Kumpera [Thu, 14 Apr 2016 00:41:20 +0000 (17:41 -0700)]
[verifier] Do method visibility checks for virtual final methods. Enable type visibility for all methods. Fixes #5644.

I cannot repro the issue mentioned in the comments of mono_method_can_access_method.

* FIXME:
* with generics calls to explicit interface implementations can be expressed
* directly: the method is private, but we must allow it. This may be opening
* a hole or the generics code should handle this differently.
* Maybe just ensure the interface type is public.

8 years ago[build] Add missing empty assemblies needed by default csc config
Marek Safar [Wed, 20 Apr 2016 15:27:50 +0000 (17:27 +0200)]
[build] Add missing empty assemblies needed by default csc config

8 years ago[profile] Fix a regression from last commit.
Rodrigo Kumpera [Wed, 20 Apr 2016 15:21:28 +0000 (08:21 -0700)]
[profile] Fix a regression from last commit.

8 years agoMerge pull request #2859 from lambdageek/dev/monoerror-object-c
Aleksey Kliger (λgeek) [Wed, 20 Apr 2016 14:46:47 +0000 (10:46 -0400)]
Merge pull request #2859 from lambdageek/dev/monoerror-object-c

[runtime] Grab bag of MonoError fixes in object.c

8 years ago[mcs] Fixes crash during conversion error reporting. Fixes #40536
Marek Safar [Wed, 20 Apr 2016 13:56:46 +0000 (15:56 +0200)]
[mcs] Fixes crash during conversion error reporting. Fixes #40536

8 years ago[mcs] null operator receiver type needs to be convertible to null. Fixes #40493
Marek Safar [Wed, 20 Apr 2016 12:23:19 +0000 (14:23 +0200)]
[mcs] null operator receiver type needs to be convertible to null. Fixes #40493

8 years ago[tools] Fixes compiler tester error messages verification
Marek Safar [Wed, 20 Apr 2016 12:18:29 +0000 (14:18 +0200)]
[tools] Fixes compiler tester error messages verification

8 years agoMerge pull request #2891 from xmcclure/bug-39669
Marek Safar [Wed, 20 Apr 2016 06:09:32 +0000 (08:09 +0200)]
Merge pull request #2891 from xmcclure/bug-39669

Allow xml configuration sections to reference System.dll (bug#39669)

8 years ago[profiler] Remove unneeded call to mono_lock_free_queue_node_init.
Rodrigo Kumpera [Tue, 19 Apr 2016 22:57:16 +0000 (15:57 -0700)]
[profiler] Remove unneeded call to mono_lock_free_queue_node_init.

Remove calls to mono_lock_free_queue_node_init for nodes that just came out of mono_lock_free_queue_dequeue.

That call is superfluous as dequeue will set the returned node 'next' field to INVALID_NEXT, which is the
same thing the mono_lock_free_queue_node_init call did.

8 years agoMerge pull request #2922 from akoeplinger/fix-tvos
monojenkins [Tue, 19 Apr 2016 22:40:34 +0000 (23:40 +0100)]
Merge pull request #2922 from akoeplinger/fix-tvos

[utils] Fix MONO_SIGNAL_USE_UCONTEXT_T not being defined on tvOS simulator

In the maccore tvossimulator tests we were seeing the following assertion with the Mono 4.5 preview:

```
error: * Assertion: should not be reached at /Users/builder/data/lanes/1381/0d6923b4/source/maccore/external/mono/mono/utils/mono-context.c:194

0   dont link                           0x000000010175702d mono_handle_native_sigsegv + 253
1   libsystem_platform.dylib            0x000000010a0cfeaa _sigtramp + 26
2   ???                                 0x0000000001bfc4db 0x0 + 29344987
3   libsystem_c.dylib                   0x0000000109e56cbc abort + 129
4   dont link                           0x00000001018d1503 _ZL12log_callbackPKcS0_S0_iPv + 67
5   dont link                           0x00000001018c26d0 monoeg_assertion_message + 192
6   dont link                           0x00000001018af6de mono_sigctx_to_monoctx + 30
7   dont link                           0x000000010183f473 sgen_suspend_thread + 323
8   dont link                           0x000000010183f58e sgen_thread_handshake + 126
9   dont link                           0x000000010183fb20 sgen_client_stop_world + 1296
10  dont link                           0x0000000101871283 sgen_stop_world + 67
11  dont link                           0x0000000101870d43 sgen_perform_collection + 99
12  dont link                           0x0000000101872576 sgen_gc_collect + 102
13  dont link                           0x00000001018d1886 _ZL7pump_gcPv + 54
14  libsystem_pthread.dylib             0x000000010a0b7c13 _pthread_body + 131
15  libsystem_pthread.dylib             0x000000010a0b7b90 _pthread_body + 0
16  libsystem_pthread.dylib             0x000000010a0b5375 thread_start + 13
```

This was caused by a4e257a07f511062a8feb3e06e1566fd980110ce, the issue is that the check was changed from UCONTEXT_REG_RAX to MONO_SIGNAL_USE_UCONTEXT_T, but that is only available when HAVE_SIGACTION is defined which it is not in this case.

Talked with Zoltan, fixing this by enabling MONO_SIGNAL_USE_UCONTEXT_T on all apple platforms for now.

/cc @vargaz @xmcclure

@monojenkins merge

8 years agoAnother round of profiler fixes/improvements. PR #2882 (Manually Merged)
Rodrigo Kumpera [Tue, 19 Apr 2016 22:13:09 +0000 (15:13 -0700)]
Another round of profiler fixes/improvements. PR #2882 (Manually Merged)

https://github.com/mono/mono/pull/2882

8 years ago[runtime] MonoError-ize mono_ldstr_metadata_sig
Aleksey Kliger [Fri, 8 Apr 2016 18:47:20 +0000 (14:47 -0400)]
[runtime] MonoError-ize mono_ldstr_metadata_sig

8 years ago[runtime] MonoError-ize mono_string_new_len
Aleksey Kliger [Fri, 8 Apr 2016 18:17:26 +0000 (14:17 -0400)]
[runtime] MonoError-ize mono_string_new_len

Mark it external only.  Runtime should use mono_string_new_len_checked.

8 years ago[runtime] MonoError-ize mono_wait_handle_new
Aleksey Kliger [Fri, 8 Apr 2016 16:16:09 +0000 (12:16 -0400)]
[runtime] MonoError-ize mono_wait_handle_new

8 years ago[runtime] MonoError-ize mono_array_new_cached
Aleksey Kliger [Fri, 8 Apr 2016 15:56:27 +0000 (11:56 -0400)]
[runtime] MonoError-ize mono_array_new_cached

8 years ago[runtime] MonoError-ize mono_array_new
Aleksey Kliger [Thu, 7 Apr 2016 23:25:53 +0000 (19:25 -0400)]
[runtime] MonoError-ize mono_array_new

Mark it external only.

Runtime should use mono_array_new_checked.
The icall is ves_icall_array_new.

8 years ago[runtime] object.c don't raise in external only functions
Aleksey Kliger [Thu, 7 Apr 2016 19:15:36 +0000 (15:15 -0400)]
[runtime] object.c don't raise in external only functions

- Variants of mono_object_new
- mono_object_clone
- mono_array_new_full

All these functions have _checked variants that are used by the runtime.

8 years ago[runtime] MonoError-ize mono_array_clone
Aleksey Kliger [Thu, 7 Apr 2016 17:15:45 +0000 (13:15 -0400)]
[runtime] MonoError-ize mono_array_clone

1. Mark mono_array_clone external only.  Runtime should use
  mono_array_clone_checked.
2. Add MonoError* arg to mono_array_clone_in_domain.
3. Separate ves_icall_System_Array_Clone

8 years ago[runtime] Mark mono_object_new_from_token external only.
Aleksey Kliger [Thu, 7 Apr 2016 16:58:34 +0000 (12:58 -0400)]
[runtime] Mark mono_object_new_from_token external only.

Does not appear to be used in the runtime.
Changed it not to raise exceptions.

8 years ago[runtime] Set pending, don't raise, in object.c icalls
Aleksey Kliger [Thu, 7 Apr 2016 16:57:04 +0000 (12:57 -0400)]
[runtime] Set pending, don't raise, in object.c icalls

8 years ago[runtime] MonoError-ize mono_object_xdomain_representation
Aleksey Kliger [Wed, 6 Apr 2016 21:03:34 +0000 (17:03 -0400)]
[runtime] MonoError-ize mono_object_xdomain_representation

8 years ago[runtime] MonoError-ize mono_property_get_value
Aleksey Kliger [Fri, 1 Apr 2016 23:56:29 +0000 (19:56 -0400)]
[runtime] MonoError-ize mono_property_get_value

Mark it external only.  Runtime should use mono_property_get_value_checked.

8 years ago[runtime] MonoError-ize mono_property_set_value
Aleksey Kliger [Fri, 1 Apr 2016 20:21:51 +0000 (16:21 -0400)]
[runtime] MonoError-ize mono_property_set_value

Mark it external only.  Runtime should use
mono_property_set_value_checked.

Note: mono_property_set_value_checked always catches exceptions from
managed code and threads them out via MonoError.

8 years ago[runtime] Don't raise exns, set pending exception
Aleksey Kliger [Fri, 1 Apr 2016 20:11:20 +0000 (16:11 -0400)]
[runtime] Don't raise exns, set pending exception

8 years ago[runtime] MonoError-ize mono_runtime_create_jump_trampoline
Aleksey Kliger [Fri, 1 Apr 2016 00:27:10 +0000 (20:27 -0400)]
[runtime] MonoError-ize mono_runtime_create_jump_trampoline

8 years ago[attach] Don't raise in mono_attach_load_agent
Aleksey Kliger [Thu, 31 Mar 2016 21:00:34 +0000 (17:00 -0400)]
[attach] Don't raise in mono_attach_load_agent

8 years agoMerge pull request #2806 from lambdageek/dev/monoerror-marshal_remote
monojenkins [Tue, 19 Apr 2016 21:50:30 +0000 (22:50 +0100)]
Merge pull request #2806 from lambdageek/dev/monoerror-marshal_remote

[runtime] MonoError-ize marshal and remoting code

Get rid of calls to `mono_raise_exception` in marshaling and remoting code.

8 years ago[profiler] Don't link against libmono.
Rodrigo Kumpera [Wed, 13 Apr 2016 20:31:28 +0000 (22:31 +0200)]
[profiler] Don't link against libmono.

This would result in duplicate runtimes being loaded (as evidenced by
/proc/$pid/maps), which could lead to all sorts of breakage.

8 years ago[profiler] Load the profiler with MONO_DL_EAGER.
Alex Rønne Petersen [Wed, 13 Apr 2016 18:19:12 +0000 (20:19 +0200)]
[profiler] Load the profiler with MONO_DL_EAGER.

We need to make sure all external references have been resolved so that we
don't invoke the dynamic linker in the mono_sample_hit () callback which is
called in async-signal context.

8 years ago[utils/dl] Add a MONO_DL_EAGER enum value for clarity.
Alex Rønne Petersen [Thu, 14 Apr 2016 14:51:13 +0000 (16:51 +0200)]
[utils/dl] Add a MONO_DL_EAGER enum value for clarity.

8 years ago[profiler] Don't use a real-time signal on Android.
Alex Rønne Petersen [Tue, 12 Apr 2016 07:43:27 +0000 (09:43 +0200)]
[profiler] Don't use a real-time signal on Android.

8 years ago[profiler] Use 'start_unload' events instead of 'end_unload' events to avoid crashes.
Alex Rønne Petersen [Mon, 11 Apr 2016 05:49:14 +0000 (07:49 +0200)]
[profiler] Use 'start_unload' events instead of 'end_unload' events to avoid crashes.

'end_unload' events can receive mostly-freed structures.

8 years ago[profiler] Use a signal to interrupt the sampler thread's sleep if needed.
Alex Rønne Petersen [Sat, 9 Apr 2016 11:16:29 +0000 (13:16 +0200)]
[profiler] Use a signal to interrupt the sampler thread's sleep if needed.

There is a slight problem when we're using CLOCK_PROCESS_CPUTIME_ID: If we're
shutting down and there's largely no activity in the process other than waiting
for the sampler thread to shut down, it can take upwards of 20 seconds
(depending on a lot of factors) for us to shut down because the sleep
progresses very slowly as a result of the low CPU activity.

We fix this by repeatedly sending the profiler signal to the sampler thread in
order to interrupt the sleep.

We do not need to do this on platforms where we use a regular sleep based on a
monotonic clock. The sleep will return in a reasonable amount of time in those
cases.

8 years ago[profiler] Add some more counters.
Alex Rønne Petersen [Sat, 9 Apr 2016 02:01:19 +0000 (04:01 +0200)]
[profiler] Add some more counters.

8 years ago[profiler] Limit the number of allocated sample hit structures.
Andi McClure [Sat, 9 Apr 2016 01:16:10 +0000 (03:16 +0200)]
[profiler] Limit the number of allocated sample hit structures.

8 years ago[profiler] Add counters for log buffers and sample hits.
Andi McClure [Sat, 9 Apr 2016 01:14:33 +0000 (03:14 +0200)]
[profiler] Add counters for log buffers and sample hits.

8 years ago[profiler] Rewrite the log profiler's handling of sample hits.
Alex Rønne Petersen [Sat, 9 Apr 2016 01:06:41 +0000 (03:06 +0200)]
[profiler] Rewrite the log profiler's handling of sample hits.

The old code had quite a few problems:

1. It would result in stack corruption under heavy load, somehow. This typically
   resulted in an assertion when starting the unwinding process because the
   unwinding flags would be inconsistent.
2. It sometimes wrote complete garbage into the statistical buffers.
3. As a result of using the helper thread to assemble collected samples into log
   buffers, it did not work on platforms where the helper thread is disabled.
4. Performance was poor under heavy load because waking up the helper thread to
   assemble events would always trigger a counters sample + dump.
5. The code was very complicated and hard to understand/maintain.

(Points (1) and (2) can probably be attributed to point (5).)

In the new sampling world order, we use a lock-free allocator and a lock-free
reuse queue to acquire memory for sample hit events in the sample hit callback.
We then fill it with the info we collect during the async stack walk. Finally,
we ship it off to a separate dumper thread (via another lock-free queue) where
it gets turned into a log buffer and then shipped off to the writer thread.

This new approach appears very stable; I've yet to make it crash in any of the
stress tests I typically run. In a heavy workload, the helper thread's CPU
usage was previously around 25-30%. It is now down to basically 0% while the
dumper thread is only around 15%. CPU usage by threads that are collecting
samples is a bit higher than before, but only until the reuse queue converges
on a size that is big enough to satisfy all sample event requests. At that
point, no more allocations from the lock-free allocator happen, and performance
improves.

8 years ago[utils/lfa] Export the lock-free allocation code for use in the profiler.
Alex Rønne Petersen [Fri, 8 Apr 2016 23:24:06 +0000 (01:24 +0200)]
[utils/lfa] Export the lock-free allocation code for use in the profiler.

8 years ago[profiler] Add counters for numbers of signals sent/received/accepted.
Andi McClure [Fri, 8 Apr 2016 23:22:52 +0000 (01:22 +0200)]
[profiler] Add counters for numbers of signals sent/received/accepted.

8 years ago[counters] Add a profiler category.
Alex Rønne Petersen [Fri, 8 Apr 2016 23:22:32 +0000 (01:22 +0200)]
[counters] Add a profiler category.

8 years ago[profiler] Make the default sample frequency 100 Hz.
Alex Rønne Petersen [Sat, 9 Apr 2016 01:16:44 +0000 (03:16 +0200)]
[profiler] Make the default sample frequency 100 Hz.

Our previous default (1000 Hz) was quite extreme and resulted in very high
overhead from the profiler for moderate workloads.

Also, fix the profiler to actually treat the 'freq' argument as a frequency
when passing it to the runtime. It was being incorrectly treated as a sleep
interval.

8 years ago[domain] Report domain unloads to the profiler when finalizing the domain.
Alex Rønne Petersen [Sat, 9 Apr 2016 01:57:16 +0000 (03:57 +0200)]
[domain] Report domain unloads to the profiler when finalizing the domain.

We would miss the unload event for the root domain because we reported it just
before freeing the domain, by which time the profiler was detached.

8 years ago[profiler] Only initialize the sampler thread once.
Alex Rønne Petersen [Sat, 9 Apr 2016 02:11:14 +0000 (04:11 +0200)]
[profiler] Only initialize the sampler thread once.

8 years ago[System.Configuration] Fail tests on standalone error
Marek Safar [Tue, 19 Apr 2016 21:24:12 +0000 (23:24 +0200)]
[System.Configuration] Fail tests on standalone error

8 years agoAdd xml configuration section test (bug#39669)
Andi McClure [Tue, 19 Apr 2016 21:13:31 +0000 (17:13 -0400)]
Add xml configuration section test (bug#39669)

8 years ago[System.Configuration] re-enable standalone tests
Marek Safar [Tue, 19 Apr 2016 21:10:21 +0000 (23:10 +0200)]
[System.Configuration] re-enable standalone tests

8 years ago[utils] Fix MONO_SIGNAL_USE_UCONTEXT_T not being defined on tvOS simulator
Alexander Köplinger [Tue, 19 Apr 2016 19:30:53 +0000 (21:30 +0200)]
[utils] Fix MONO_SIGNAL_USE_UCONTEXT_T not being defined on tvOS simulator

In the maccore tvossimulator tests we were seeing the following assertion with the Mono 4.5 preview:

```
error: * Assertion: should not be reached at /Users/builder/data/lanes/1381/0d6923b4/source/maccore/external/mono/mono/utils/mono-context.c:194

0   dont link                           0x000000010175702d mono_handle_native_sigsegv + 253
1   libsystem_platform.dylib            0x000000010a0cfeaa _sigtramp + 26
2   ???                                 0x0000000001bfc4db 0x0 + 29344987
3   libsystem_c.dylib                   0x0000000109e56cbc abort + 129
4   dont link                           0x00000001018d1503 _ZL12log_callbackPKcS0_S0_iPv + 67
5   dont link                           0x00000001018c26d0 monoeg_assertion_message + 192
6   dont link                           0x00000001018af6de mono_sigctx_to_monoctx + 30
7   dont link                           0x000000010183f473 sgen_suspend_thread + 323
8   dont link                           0x000000010183f58e sgen_thread_handshake + 126
9   dont link                           0x000000010183fb20 sgen_client_stop_world + 1296
10  dont link                           0x0000000101871283 sgen_stop_world + 67
11  dont link                           0x0000000101870d43 sgen_perform_collection + 99
12  dont link                           0x0000000101872576 sgen_gc_collect + 102
13  dont link                           0x00000001018d1886 _ZL7pump_gcPv + 54
14  libsystem_pthread.dylib             0x000000010a0b7c13 _pthread_body + 131
15  libsystem_pthread.dylib             0x000000010a0b7b90 _pthread_body + 0
16  libsystem_pthread.dylib             0x000000010a0b5375 thread_start + 13
```

This was caused by a4e257a07f511062a8feb3e06e1566fd980110ce, the issue is that the check was changed from UCONTEXT_REG_RAX to MONO_SIGNAL_USE_UCONTEXT_T, but that is only available when HAVE_SIGACTION is defined which it is not in this case.

Discussed with Zoltan, fixing this by enabling MONO_SIGNAL_USE_UCONTEXT_T on all apple platforms for now.

8 years ago[runtime] Remove use of mono_raise_exception in mono_object_isinst_mbyref_checked
Aleksey Kliger [Mon, 28 Mar 2016 19:04:42 +0000 (15:04 -0400)]
[runtime] Remove use of mono_raise_exception in mono_object_isinst_mbyref_checked

8 years ago[remoting] Remove calls to mono_raise_exception
Aleksey Kliger [Tue, 29 Mar 2016 16:45:02 +0000 (12:45 -0400)]
[remoting] Remove calls to mono_raise_exception

1. MonoError-ize mono_remoting_wrapper icall.
   This is a bit this method is allowed to use
   mono_error_raise_exception: it is called from a
   MONO_WRAPPER_REMOTING_INVOKE method which is considered a "protected
   wrapper" in which the usual pending exception interruption check is a no-op.
2. Use mono_set_pending_exception in mono_marshal_set_domain_by_id icall

fixup f5dc934

8 years ago[mcs] Don't do empty array interpolation on user code, weird code expects empty array...
Marek Safar [Tue, 19 Apr 2016 17:14:44 +0000 (19:14 +0200)]
[mcs] Don't do empty array interpolation on user code, weird code expects empty array not to be equal

8 years agoWindows 32-bit x86 AOT assembler didn't link correctly.
lateralusX [Tue, 19 Apr 2016 15:12:48 +0000 (17:12 +0200)]
Windows 32-bit x86 AOT assembler didn't link correctly.

When running basic make check in mono/mini there are some hidden errors in the check-seq-points test. Current test compares output between JIT and AOT compile assemblies but doesn't pay attention to the result of the as and ld calls building the AOT:ed modules. It turns out that the linkage of the AOT compiled module on win32 x86 actually fails due to naming of symbols included in .def or .globl assembler expressions. The fix makes sure that local function symbols or global symbol definitions follows the cdecl win32 x86 convention and are prefixed with _. The fix tries to resolve this using two different strategies. Since there are many code paths in the AOT compiler emitting local/global symbols + referencing the emitted symbols, it doesn't look like there is one place to fix this (unless rename the symbol altogether and that could cause regressions elsewhere).

First, local function symbols are emitted using .def expression when used as debug symbols. By prefixing debug symbols with _ will resolve most of the local function symbols. By mangling the debug symbols we can fix both emitted symbols and references to these symbols in two location (get_debug_sym, get_plt_entry_debug_sym).

Second, in order to make sure all other symbols (local/global) ending up in .def or .globl expressions are correctly mangled, the functions to emit local/global symbols in aot-compiler.c have been extended to check mangling on passed in symbols before emitting. If passed in symbol doesn't follow the name mangling rule, the symbols will be mangled and the mangled symbol will be emitted together with a label to the mangled symbol. This is done to make sure we have a correct label for the emitted symbol that can be used by the linker. Since the rest of the code is unaware of the mangled name, it will continue reference the unmangled name and since there is already a label to the unmangled symbol, the mangling will be transparent for the rest of the code.

NOTE, the fix only applies to windows X86 build, other configurations are not affected by this issue.

This PR also includes a fix detected on windows when debugging and fixing above issue. The AOT compiler tries to rename linked module to the final target name, for example from basic.exe.dll.tmp to basic.exe.dll. If the file already exist, the rename will fail on windows causing a silent failure in the AOT compiler and this will "leak" the tmp file + ending up with the old basic.exe.dll. The fix is to check result of the rename function call and if it fails with "file already exist error", unlink target and redo rename operation. The rename can still fail due to other reasons ending up in the same problem, but to make a good fix, the error handling of the method needs to be revisited in order to properly clean up tmp files and allocations in error cases. This will be handled in a different PR.

8 years ago[symbolicate] Switch to Cecil backend
Marek Safar [Tue, 19 Apr 2016 13:26:02 +0000 (15:26 +0200)]
[symbolicate] Switch to Cecil backend

8 years ago[monosymbolicate] Small cleanups
Marek Safar [Mon, 18 Apr 2016 19:19:45 +0000 (21:19 +0200)]
[monosymbolicate] Small cleanups

8 years agoSupport custom Xamarin Android HttpClient handler
Marek Habersack [Wed, 13 Apr 2016 07:12:08 +0000 (09:12 +0200)]
Support custom Xamarin Android HttpClient handler

Make it possible to select a default System.Net.HttpClient handler
on Android. Selection of the handler is handled on the Xamarin Android
side.

8 years agoMerge pull request #2863 from alexrp/windows-critsect-debug-info
Alex Rønne Petersen [Tue, 19 Apr 2016 09:48:24 +0000 (11:48 +0200)]
Merge pull request #2863 from alexrp/windows-critsect-debug-info

[utils/mutex] Initialize Win32 critical sections without debug info.

8 years ago[offsets-tool] Fix path to Options.cs
Rolf Bjarne Kvinge [Tue, 19 Apr 2016 08:41:25 +0000 (10:41 +0200)]
[offsets-tool] Fix path to Options.cs