mono.git
8 years ago[api] GCC is much better at enforcing MONO_RT_EXTERNAL_ONLY.
Rodrigo Kumpera [Wed, 27 Jan 2016 23:11:59 +0000 (18:11 -0500)]
[api] GCC is much better at enforcing MONO_RT_EXTERNAL_ONLY.

8 years ago[api] Mark external Only: mono_get_method, mono_get_method_full and mono_get_method_c...
Rodrigo Kumpera [Wed, 27 Jan 2016 20:03:26 +0000 (15:03 -0500)]
[api] Mark external Only: mono_get_method, mono_get_method_full and mono_get_method_constrained.

8 years ago[build] Add MONO_RT_EXTERNAL_ONLY macro to the public API.
Rodrigo Kumpera [Wed, 27 Jan 2016 19:55:47 +0000 (14:55 -0500)]
[build] Add MONO_RT_EXTERNAL_ONLY macro to the public API.

This macro should be used to decorate functions that are part of the public API but the runtime is
not supposed to call.

This is to allow us to keep them around but not go crazy with commit reintroducing their usage.

8 years agoMerge pull request #2520 from kumpera/loader-error-cleanup5
Rodrigo Kumpera [Wed, 27 Jan 2016 18:38:13 +0000 (13:38 -0500)]
Merge pull request #2520 from kumpera/loader-error-cleanup5

[mono-error] Another round of loader-error

8 years agoMerge pull request #2521 from akoeplinger/fix-sockettest-endconnect-error
monojenkins [Wed, 27 Jan 2016 16:15:23 +0000 (16:15 +0000)]
Merge pull request #2521 from akoeplinger/fix-sockettest-endconnect-error

[System] Fix error in new BeginConnectToIPV4EndPointUsingDualModelSocket test

It was added with 78c758494a04132c0965f8af82dd7370da5f4af1. The test fails on Jenkins:

```
Test Case Failures:
1) MonoTests.System.Net.Sockets.SocketTest.BeginConnectToIPV4EndPointUsingDualModelSocket : System.InvalidOperationException : EndConnect can only be called once per asynchronous operation
at System.Net.Sockets.Socket.ValidateEndIAsyncResult (IAsyncResult ares, System.String methodName, System.String argName) [0x0004a] in /var/lib/jenkins/workspace/test-mono-mainline/label/debian-amd64/mcs/class/System/System.Net.Sockets/Socket.cs:3412
at System.Net.Sockets.Socket.EndConnect (IAsyncResult result) [0x00006] in /var/lib/jenkins/workspace/test-mono-mainline/label/debian-amd64/mcs/class/System/System.Net.Sockets/Socket.cs:1584
at MonoTests.System.Net.Sockets.SocketTest.BeginConnectToIPV4EndPointUsingDualModelSocket () [0x0005d] in /var/lib/jenkins/workspace/test-mono-mainline/label/debian-amd64/mcs/class/System/Test/System.Net.Sockets/SocketTest.cs:4365
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in /var/lib/jenkins/workspace/test-mono-mainline/label/debian-amd64/mcs/class/corlib/System.Reflection/MonoMethod.cs:295
```

The reason is that BCCallback already calls EndConnect() so we need to remove it and just wait for the callback in the test itself.

@monojenkins merge

8 years ago[mcs] Reset null operator barrier in parenthesis expression
Marek Safar [Wed, 27 Jan 2016 15:56:31 +0000 (16:56 +0100)]
[mcs] Reset null operator barrier in parenthesis expression

8 years agoFix serialization under XM 4.5 Target Framework
Chris Hamons [Wed, 27 Jan 2016 14:51:24 +0000 (08:51 -0600)]
Fix serialization under XM 4.5 Target Framework

- System.Configuration.ConfigurationErrorsException: Failed to load configuration section for dataContractSerializer
- Fixes #36401 #38064

8 years ago[System] Fix error in new BeginConnectToIPV4EndPointUsingDualModelSocket test
Alexander Köplinger [Wed, 27 Jan 2016 14:34:52 +0000 (15:34 +0100)]
[System] Fix error in new BeginConnectToIPV4EndPointUsingDualModelSocket test

It was added with 78c758494a04132c0965f8af82dd7370da5f4af1. The test fails on Jenkins:

```
Test Case Failures:
1) MonoTests.System.Net.Sockets.SocketTest.BeginConnectToIPV4EndPointUsingDualModelSocket : System.InvalidOperationException : EndConnect can only be called once per asynchronous operation
at System.Net.Sockets.Socket.ValidateEndIAsyncResult (IAsyncResult ares, System.String methodName, System.String argName) [0x0004a] in /var/lib/jenkins/workspace/test-mono-mainline/label/debian-amd64/mcs/class/System/System.Net.Sockets/Socket.cs:3412
at System.Net.Sockets.Socket.EndConnect (IAsyncResult result) [0x00006] in /var/lib/jenkins/workspace/test-mono-mainline/label/debian-amd64/mcs/class/System/System.Net.Sockets/Socket.cs:1584
at MonoTests.System.Net.Sockets.SocketTest.BeginConnectToIPV4EndPointUsingDualModelSocket () [0x0005d] in /var/lib/jenkins/workspace/test-mono-mainline/label/debian-amd64/mcs/class/System/Test/System.Net.Sockets/SocketTest.cs:4365
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in /var/lib/jenkins/workspace/test-mono-mainline/label/debian-amd64/mcs/class/corlib/System.Reflection/MonoMethod.cs:295
```

The reason is that BCCallback already calls EndConnect() so we need to remove it and just wait for the callback in the test itself.

8 years ago[System.Runtime.Caching] Bump timeout in tests to make them more reliable
Alexander Köplinger [Wed, 27 Jan 2016 11:29:45 +0000 (12:29 +0100)]
[System.Runtime.Caching] Bump timeout in tests to make them more reliable

Failed on Jenkins on ARM today:

```
Tests run: 38, Failures: 1, Not run: 0, Time: 32.132 seconds

Test Case Failures:
1) MonoTests.System.Runtime.Caching.MemoryCacheTest.TimedExpiration :   #A4-4
  Expected: not null
  But was:  null

at MonoTests.System.Runtime.Caching.MemoryCacheTest.TimedExpiration () [0x002b6] in /media/ssd/jenkins/workspace/test-mono-mainline/label/debian-armel/mcs/class/System.Runtime.Caching/Test/System.Runtime.Caching/MemoryCacheTest.cs:902
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in /media/ssd/jenkins/workspace/test-mono-mainline/label/debian-armel/mcs/class/corlib/System.Reflection/MonoMethod.cs:295
```

100ms could be too short, bumping the timeout should make it more reliable on the slower ARM machines.

8 years agoMerge pull request #2420 from stefansedich/master
Ludovic Henry [Wed, 27 Jan 2016 09:51:42 +0000 (09:51 +0000)]
Merge pull request #2420 from stefansedich/master

Handle automatically mapping IPv4 addresses to IPV6 for dual mode sockets, fixes #36192

8 years ago[runtime] Use mono_error_set_pending_exception () instead of mono_error_raise_excepti...
Zoltan Varga [Wed, 27 Jan 2016 06:02:58 +0000 (01:02 -0500)]
[runtime] Use mono_error_set_pending_exception () instead of mono_error_raise_exception () in icall.c.

8 years agoMerge pull request #2486 from ludovic-henry/monoerror-mono_type_get_object
monojenkins [Wed, 27 Jan 2016 04:45:23 +0000 (04:45 +0000)]
Merge pull request #2486 from ludovic-henry/monoerror-mono_type_get_object

[runtime] Use MonoError for mono_type_get_object

8 years agoMerge pull request #2519 from ludovic-henry/fix-array-jiticalls
monojenkins [Wed, 27 Jan 2016 04:05:23 +0000 (04:05 +0000)]
Merge pull request #2519 from ludovic-henry/fix-array-jiticalls

[array] Replace raise exception by pending exception in jit-icalls

The convention for jit-icalls is to set the pending exception, instead of raising it from native.

8 years ago[mono-error] The reflection code still festered with hidden deps for loader-error.
Rodrigo Kumpera [Wed, 27 Jan 2016 02:27:05 +0000 (21:27 -0500)]
[mono-error] The reflection code still festered with hidden deps for loader-error.

8 years ago[x86] Change the way exceptions are thrown from trampolines: instead of calling mono_...
Zoltan Varga [Wed, 27 Jan 2016 01:31:08 +0000 (20:31 -0500)]
[x86] Change the way exceptions are thrown from trampolines: instead of calling mono_thread_force_interruption_checkpoint (), which would throw the exception using mono_raise_exception (), obtain the exception, unwind to the parent frame, and throw the exception normally there by calling the throw exception trampoline.

8 years ago[jit] Fix error propagation when loading methods. Move more checks to rely on cfg...
Rodrigo Kumpera [Mon, 16 Nov 2015 05:22:56 +0000 (00:22 -0500)]
[jit] Fix error propagation when loading methods. Move more checks to rely on cfg->error.

8 years agoFix the build.
Zoltan Varga [Wed, 27 Jan 2016 00:43:20 +0000 (19:43 -0500)]
Fix the build.

8 years ago[jit] Use mono_set_pending_exception () in one jit icall.
Zoltan Varga [Wed, 27 Jan 2016 00:40:39 +0000 (19:40 -0500)]
[jit] Use mono_set_pending_exception () in one jit icall.

8 years ago[array] Replace raise exception by pending exception in jit-icalls
Ludovic Henry [Wed, 27 Jan 2016 00:35:43 +0000 (00:35 +0000)]
[array] Replace raise exception by pending exception in jit-icalls

The convention for jit-icalls is to set the pending exception, instead of raising it from native.

8 years ago[runtime] Use MonoError for mono_type_get_object
Ludovic Henry [Thu, 21 Jan 2016 19:41:12 +0000 (19:41 +0000)]
[runtime] Use MonoError for mono_type_get_object

8 years ago[runtime] Get rid of mono_thread_force_interruption_checkpoint (), its not used anymore.
Zoltan Varga [Tue, 26 Jan 2016 22:53:23 +0000 (17:53 -0500)]
[runtime] Get rid of mono_thread_force_interruption_checkpoint (), its not used anymore.

8 years ago[jit] Add a new jit icall mono_interruption_checkpoint_from_trampoline () and use...
Zoltan Varga [Tue, 26 Jan 2016 22:49:01 +0000 (17:49 -0500)]
[jit] Add a new jit icall mono_interruption_checkpoint_from_trampoline () and use that instead of mono_thread_force_interruption_checkpoint () so the latter can go away eventually.

8 years ago[amd64] Change the way exceptions are thrown from trampolines: instead of calling...
Zoltan Varga [Tue, 26 Jan 2016 22:33:34 +0000 (17:33 -0500)]
[amd64] Change the way exceptions are thrown from trampolines: instead of calling mono_thread_force_interruption_checkpoint (), which would throw the exception using mono_raise_exception (), obtain the exception, unwind to the parent frame, and throw the exception normally there by calling the throw exception trampoline.

8 years ago[mono-error] Replace legacy calls to mono_get_method(_full) with _checked variant.
Rodrigo Kumpera [Fri, 6 Nov 2015 07:47:03 +0000 (02:47 -0500)]
[mono-error] Replace legacy calls to mono_get_method(_full) with _checked variant.

8 years ago[mono-error] Remove usage of a couple of legacy functions from monodis.
Rodrigo Kumpera [Fri, 6 Nov 2015 06:11:02 +0000 (01:11 -0500)]
[mono-error] Remove usage of a couple of legacy functions from monodis.

8 years ago[mono-error] Remove loader-error conversion for 3 functions that are not longer calle...
Rodrigo Kumpera [Fri, 6 Nov 2015 04:04:54 +0000 (23:04 -0500)]
[mono-error] Remove loader-error conversion for 3 functions that are not longer called by the runtime.

The following legacy functions are no longer used by the runtime and don't need loader-error conversion:
mono_method_get_signature_full
mono_method_get_signature
mono_field_from_token

May all that is unholy smite upon those attempting to use those functions again.

8 years agoMerge pull request #2517 from steffen-kiess/posix-socket-osx-test
Alexander Köplinger [Tue, 26 Jan 2016 21:06:56 +0000 (22:06 +0100)]
Merge pull request #2517 from steffen-kiess/posix-socket-osx-test

[Mono.Posix] Fix the SocketTest.ControlMsg() test on OSX

8 years agoMerge pull request #2500 from ludovic-henry/monoerror-mono_string_alloc
Rodrigo Kumpera [Tue, 26 Jan 2016 20:15:12 +0000 (15:15 -0500)]
Merge pull request #2500 from ludovic-henry/monoerror-mono_string_alloc

[runtime] Use MonoError for mono_string_alloc

8 years ago[runtime] Fix the computation of StackFrame.native_offset for managed-to-native wrappers.
Zoltan Varga [Tue, 26 Jan 2016 20:06:35 +0000 (15:06 -0500)]
[runtime] Fix the computation of StackFrame.native_offset for managed-to-native wrappers.

8 years ago[mkbundle] More Windows linking fixes, added "--custom-main" option
Alexis Christoforides [Fri, 22 Jan 2016 22:38:32 +0000 (17:38 -0500)]
[mkbundle] More Windows linking fixes, added "--custom-main" option

8 years agoMerge pull request #2513 from lambdageek/monoerror-RESOLVE_TYPE
Rodrigo Kumpera [Tue, 26 Jan 2016 19:42:49 +0000 (14:42 -0500)]
Merge pull request #2513 from lambdageek/monoerror-RESOLVE_TYPE

[runtime] Use MonoError for RESOLVE_TYPE

8 years agoMerge pull request #2508 from lambdageek/monoerror-check_array_for_usertypes
Rodrigo Kumpera [Tue, 26 Jan 2016 19:42:03 +0000 (14:42 -0500)]
Merge pull request #2508 from lambdageek/monoerror-check_array_for_usertypes

[runtime] Use MonoError for check_array_for_usertypes

8 years agoMerge pull request #2506 from lambdageek/monoerror-mono_reflection_type_resolve_user_...
Rodrigo Kumpera [Tue, 26 Jan 2016 19:39:48 +0000 (14:39 -0500)]
Merge pull request #2506 from lambdageek/monoerror-mono_reflection_type_resolve_user_types

[runtime] Use MonoError for mono_reflection_type_resolve_user_types

8 years agoMerge pull request #2516 from lambdageek/monoerror-exception_instance
monojenkins [Tue, 26 Jan 2016 19:15:17 +0000 (19:15 +0000)]
Merge pull request #2516 from lambdageek/monoerror-exception_instance

[runtime] Add MONO_ERROR_EXCEPTION_INSTANCE MonoError

This kind of MonoError can encapsulate a managed MonoException
object.  (For example as a result of mono_runtime_invoke ()).

Issues:

- [x] Memory leak correctness.
    `MonoError` already leaks memory if you simply swallow it without calling `mono_error_cleanup` or some function that calls it (for example `mono_error_raise_exception` or `mono_error_convert_to_exception`).
    Now if we have an encapsulated exception, we'll leak a GC handle unless cleanup happens.

8 years ago[Mono.Posix] Fix the SocketTest.ControlMsg() test on OSX
Steffen Kieß [Tue, 26 Jan 2016 18:46:38 +0000 (19:46 +0100)]
[Mono.Posix] Fix the SocketTest.ControlMsg() test on OSX

Unlike Linux, OSX does not allow multiple SCM_RIGHTS control messages in
sendmsg().
The SocketTest.ControlMsg() test is split into two tests, one which sends
only a single control message (containing two FDs), and another one which
sends two control messages (each containing one FD). The second test is not
executed on OSX.

8 years ago[System] Make SmtpClient fallback to it's old behaviour if the hostname cannot be...
Sebastien Pouliot [Tue, 26 Jan 2016 18:11:46 +0000 (13:11 -0500)]
[System] Make SmtpClient fallback to it's old behaviour if the hostname cannot be resolved. Fix #37246

Warning: System.Net.Mail is broken by design and sends incorrect emails.

This is not to fix SmtpClient itself but to ensure it remains compatible
(even if incorrect/broken) with older Mono releases.

The commit associated with bug# 33551 [1] can cause issues on computer
and devices that cannot resolve their hostname using the Dns API (which
have their own issues).

This commit catch the exception that occurs when resolution fails and
continue to send an email without a fully qualified domain name - just
like earlier Mono versions did in the past.

This solve bug #32746 [2] where some, but not all, AppleTV devices fails
to execute some of the System.dll unit tests.

Note: Whenever possible stay clear of SmtpClient (and friends) and use
something else like MimeKit/MailKit for your email needs

[1] https://bugzilla.xamarin.com/show_bug.cgi?id=33551
[2] https://bugzilla.xamarin.com/show_bug.cgi?id=37246

8 years agoMerge pull request #2490 from ludovic-henry/monoerror-mono_string_builder_to_
Rodrigo Kumpera [Tue, 26 Jan 2016 17:50:31 +0000 (12:50 -0500)]
Merge pull request #2490 from ludovic-henry/monoerror-mono_string_builder_to_

[runtime] Use MonoError for mono_string_builder_to_utf8 and mono_string_builder_to_utf16

8 years agoMerge pull request #2463 from ludovic-henry/monoerror-mono_object_new_pinned
Rodrigo Kumpera [Tue, 26 Jan 2016 17:41:56 +0000 (12:41 -0500)]
Merge pull request #2463 from ludovic-henry/monoerror-mono_object_new_pinned

[runtime] Use MonoError for mono_object_new_pinned

8 years agoMerge pull request #2510 from jonpryor/jonp-MonoThread-accessors
Jonathan Pryor [Tue, 26 Jan 2016 17:30:27 +0000 (12:30 -0500)]
Merge pull request #2510 from jonpryor/jonp-MonoThread-accessors

[runtime] Allow getting thread name, managed id from embedding API

8 years agoMerge pull request #2512 from ludovic-henry/fix-coop-test-runtime
Rodrigo Kumpera [Tue, 26 Jan 2016 17:20:29 +0000 (12:20 -0500)]
Merge pull request #2512 from ludovic-henry/fix-coop-test-runtime

[coop] Use mono_thread_info_usleep which transition to BLOCKING state

8 years ago[runtime] Add MONO_ERROR_EXCEPTION_INSTANCE MonoError
Aleksey Kliger [Mon, 25 Jan 2016 23:39:46 +0000 (18:39 -0500)]
[runtime] Add MONO_ERROR_EXCEPTION_INSTANCE MonoError

This kind of MonoError can encapsulate a managed MonoException
object.  (For example as a result of mono_runtime_invoke ()).

8 years agoMerge pull request #2449 from lambdageek/dev/no-chunks
monojenkins [Tue, 26 Jan 2016 14:50:17 +0000 (14:50 +0000)]
Merge pull request #2449 from lambdageek/dev/no-chunks

[handle] Remove chunk_last field from MonoHandleArena

Remove the `chunk_last` field.  This changes MonoHandleArena from a queue of chunks to a stack of chunks.  More importantly, the MonoHandleArena has an initial chunk that is allocated on the stack together with the arena.  Previously that chunk was at the front of the list of chunks, but now it is at the end.

8 years agoMerge pull request #2514 from akoeplinger/disable-monoposix-test
Alexander Köplinger [Tue, 26 Jan 2016 12:13:10 +0000 (13:13 +0100)]
Merge pull request #2514 from akoeplinger/disable-monoposix-test

[Mono.Posix] Disable new ControlMsg() test that fails on OSX for now

8 years ago[runtime] Use MonoError for mono_string_builder_to_utf8 and mono_string_builder_to_utf16
Ludovic Henry [Fri, 22 Jan 2016 12:26:46 +0000 (12:26 +0000)]
[runtime] Use MonoError for mono_string_builder_to_utf8 and mono_string_builder_to_utf16

8 years agoMerge pull request #2511 from ludovic-henry/fix-coop-debugger
monojenkins [Tue, 26 Jan 2016 08:20:42 +0000 (08:20 +0000)]
Merge pull request #2511 from ludovic-henry/fix-coop-debugger

[coop] Fix debugger BLOCKING transitions

8 years ago[Mono.Posix] Disable new ControlMsg() test that fails on OSX for now
Alexander Köplinger [Tue, 26 Jan 2016 01:10:41 +0000 (02:10 +0100)]
[Mono.Posix] Disable new ControlMsg() test that fails on OSX for now

Added with https://github.com/mono/mono/pull/2097. Fails on Jenkins:

```
Test Case Failures:
1) MonoTests.Mono.Unix.Native.SocketTest.ControlMsg : System.ArgumentException : Invalid argument
  ----> Mono.Unix.UnixIOException : Invalid argument [EINVAL].
at Mono.Unix.UnixMarshal.ThrowExceptionForLastError () [0x00000] in /Users/builder/jenkins/workspace/test-mono-mainline@2/label/osx-i386/mcs/class/Mono.Posix/Mono.Unix/UnixMarshal.cs:460
at MonoTests.Mono.Unix.Native.SocketTest+<ControlMsg>c__AnonStorey2.<>m__0 (Int32 so1, Int32 so2) [0x0018f] in /Users/builder/jenkins/workspace/test-mono-mainline@2/label/osx-i386/mcs/class/Mono.Posix/Test/Mono.Unix.Native/SocketTest.cs:778
at MonoTests.Mono.Unix.Native.SocketTest.WithSocketPair (System.Action`2 f) [0x00025] in /Users/builder/jenkins/workspace/test-mono-mainline@2/label/osx-i386/mcs/class/Mono.Posix/Test/Mono.Unix.Native/SocketTest.cs:68
at MonoTests.Mono.Unix.Native.SocketTest.<ControlMsg>m__9 (Int32 inner_so1, Int32 inner_so2) [0x00014] in /Users/builder/jenkins/workspace/test-mono-mainline@2/label/osx-i386/mcs/class/Mono.Posix/Test/Mono.Unix.Native/SocketTest.cs:739
at MonoTests.Mono.Unix.Native.SocketTest.WithSocketPair (System.Action`2 f) [0x00025] in /Users/builder/jenkins/workspace/test-mono-mainline@2/label/osx-i386/mcs/class/Mono.Posix/Test/Mono.Unix.Native/SocketTest.cs:68
at MonoTests.Mono.Unix.Native.SocketTest.ControlMsg () [0x00000] in /Users/builder/jenkins/workspace/test-mono-mainline@2/label/osx-i386/mcs/class/Mono.Posix/Test/Mono.Unix.Native/SocketTest.cs:738
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in /Users/builder/jenkins/workspace/test-mono-mainline@2/label/osx-i386/mcs/class/corlib/System.Reflection/MonoMethod.cs:295
--UnixIOException
```

8 years ago[llvmonly] Call 'opt' when running with --aot=asmonly too. No optimizations enabled...
Zoltan Varga [Tue, 26 Jan 2016 00:37:40 +0000 (19:37 -0500)]
[llvmonly] Call 'opt' when running with --aot=asmonly too. No optimizations enabled yet.

8 years ago[llvm] Add another missing opcode.
Zoltan Varga [Tue, 26 Jan 2016 00:13:56 +0000 (19:13 -0500)]
[llvm] Add another missing opcode.

8 years agoMerge pull request #2483 from ludovic-henry/monoerror-mono_string_new_size
Rodrigo Kumpera [Tue, 26 Jan 2016 00:07:23 +0000 (19:07 -0500)]
Merge pull request #2483 from ludovic-henry/monoerror-mono_string_new_size

[runtime] Use MonoError for mono_string_new_size

8 years agoMerge pull request #2493 from ludovic-henry/monoerror-mono_thread_attach_full
Rodrigo Kumpera [Mon, 25 Jan 2016 23:54:22 +0000 (18:54 -0500)]
Merge pull request #2493 from ludovic-henry/monoerror-mono_thread_attach_full

[runtime] Use MonoError for mono_thread_attach_full

8 years agoMerge pull request #2489 from ludovic-henry/monoerror-mono_array_new_specific
Rodrigo Kumpera [Mon, 25 Jan 2016 22:42:33 +0000 (17:42 -0500)]
Merge pull request #2489 from ludovic-henry/monoerror-mono_array_new_specific

[runtime] Use MonoError for mono_array_new_specific

8 years agoMerge pull request #2481 from ludovic-henry/monoerror-mono_array_new_full
Rodrigo Kumpera [Mon, 25 Jan 2016 22:38:41 +0000 (17:38 -0500)]
Merge pull request #2481 from ludovic-henry/monoerror-mono_array_new_full

[runtime] Use MonoError for mono_array_new_full

8 years ago[llvmonly] Reenable running 'opt', it was disabled by mistake.
Zoltan Varga [Mon, 25 Jan 2016 21:56:36 +0000 (16:56 -0500)]
[llvmonly] Reenable running 'opt', it was disabled by mistake.

8 years ago[llvmonly] Avoid inlining the original method into unbox trampolines.
Zoltan Varga [Mon, 25 Jan 2016 21:54:02 +0000 (16:54 -0500)]
[llvmonly] Avoid inlining the original method into unbox trampolines.

8 years ago[coop] Use mono_thread_info_usleep which transition to BLOCKING state
Ludovic Henry [Mon, 25 Jan 2016 21:43:47 +0000 (21:43 +0000)]
[coop] Use mono_thread_info_usleep which transition to BLOCKING state

Because we could sleep for too long, while being in RUNNING state, the cooperative suspend would not finish in a timely manner. That would lead to the abort in `mono_threads_wait_pending_operations`.

8 years ago[coop] Fix debugger BLOCKING transitions
Ludovic Henry [Mon, 25 Jan 2016 21:08:33 +0000 (21:08 +0000)]
[coop] Fix debugger BLOCKING transitions

Make the transition as close as possible to the syscall, so we don't nest these BLOCKING transition, as they leads to a crash.

8 years ago[runtime] Use MonoError for mono_object_new_pinned
Ludovic Henry [Wed, 20 Jan 2016 14:34:58 +0000 (14:34 +0000)]
[runtime] Use MonoError for mono_object_new_pinned

8 years ago[runtime] Use MonoError for RESOLVE_TYPE
Aleksey Kliger [Mon, 25 Jan 2016 20:30:40 +0000 (15:30 -0500)]
[runtime] Use MonoError for RESOLVE_TYPE

8 years agoMerge pull request #2097 from steffen-kiess/posix-sockets-3
Jonathan Pryor [Mon, 25 Jan 2016 20:03:53 +0000 (15:03 -0500)]
Merge pull request #2097 from steffen-kiess/posix-sockets-3

 [Mono.Posix] Add support for sending and receiving socket control messages

8 years ago[runtime] Use MonoError for check_array_for_usertypes
Aleksey Kliger [Mon, 25 Jan 2016 18:03:01 +0000 (13:03 -0500)]
[runtime] Use MonoError for check_array_for_usertypes

8 years ago[runtime] Allow getting thread name, managed id from embedding API
Jonathan Pryor [Mon, 25 Jan 2016 18:42:32 +0000 (13:42 -0500)]
[runtime] Allow getting thread name, managed id from embedding API

When tracing multi-threaded program execution, it is useful to have a
way of separating which events happen on which thread. The
System.Threading.Thread.Name and Thread.ManagedThreadId properties are
useful proxies for tracking program execution.

However, if program execution spans both managed and embedded mono
native code, there is no existing mechanism to read the Thread.Name or
Thread.ManagedThreadId properties from native code without using
delegates, and delegates may not be usable in all circumstances (e.g.
within a mono_gc_register_bridge_callbacks() callback).

Add the following APIs to the embedding API to permit reading the
Thread.Name and Thread.ManagedThreadId properties:

char   *mono_thread_get_name_utf8 (MonoThread *thread);
gint32  mono_thread_get_managed_id (MonoThread *thread);

mono_thread_get_name_utf8() returns the Thread.Name value as a UTF-8
string in newly allocated memory; the caller must g_free() this value.

mono_thread_get_managed_id() returns the Thread.ManagedThreadId value.

8 years ago[llvmonly] Rename MonoDelegate.rgctx to 'extra_arg' to better reflect its purpose.
Zoltan Varga [Mon, 25 Jan 2016 19:18:59 +0000 (14:18 -0500)]
[llvmonly] Rename MonoDelegate.rgctx to 'extra_arg' to better reflect its purpose.

8 years agoMerge pull request #2429 from alexanderkyte/nunit_lite_integration
Zoltan Varga [Mon, 25 Jan 2016 18:45:37 +0000 (13:45 -0500)]
Merge pull request #2429 from alexanderkyte/nunit_lite_integration

[nunit-lite] Add nunit-lite runner to build system

8 years ago[tests][System][ios] Avoid reflection usage when testing for Xamarin.iOS. Fixes ...
Sebastien Pouliot [Mon, 25 Jan 2016 18:45:11 +0000 (13:45 -0500)]
[tests][System][ios] Avoid reflection usage when testing for Xamarin.iOS. Fixes #34133

When the linker is enabled (default for device builds) unused methods
are removed and cannot be reflected.

In this case we do not need reflection as the answer to port reuse is
always true.

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

8 years ago[runtime] Use MonoError for mono_reflection_type_resolve_user_types
Aleksey Kliger [Mon, 25 Jan 2016 17:50:34 +0000 (12:50 -0500)]
[runtime] Use MonoError for mono_reflection_type_resolve_user_types

8 years ago[amd64] Fix d786f235eb48d70d8032708ea19886898e5d1434.
Zoltan Varga [Mon, 25 Jan 2016 17:37:04 +0000 (12:37 -0500)]
[amd64] Fix d786f235eb48d70d8032708ea19886898e5d1434.

8 years agoMerge pull request #2504 from ludovic-henry/fix-console-error
monojenkins [Mon, 25 Jan 2016 16:45:18 +0000 (16:45 +0000)]
Merge pull request #2504 from ludovic-henry/fix-console-error

[Console] Fix Console.Error to terminal (tty)

8 years ago[Console] Cleanup console setup
Ludovic Henry [Mon, 25 Jan 2016 13:48:10 +0000 (13:48 +0000)]
[Console] Cleanup console setup

8 years ago[Console] Fix Console.Error to terminal (tty)
Ludovic Henry [Mon, 25 Jan 2016 13:01:11 +0000 (13:01 +0000)]
[Console] Fix Console.Error to terminal (tty)

We would previously open the standard output for the Console.Error StreamWriter. This behavior has never surfaced so far, because if you try to redirect the process standard output through a pipe or to a file, then the condition ConsoleDriver.IsConsole does not apply, and the other path does not have the same bug.

The only way to reproduce it is to redirect the standard error to another file, and observe that you would still have the Console.Error content. For example, with mono/tests/console-output.exe:

Expected output:

$> MONO_PATH=mcs/class/lib/net_4_x mono/mini/mono mono/tests/console-output.exe 2>/dev/null
Out

Actual output:

$> MONO_PATH=mcs/class/lib/net_4_x mono/mini/mono mono/tests/console-output.exe 2>/dev/null
Out
Error

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=36988

8 years agoRemove libgc/depcomp and libgc/missing, newer automake versions seem to overwrite...
Zoltan Varga [Mon, 25 Jan 2016 01:46:01 +0000 (20:46 -0500)]
Remove libgc/depcomp and libgc/missing, newer automake versions seem to overwrite them.

8 years ago[llvm] Fix 32 bit platform support which got broken after c678533842f10356968c203ed8f...
Zoltan Varga [Mon, 25 Jan 2016 01:40:21 +0000 (20:40 -0500)]
[llvm] Fix 32 bit platform support which got broken after c678533842f10356968c203ed8fa43e86a406c6e.

8 years ago[amd64] Add some more unwind info for generic trampolines.
Zoltan Varga [Mon, 25 Jan 2016 01:15:57 +0000 (20:15 -0500)]
[amd64] Add some more unwind info for generic trampolines.

8 years ago[llvmonly] Optimize delegate invocation.
Zoltan Varga [Sun, 24 Jan 2016 23:09:21 +0000 (18:09 -0500)]
[llvmonly] Optimize delegate invocation.

8 years ago[runtime] Use MonoError for mono_string_alloc
Ludovic Henry [Sun, 24 Jan 2016 17:57:37 +0000 (17:57 +0000)]
[runtime] Use MonoError for mono_string_alloc

8 years agoMerge pull request #2487 from alexanderkyte/wrapper_type_mismatch
Zoltan Varga [Sun, 24 Jan 2016 03:29:30 +0000 (22:29 -0500)]
Merge pull request #2487 from alexanderkyte/wrapper_type_mismatch

[runtime] Fix type mismatch between runtime invoke and aot compiler

8 years ago[llvmonly] Fix the invocation of generic array helpers, they need an rgctx arg.
Zoltan Varga [Sun, 24 Jan 2016 03:09:37 +0000 (22:09 -0500)]
[llvmonly] Fix the invocation of generic array helpers, they need an rgctx arg.

8 years agoMerge pull request #2499 from alexrp/signal-sa-restart
monojenkins [Sat, 23 Jan 2016 18:45:14 +0000 (18:45 +0000)]
Merge pull request #2499 from alexrp/signal-sa-restart

[runtime] Add SA_RESTART to SIG{CONT,INT,PROF,QUIT,USR2,WINCH}.

We need this as these signals can be delivered at any point and can interrupt system calls that external (non-Mono) code is executing, which such code may not be written to handle gracefully.

8 years agoMerge pull request #2453 from kumpera/fix_ji_free
Rodrigo Kumpera [Sat, 23 Jan 2016 05:10:59 +0000 (00:10 -0500)]
Merge pull request #2453 from kumpera/fix_ji_free

[runtime] Avoid a read-after-free in JI table that frees tomstones. Fixes some of the crashes in #36851.

8 years ago[linker] Add API to notify subclasses of removed attributes.
Rolf Bjarne Kvinge [Sat, 23 Jan 2016 02:08:56 +0000 (03:08 +0100)]
[linker] Add API to notify subclasses of removed attributes.

8 years ago[arm] Emit more complete unwind info for generic trampolines.
Zoltan Varga [Fri, 22 Jan 2016 23:20:35 +0000 (18:20 -0500)]
[arm] Emit more complete unwind info for generic trampolines.

8 years ago[runtime] Add SA_RESTART to SIG{CONT,INT,PROF,QUIT,USR2,WINCH}.
Alex Rønne Petersen [Fri, 22 Jan 2016 19:57:06 +0000 (20:57 +0100)]
[runtime] Add SA_RESTART to SIG{CONT,INT,PROF,QUIT,USR2,WINCH}.

We need this as these signals can be delivered at any point and can interrupt
system calls that external (non-Mono) code is executing, which such code may
not be written to handle gracefully.

8 years ago[system] Avoid reflection use to create NtlmSession. Fixes #37732
Sebastien Pouliot [Fri, 22 Jan 2016 19:19:46 +0000 (14:19 -0500)]
[system] Avoid reflection use to create NtlmSession. Fixes #37732

commit d2325f1483cd642457a7b2efe402e3c1d414d69d (only since 4.3.2, not
4.3.1) caused the failure when an application is linked.

The use of `GetOrCreateValue` uses reflection to create an `NtlmSession`
instance so the linker won't see it as used anymore (and removes it).

Fixed by avoiding reflection (which will also perform better).

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

8 years ago[runtime] Fix warning
Ludovic Henry [Fri, 22 Jan 2016 18:25:31 +0000 (18:25 +0000)]
[runtime] Fix warning

8 years ago[mcs] String interpolating of dynamic arguments does not behave like normal dynamic...
Marek Safar [Fri, 22 Jan 2016 17:19:49 +0000 (18:19 +0100)]
[mcs] String interpolating of dynamic arguments does not behave like normal dynamic operation but assumes all arguments are object only (not dynamic). Fixes #37886

8 years ago[amd64] Fix setting ainfo->pair_size[1] to 1 instead of 0 if the argument is only...
Zoltan Varga [Fri, 22 Jan 2016 16:27:44 +0000 (11:27 -0500)]
[amd64] Fix setting ainfo->pair_size[1] to 1 instead of 0 if the argument is only passed in one reg.

8 years agoMerge pull request #2494 from nealef/master
Alexander Köplinger [Fri, 22 Jan 2016 15:40:41 +0000 (16:40 +0100)]
Merge pull request #2494 from nealef/master

Adjust last fix to bypass another compiler failing

8 years agoAdjust last fix to bypass another compiler failing
Neale [Fri, 22 Jan 2016 15:36:28 +0000 (10:36 -0500)]
Adjust last fix to bypass another compiler failing

8 years ago[runtime] Use MonoError for mono_thread_attach_full
Ludovic Henry [Fri, 22 Jan 2016 14:39:44 +0000 (14:39 +0000)]
[runtime] Use MonoError for mono_thread_attach_full

8 years ago[runtime] Use MonoError for new_thread_with_internal
Ludovic Henry [Fri, 22 Jan 2016 14:33:04 +0000 (14:33 +0000)]
[runtime] Use MonoError for new_thread_with_internal

8 years agoMerge pull request #2476 from ludovic-henry/fix-process-readbuffer-nullref
Alexander Köplinger [Fri, 22 Jan 2016 14:02:39 +0000 (15:02 +0100)]
Merge pull request #2476 from ludovic-henry/fix-process-readbuffer-nullref

[Process] Fix NullReferenceException in AsyncStreamReader.ReadBuffer after disposing the Process

8 years ago[Process] Fix NullReferenceException in AsyncStreamReader.ReadBuffer after disposing...
Ludovic Henry [Tue, 19 Jan 2016 19:14:43 +0000 (19:14 +0000)]
[Process] Fix NullReferenceException in AsyncStreamReader.ReadBuffer after disposing the Process

The following exception would arise if we dispose the Process before making sure the AsyncStreamReader finished its work:

Unhandled Exception:
System.NullReferenceException: Object reference not set to an instance of an object
  at System.Diagnostics.AsyncStreamReader.ReadBuffer (IAsyncResult ar) [0x00000] in /media/ssd/jenkins/workspace/test-mono-mainline/label/debian-armhf/external/referencesource/System/services/monitoring/system/diagnosticts/AsyncStreamReader.cs:158
  at System.IO.Stream+ReadWriteTask.InvokeAsyncCallback (System.Object completedTask) [0x00015] in /media/ssd/jenkins/workspace/test-mono-mainline/label/debian-armhf/external/referencesource/mscorlib/system/io/stream.cs:670
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, Boolean preserveSyncCtx) [0x0008d] in /media/ssd/jenkins/workspace/test-mono-mainline/label/debian-armhf/external/referencesource/mscorlib/system/threading/executioncontext.cs:957
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, Boolean preserveSyncCtx) [0x00000] in /media/ssd/jenkins/workspace/test-mono-mainline/label/debian-armhf/external/referencesource/mscorlib/system/threading/executioncontext.cs:904
  at System.IO.Stream+ReadWriteTask.System.Threading.Tasks.ITaskCompletionAction.Invoke (System.Threading.Tasks.Task completingTask) [0x0005e] in /media/ssd/jenkins/workspace/test-mono-mainline/label/debian-armhf/external/referencesource/mscorlib/system/io/stream.cs:696
  at System.Threading.Tasks.Task.FinishContinuations () [0x0009a] in /media/ssd/jenkins/workspace/test-mono-mainline/label/debian-armhf/external/referencesource/mscorlib/system/threading/Tasks/Task.cs:3633
  at System.Threading.Tasks.Task.FinishStageThree () [0x00045] in /media/ssd/jenkins/workspace/test-mono-mainline/label/debian-armhf/external/referencesource/mscorlib/system/threading/Tasks/Task.cs:2366
  at System.Threading.Tasks.Task.FinishStageTwo () [0x000f8] in /media/ssd/jenkins/workspace/test-mono-mainline/label/debian-armhf/external/referencesource/mscorlib/system/threading/Tasks/Task.cs:2339
  at System.Threading.Tasks.Task.Finish (Boolean bUserDelegateExecuted) [0x00049] in /media/ssd/jenkins/workspace/test-mono-mainline/label/debian-armhf/external/referencesource/mscorlib/system/threading/Tasks/Task.cs:2239
  at System.Threading.Tasks.Task.ExecuteWithThreadLocal (System.Threading.Tasks.Task& currentTaskSlot) [0x00079] in /media/ssd/jenkins/workspace/test-mono-mainline/label/debian-armhf/external/referencesource/mscorlib/system/threading/Tasks/Task.cs:2834
  at System.Threading.Tasks.Task.ExecuteEntry (Boolean bPreventDoubleExecution) [0x0006f] in /media/ssd/jenkins/workspace/test-mono-mainline/label/debian-armhf/external/referencesource/mscorlib/system/threading/Tasks/Task.cs:2760
  at System.Threading.Tasks.Task.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x00000] in /media/ssd/jenkins/workspace/test-mono-mainline/label/debian-armhf/external/referencesource/mscorlib/system/threading/Tasks/Task.cs:2707
  at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00096] in /media/ssd/jenkins/workspace/test-mono-mainline/label/debian-armhf/external/referencesource/mscorlib/system/threading/threadpool.cs:857
  at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in /media/ssd/jenkins/workspace/test-mono-mainline/label/debian-armhf/external/referencesource/mscorlib/system/threading/threadpool.cs:1212

This would arise in test-runner.cs when one of the test would timeout, leading to the Process being disposed. This would then dispose the AsyncStreamReader, setting its `stream` value to null. The callback to ReadBuffer would then try to access `stream`, but would throw a NullReferenceException. By not disposing the AsyncStreamReader explicitely, we close the stream first, which will trigger a call to ReadBuffer, thus not triggering the NullReferenceException.

8 years agoMerge pull request #2482 from akoeplinger/mono-posix-test-fix
Alexander Köplinger [Fri, 22 Jan 2016 13:38:16 +0000 (14:38 +0100)]
Merge pull request #2482 from akoeplinger/mono-posix-test-fix

[Mono.Posix] Make UnixSignalTest.TestRaiseStorm() more reliable

8 years ago[runtime] Use MonoError for create_thread_object and create_internal_thread
Ludovic Henry [Fri, 22 Jan 2016 12:31:52 +0000 (12:31 +0000)]
[runtime] Use MonoError for create_thread_object and create_internal_thread

8 years ago[runtime] Use MonoError for mono_array_new_specific
Ludovic Henry [Fri, 22 Jan 2016 11:55:34 +0000 (11:55 +0000)]
[runtime] Use MonoError for mono_array_new_specific

8 years ago[runtime] Use MonoError for mono_array_new_full
Ludovic Henry [Thu, 21 Jan 2016 15:54:18 +0000 (15:54 +0000)]
[runtime] Use MonoError for mono_array_new_full

8 years agoMerge pull request #2477 from ludovic-henry/monoerror-mono_object_new_alloc_specific
Ludovic Henry [Fri, 22 Jan 2016 11:13:58 +0000 (11:13 +0000)]
Merge pull request #2477 from ludovic-henry/monoerror-mono_object_new_alloc_specific

[runtime] Use MonoError for mono_object_new_alloc_specific

8 years agoMerge pull request #2488 from nealef/master
Zoltan Varga [Fri, 22 Jan 2016 03:28:16 +0000 (22:28 -0500)]
Merge pull request #2488 from nealef/master



8 years agoTo get around a problem with gcc 4.4.7 on s390x, the SWAP macro is reworked so that...
Neale [Fri, 22 Jan 2016 02:41:44 +0000 (21:41 -0500)]
To get around a problem with gcc 4.4.7 on s390x, the SWAP macro is reworked so that it correctly processes all elements

8 years ago[runtime] Use MonoError for mono_string_new_size
Ludovic Henry [Thu, 21 Jan 2016 16:20:03 +0000 (16:20 +0000)]
[runtime] Use MonoError for mono_string_new_size

8 years ago[runtime] Use MonoError for mono_object_new_alloc_specific
Ludovic Henry [Thu, 21 Jan 2016 14:46:59 +0000 (14:46 +0000)]
[runtime] Use MonoError for mono_object_new_alloc_specific