mono.git
8 years agoMerge pull request #2538 from ludovic-henry/fix-sgen-38012
monojenkins [Mon, 1 Feb 2016 13:16:41 +0000 (13:16 +0000)]
Merge pull request #2538 from ludovic-henry/fix-sgen-38012

[sgen] Fix register scanning on ARM

This bug would trigger a use after sweep in System.Threading.Tasks.Task.FinishContinuations:3621.

The issue would arise on ARM, as `MonoContext` and `ARCH_NUM_REGS` are defined as followed :

```
typedef struct {
  mgreg_t pc;
  mgreg_t regs [16];
  double fregs [16];
  mgreg_t cpsr;
} MonoContext;

\#define ARCH_NUM_REGS 14
```

As you can see, the MonoContext structure is bigger than 14 words, and it does not even covers the last 3 values of `regs`. By using pointer arithmetic, we ensure that we do not miss some parts of the `MonoContext` structure.

The observed behaviour in System.Threading.Tasks.Task.FinishContinuations would be that `continuationObject` would not be marked, and thus freed; `continuationObject` would still contains the pointer to the old location, meaning it wouldn't be null. We would then try to check its type via a call to the `as` operator. This would call the `isinst` IL opcode which would load `continuationObject->vtable->klass->supertypes [...]`, which would trigger a segfault, as `supertypes` would be null.

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

8 years agoMerge pull request #2541 from ludovic-henry/fix-coop-hang
monojenkins [Mon, 1 Feb 2016 12:55:11 +0000 (12:55 +0000)]
Merge pull request #2541 from ludovic-henry/fix-coop-hang

[coop] Fix hang in ves_icall_System_Net_Dns_GetHostByName_internal

8 years ago[binary-reference-assemblies] Install 4.5 api facades
Marek Safar [Mon, 1 Feb 2016 11:47:43 +0000 (12:47 +0100)]
[binary-reference-assemblies] Install 4.5 api facades

8 years ago[coop] Fix hang in ves_icall_System_Net_Dns_GetHostByName_internal
Ludovic Henry [Fri, 29 Jan 2016 19:45:45 +0000 (19:45 +0000)]
[coop] Fix hang in ves_icall_System_Net_Dns_GetHostByName_internal

8 years ago[llvm] Make mini-llvm-loader.c simpler by putting all the function pointers into...
Zoltan Varga [Mon, 1 Feb 2016 08:04:39 +0000 (03:04 -0500)]
[llvm] Make mini-llvm-loader.c simpler by putting all the function pointers into a structure.

8 years ago[amd64] Add support for float arguments/return values to the dyncall code.
Zoltan Varga [Mon, 1 Feb 2016 05:03:39 +0000 (00:03 -0500)]
[amd64] Add support for float arguments/return values to the dyncall code.

8 years agoMerge pull request #2547 from ermshiperete/Xamarin-33183
Zoltan Varga [Mon, 1 Feb 2016 04:06:31 +0000 (23:06 -0500)]
Merge pull request #2547 from ermshiperete/Xamarin-33183

[SWF] Fix behavior when scrollbar values change in TreeView

8 years ago[llvm] Remove the goto based error handling code, use explicit error checks and retur...
Zoltan Varga [Mon, 1 Feb 2016 02:55:01 +0000 (21:55 -0500)]
[llvm] Remove the goto based error handling code, use explicit error checks and returns instead.

8 years ago[msvc] Update order.xml and csproj files
Alexander Köplinger [Mon, 1 Feb 2016 00:57:36 +0000 (01:57 +0100)]
[msvc] Update order.xml and csproj files

8 years agoMerge pull request #2546 from ermshiperete/libtoolize
Alex Rønne Petersen [Sun, 31 Jan 2016 15:49:01 +0000 (16:49 +0100)]
Merge pull request #2546 from ermshiperete/libtoolize

Check for libtoolize rather than libtool

8 years ago[mcs] Stop after fields initializers resolve errors
Marek Safar [Sat, 30 Jan 2016 19:13:55 +0000 (20:13 +0100)]
[mcs] Stop after fields initializers resolve errors

8 years ago[runtime] Disable the constant-logical-operand warning.
Zoltan Varga [Sun, 31 Jan 2016 05:22:19 +0000 (00:22 -0500)]
[runtime] Disable the constant-logical-operand warning.

8 years ago[runtime] Make the MONO_CURRENT_ABI_ALIGNOF macros c++ safe.
Zoltan Varga [Sun, 31 Jan 2016 05:21:53 +0000 (00:21 -0500)]
[runtime] Make the MONO_CURRENT_ABI_ALIGNOF macros c++ safe.

8 years ago[jit] Remove unused MONO_PATCH_INFO_MONITOR_ENTER/EXIT.
Zoltan Varga [Sun, 31 Jan 2016 05:19:51 +0000 (00:19 -0500)]
[jit] Remove unused MONO_PATCH_INFO_MONITOR_ENTER/EXIT.

8 years agoMerge pull request #2544 from ermshiperete/Xamarin-24641
Marek Safar [Sat, 30 Jan 2016 19:13:08 +0000 (20:13 +0100)]
Merge pull request #2544 from ermshiperete/Xamarin-24641

[corlib] Fix handling of ignorable chars when using ordinal comparison

8 years agoCheck for libtoolize rather than libtool
Neil Mayhew [Fri, 12 Jun 2015 20:03:21 +0000 (14:03 -0600)]
Check for libtoolize rather than libtool

Current Debian packaging puts libtool in its own package (libtool-bin)
leaving only libtoolize in the main package. The mono build process
uses libtoolize not libtool, so during autogen check for libtoolize
not libtool.

8 years ago[corlib] Fix handling of ignorable chars when using ordinal comparison
Damien Daspit [Mon, 24 Nov 2014 03:07:25 +0000 (10:07 +0700)]
[corlib] Fix handling of ignorable chars when using ordinal comparison

* recognizes ignorable characters when CompareOptions.Ordinal is
  specified
* adds unit tests
* fixes bug 24641

Change-Id: I5102e7392fa54b5671c7f2536cb8778f847e9040

8 years ago[SWF] Fix behavior when scrollbar values change in TreeView
Damien Daspit [Tue, 18 Aug 2015 05:26:28 +0000 (12:26 +0700)]
[SWF] Fix behavior when scrollbar values change in TreeView

* only call EndEdit in scrollbar value changed handlers when currently
  editing a node
* fix for bug 33183

Change-Id: I54407e00314f4bfbdc175e883199d3d1ef057911

8 years ago[llvmonly] Fix stack trace calculation.
Zoltan Varga [Fri, 29 Jan 2016 21:39:40 +0000 (16:39 -0500)]
[llvmonly] Fix stack trace calculation.

8 years ago[amd64] Exclude the GSHAREDVT tests as well since they don't work yet.
Zoltan Varga [Fri, 29 Jan 2016 21:23:23 +0000 (16:23 -0500)]
[amd64] Exclude the GSHAREDVT tests as well since they don't work yet.

8 years ago[jit] Disable the DYNCALL tests on amd64 again, not all cases are supported right...
Zoltan Varga [Fri, 29 Jan 2016 21:19:35 +0000 (16:19 -0500)]
[jit] Disable the DYNCALL tests on amd64 again, not all cases are supported right now.

8 years ago[jit] Use mono_method_get_full_name () to print out method names in a few places.
Zoltan Varga [Fri, 29 Jan 2016 20:33:34 +0000 (15:33 -0500)]
[jit] Use mono_method_get_full_name () to print out method names in a few places.

8 years ago[llvmonly] Fix the fallback to no_gsharedvt_in_wrapper, which was broken by the error...
Zoltan Varga [Fri, 29 Jan 2016 20:32:48 +0000 (15:32 -0500)]
[llvmonly] Fix the fallback to no_gsharedvt_in_wrapper, which was broken by the error handling changes.

8 years ago[llvmonly] Catch all exceptions in mono_jit_exec () to avoid terminating the runtime...
Zoltan Varga [Fri, 29 Jan 2016 20:03:46 +0000 (15:03 -0500)]
[llvmonly] Catch all exceptions in mono_jit_exec () to avoid terminating the runtime with an unhelpful libc++ assertion.

8 years ago[mcs] Rework naming convention of lifted state machine fields to include scope index...
Marek Safar [Fri, 29 Jan 2016 19:22:04 +0000 (20:22 +0100)]
[mcs] Rework naming convention of lifted state machine fields to include scope index. Fixes #32315 (1st part)

8 years ago[sgen] Fix register scanning on ARM
Ludovic Henry [Fri, 29 Jan 2016 18:11:34 +0000 (18:11 +0000)]
[sgen] Fix register scanning on ARM

This bug would trigger a use after sweep in System.Threading.Tasks.Task.FinishContinuations:3621.

The issue would arise on ARM, as `MonoContext` and `ARCH_NUM_REGS` are defined as followed :

```
typedef struct {
  mgreg_t pc;
  mgreg_t regs [16];
  double fregs [16];
  mgreg_t cpsr;
} MonoContext;

\#define ARCH_NUM_REGS 14
```

As you can see, the MonoContext structure is bigger than 14 words, and it does not even covers the last 3 values of `regs`. By using pointer arithmetic, we ensure that we do not miss some parts of the `MonoContext` structure.

The observed behaviour in System.Threading.Tasks.Task.FinishContinuations would be that `continuationObject` would not be marked, and thus freed; `continuationObject` would still contains the pointer to the old location, meaning it wouldn't be null. We would then try to check its type via a call to the `as` operator. This would call the `isinst` IL opcode which would load `continuationObject->vtable->klass->supertypes [...]`, which would trigger a segfault, as `supertypes` would be null.

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

8 years ago[sgen] Abort with a message on failure to initialize binary protocol
Ludovic Henry [Fri, 29 Jan 2016 18:10:10 +0000 (18:10 +0000)]
[sgen] Abort with a message on failure to initialize binary protocol

8 years ago[corlib] Improve CancellationTokenSource test
Alexander Köplinger [Fri, 29 Jan 2016 15:51:02 +0000 (16:51 +0100)]
[corlib] Improve CancellationTokenSource test

Get rid of the Thread.Sleep calls that are prone to timing issues.

8 years agoMerge pull request #2522 from ludovic-henry/test-socketresponder-task
monojenkins [Fri, 29 Jan 2016 14:50:15 +0000 (14:50 +0000)]
Merge pull request #2522 from ludovic-henry/test-socketresponder-task

[SocketResponder] Use Task instead of Thread + Use explicit delegate so it appears in stacktraces

8 years ago[System.ServiceModel.Internals] Add a missing .sources file for watchOS. Fixes #38145.
Rolf Bjarne Kvinge [Fri, 29 Jan 2016 11:21:04 +0000 (12:21 +0100)]
[System.ServiceModel.Internals] Add a missing .sources file for watchOS. Fixes #38145.

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

8 years agoMerge pull request #2448 from BrzVlad/feature-cprop-opt
Vlad Brezae [Fri, 29 Jan 2016 11:21:17 +0000 (11:21 +0000)]
Merge pull request #2448 from BrzVlad/feature-cprop-opt

[jit] Improve strength reduction handling within cprop

8 years agoMerge pull request #2531 from esdrubal/systemweb
Marcos Henrich [Fri, 29 Jan 2016 09:35:27 +0000 (09:35 +0000)]
Merge pull request #2531 from esdrubal/systemweb

[System.Web] HeadersCollection read only exception

8 years ago[llvmonly] Do a stack walk from mono_llvmonly_get_calling_assembly (), the runtime...
Zoltan Varga [Fri, 29 Jan 2016 04:19:25 +0000 (23:19 -0500)]
[llvmonly] Do a stack walk from mono_llvmonly_get_calling_assembly (), the runtime might support stack walks on some platforms.

8 years ago[runtime] Avoid an assert if a runtime compiled without DISABLE_COM is used with...
Zoltan Varga [Fri, 29 Jan 2016 04:18:51 +0000 (23:18 -0500)]
[runtime] Avoid an assert if a runtime compiled without DISABLE_COM is used with an mscorlib from the mobile_static profile.

8 years ago[llvmonly] Remove bind-to-runtime-version from the aot flag used to compile the assem...
Zoltan Varga [Fri, 29 Jan 2016 01:06:52 +0000 (20:06 -0500)]
[llvmonly] Remove bind-to-runtime-version from the aot flag used to compile the assemblies, it makes testing harder.

8 years ago[llvmonly] Allow any value for MONO_LLVMONLY not just TRUE.
Zoltan Varga [Fri, 29 Jan 2016 01:05:40 +0000 (20:05 -0500)]
[llvmonly] Allow any value for MONO_LLVMONLY not just TRUE.

8 years agoMerge pull request #2533 from vargaz/gshared-errors
Zoltan Varga [Thu, 28 Jan 2016 23:31:45 +0000 (18:31 -0500)]
Merge pull request #2533 from vargaz/gshared-errors

[jit] Add MonoError support for the generic sharing code.

8 years agoMerge pull request #2529 from lambdageek/monoerror-location
monojenkins [Thu, 28 Jan 2016 21:45:15 +0000 (21:45 +0000)]
Merge pull request #2529 from lambdageek/monoerror-location

[runtime] mono_error_assert_ok() include location

8 years ago[jit] Add MonoError support for the generic sharing code.
Zoltan Varga [Thu, 28 Jan 2016 20:48:48 +0000 (15:48 -0500)]
[jit] Add MonoError support for the generic sharing code.

8 years ago[jit] Move the raise version of mono_jit_compile_method () to metadata/.
Zoltan Varga [Thu, 28 Jan 2016 19:46:41 +0000 (14:46 -0500)]
[jit] Move the raise version of mono_jit_compile_method () to metadata/.

8 years agoMerge pull request #2525 from kumpera/embedding-api
Rodrigo Kumpera [Thu, 28 Jan 2016 19:22:09 +0000 (14:22 -0500)]
Merge pull request #2525 from kumpera/embedding-api

[api] Add API kill switch.

8 years agoMerge pull request #2528 from vargaz/jit-errors2
Zoltan Varga [Thu, 28 Jan 2016 18:16:24 +0000 (13:16 -0500)]
Merge pull request #2528 from vargaz/jit-errors2

Jit errors2

8 years agoMerge pull request #2419 from esdrubal/xmlsubclassel
Marcos Henrich [Thu, 28 Jan 2016 17:57:15 +0000 (17:57 +0000)]
Merge pull request #2419 from esdrubal/xmlsubclassel

[System.Xml] Fix sub class serialization on lists

8 years ago[System.Web] HeadersCollection read only exception
Marcos Henrich [Thu, 28 Jan 2016 17:21:37 +0000 (17:21 +0000)]
[System.Web] HeadersCollection read only exception

In reference source HttpHeaderCollection [1] when Add, Set or Remove is
called and the collection is readonly a PlatformNotSupportedException is
thrown.

Mono HeadersCollection was throwing NotSupportedException and
Microsoft.Owin.Host.SystemWeb.OwinCallContext.RemoveAcceptEncoding was
not catching the exception because it was expecting
PlatformNotSupportedException.

Fixes #33809

[1] http://referencesource.microsoft.com/#System.Web/HttpHeaderCollection.cs,73

8 years ago[System.Web] Test HttpRequest.Headers Add/Set/Remove
Marcos Henrich [Thu, 28 Jan 2016 17:17:27 +0000 (17:17 +0000)]
[System.Web] Test HttpRequest.Headers Add/Set/Remove

In .NET while calling Add, Set or Remove of a HttpRequest read only
collection a PlatformNotSupportedException is thrown.

Covers #33809

8 years ago[runtime] mono_error_assert_ok() include location
Aleksey Kliger [Thu, 28 Jan 2016 16:14:07 +0000 (11:14 -0500)]
[runtime] mono_error_assert_ok() include location

8 years ago[metadata] Fix duplicate variable declaration in coree.c that breaks msvc
Alexander Köplinger [Thu, 28 Jan 2016 15:13:17 +0000 (16:13 +0100)]
[metadata] Fix duplicate variable declaration in coree.c that breaks msvc

A new 'error' variable was added in d7908572783b1a8f3b6f4b4685385a7becf0bab3 that clashes with the existing one.

8 years ago[mono-api-html] New interface members are only breaking if the interface existed.
Rolf Bjarne Kvinge [Thu, 28 Jan 2016 14:55:33 +0000 (15:55 +0100)]
[mono-api-html] New interface members are only breaking if the interface existed.

8 years ago[mono-api-html] Fix compiler warning.
Rolf Bjarne Kvinge [Thu, 28 Jan 2016 14:33:32 +0000 (15:33 +0100)]
[mono-api-html] Fix compiler warning.

8 years ago[mono-api-html] Make it possible to hide/show non-breaking changes in the html output.
Rolf Bjarne Kvinge [Thu, 28 Jan 2016 14:14:13 +0000 (15:14 +0100)]
[mono-api-html] Make it possible to hide/show non-breaking changes in the html output.

We now add data-is-[non-]breaking attributes to the generated
html elements, and then use some javascript logic to show/hide
non-breaking elements (and the javascript also looks in the
container elements show/hide containers that have only
non-breaking descendants).

Also use css classes/styles to colorize.

8 years ago[mono-api-info] Add an is-override attribute to determine if a method is overriding...
Rolf Bjarne Kvinge [Thu, 28 Jan 2016 12:13:25 +0000 (13:13 +0100)]
[mono-api-info] Add an is-override attribute to determine if a method is overriding another method.

8 years ago[xbuild] Use -api folder for 2.0/3.5/4.0 profiles as well
Alexander Köplinger [Thu, 28 Jan 2016 14:16:46 +0000 (15:16 +0100)]
[xbuild] Use -api folder for 2.0/3.5/4.0 profiles as well

Similar to e2a79ed88800493cb0444445a176d9c7febbfabe. Those profiles are only contract/reference assemblies since Mono 4.0.

8 years agoMerge branch 'mono-api-info-improvements'
Rolf Bjarne Kvinge [Thu, 28 Jan 2016 13:49:29 +0000 (14:49 +0100)]
Merge branch 'mono-api-info-improvements'

8 years ago[mono-api-info] CreateAttributeMapping: don't create dictionaries unless there is...
Rolf Bjarne Kvinge [Wed, 27 Jan 2016 16:47:09 +0000 (17:47 +0100)]
[mono-api-info] CreateAttributeMapping: don't create dictionaries unless there is something to put in them.

8 years ago[mono-api-info] Rework AttributeData to use a static method instead of creating an...
Rolf Bjarne Kvinge [Wed, 27 Jan 2016 16:41:14 +0000 (17:41 +0100)]
[mono-api-info] Rework AttributeData to use a static method instead of creating an instance every time.

8 years ago[mono-api-info] Improve CleanupTypeName to not create 3 strings every time somethings...
Rolf Bjarne Kvinge [Wed, 27 Jan 2016 16:39:45 +0000 (17:39 +0100)]
[mono-api-info] Improve CleanupTypeName to not create 3 strings every time somethings needs to change.

8 years ago[mono-api-info] First filter, then order, and use ordinal comparison.
Rolf Bjarne Kvinge [Wed, 27 Jan 2016 16:38:40 +0000 (17:38 +0100)]
[mono-api-info] First filter, then order, and use ordinal comparison.

8 years ago[mono-api-info] Rework SkipAttribute to use ordinal string comparison, and no string...
Rolf Bjarne Kvinge [Wed, 27 Jan 2016 16:37:11 +0000 (17:37 +0100)]
[mono-api-info] Rework SkipAttribute to use ordinal string comparison, and no string comparison unless needed.

8 years ago[mono-api-info] Use ordinal string comparison. It's much faster.
Rolf Bjarne Kvinge [Wed, 27 Jan 2016 16:36:00 +0000 (17:36 +0100)]
[mono-api-info] Use ordinal string comparison. It's much faster.

8 years ago[mono-api-info] Remove unused method.
Rolf Bjarne Kvinge [Wed, 27 Jan 2016 13:15:25 +0000 (14:15 +0100)]
[mono-api-info] Remove unused method.

8 years ago[mono-api-info] Use XmlWriter instead of XmlDocument to make this faster.
Rolf Bjarne Kvinge [Wed, 27 Jan 2016 11:56:23 +0000 (12:56 +0100)]
[mono-api-info] Use XmlWriter instead of XmlDocument to make this faster.

Generating all the API references (in parallel) for Xamarin.iOS goes from
5.5s to 4.5s.

8 years ago[xbuild] Set .net 4.5 target to 4.5 restricted api
Marek Safar [Thu, 28 Jan 2016 13:19:18 +0000 (14:19 +0100)]
[xbuild] Set .net 4.5 target to 4.5 restricted api

8 years ago[system] Add DeliveryFormat to SmtpSection. Fixes #37891
Marek Safar [Thu, 28 Jan 2016 12:38:37 +0000 (13:38 +0100)]
[system] Add DeliveryFormat to SmtpSection. Fixes #37891

8 years ago[mono-api-info] Add support for writing output to a file specified using a command...
Rolf Bjarne Kvinge [Wed, 27 Jan 2016 11:07:24 +0000 (12:07 +0100)]
[mono-api-info] Add support for writing output to a file specified using a command line argument.

8 years ago[mcs] Implements null operator for dynamic expressions. Fixes #37801, #37824
Marek Safar [Thu, 28 Jan 2016 12:08:11 +0000 (13:08 +0100)]
[mcs] Implements null operator for dynamic expressions. Fixes #37801, #37824

8 years ago[SocketResponder] Use Task instead of Thread
Ludovic Henry [Wed, 27 Jan 2016 16:09:22 +0000 (16:09 +0000)]
[SocketResponder] Use Task instead of Thread

This allow us catching and rethrowing the exception on the main thread, as well as making sure we wait for the Listen thread to finish in a timely manner.

8 years ago[SocketResponder] Start in constructor and Stop on Dispose
Ludovic Henry [Thu, 28 Jan 2016 10:50:34 +0000 (10:50 +0000)]
[SocketResponder] Start in constructor and Stop on Dispose

In conjuction with `using` we ensure that we Start and Stop the SocketResponder correctly, and everytime

8 years ago[Tests] Use explicit delegate so it appears in stacktraces
Ludovic Henry [Wed, 27 Jan 2016 16:08:18 +0000 (16:08 +0000)]
[Tests] Use explicit delegate so it appears in stacktraces

In case of exception in this callback, the name of the test method will appear in the stacktrace, making debugging way easier.

8 years agoMerge pull request #2497 from ludovic-henry/monoerror-mono_gsharedvt_constrained_call
Zoltan Varga [Thu, 28 Jan 2016 08:03:35 +0000 (03:03 -0500)]
Merge pull request #2497 from ludovic-henry/monoerror-mono_gsharedvt_constrained_call

[runtime] Use MonoError for mono_gsharedvt_constrained_call

8 years ago[System] Move HttpListenerResponse.GetStatusDescription to ease linking
Sebastien Pouliot [Thu, 28 Jan 2016 03:10:40 +0000 (22:10 -0500)]
[System] Move HttpListenerResponse.GetStatusDescription to ease linking

The use of HttpResponseMessage.ReasonPhrase means:

* marking the HttpListenerResponse.GetStatusDescription method;
* marking the HttpListenerResponse type;
* which implements IDisposable, so it's Dispose method is marked
* marking the Close method...

from there a metric ton of code gets recursively marked to the point
where the whole SSL/TLS server code gets inside the app.

To avoid this we move the GetStatusDescription to a different
type that won't bring the end of the civilized world so fast.

8 years ago[runtime] Use MonoError in mono_jit_runtime_invoke () to return errors, the 'exc...
Zoltan Varga [Thu, 28 Jan 2016 03:06:47 +0000 (22:06 -0500)]
[runtime] Use MonoError in mono_jit_runtime_invoke () to return errors, the 'exc' parameter is still used to return the possible exception from the invoke call.

8 years ago[System.Web] Fix another wrong test assembly name
Alexander Köplinger [Thu, 28 Jan 2016 00:23:52 +0000 (01:23 +0100)]
[System.Web] Fix another wrong test assembly name

Didn't catch that one in 180e745ccee4a80c9641a2e70235387e74b9eddb as it hides itself pretty well :)

8 years agoMerge pull request #2527 from vargaz/jit-errors
Zoltan Varga [Thu, 28 Jan 2016 02:33:53 +0000 (21:33 -0500)]
Merge pull request #2527 from vargaz/jit-errors

[jit] Convert some of the error handling to use cfg->error instead of…

8 years ago[jit] Use mono_error_set_pending_exception () to throw exceptions from the trampoline...
Zoltan Varga [Thu, 28 Jan 2016 01:15:14 +0000 (20:15 -0500)]
[jit] Use mono_error_set_pending_exception () to throw exceptions from the trampoline code. This only works if the generic trampoline code checks for exceptions after the call to the C function.

8 years ago[jit] Use MonoError in mono_jit_compile_method () and the trampoline code.
Zoltan Varga [Thu, 28 Jan 2016 00:55:48 +0000 (19:55 -0500)]
[jit] Use MonoError in mono_jit_compile_method () and the trampoline code.

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 agoMerge pull request #2526 from alexanderkyte/llvmonly_mobile_static_fixups
Alexander Köplinger [Wed, 27 Jan 2016 23:08:20 +0000 (00:08 +0100)]
Merge pull request #2526 from alexanderkyte/llvmonly_mobile_static_fixups

[mobile_static] Requested NunitLite comment and llvmonly configuration changes

8 years ago[jit] Pass a MonoError* instead of a MonoException** to mono_jit_compile_method_inner ().
Zoltan Varga [Wed, 27 Jan 2016 22:48:28 +0000 (17:48 -0500)]
[jit] Pass a MonoError* instead of a MonoException** to mono_jit_compile_method_inner ().

8 years ago[runtime] Initialize the error fields in mono_error_set_exception_instance ().
Zoltan Varga [Wed, 27 Jan 2016 22:47:38 +0000 (17:47 -0500)]
[runtime] Initialize the error fields in mono_error_set_exception_instance ().

8 years ago[bcl] Fix dll names and InternalsVisibleTo for test assemblies
Alexander Köplinger [Wed, 27 Jan 2016 21:11:35 +0000 (22:11 +0100)]
[bcl] Fix dll names and InternalsVisibleTo for test assemblies

The format of the test assembly name changed in 860334ff45a8d1c5886b8dbcfadaf28ac55b9393
from System.Web_test_net_4_x.dll to net_4_x_System.Web_test.dll.

This fixes all the places where the old name was used.

8 years ago[jit] Reduce the usage of the loader error more by converting it to a MonoError where...
Zoltan Varga [Wed, 27 Jan 2016 22:13:27 +0000 (17:13 -0500)]
[jit] Reduce the usage of the loader error more by converting it to a MonoError where it was detected.

8 years agoMerge pull request #2523 from akoeplinger/fix-profiler-test-reporting
Alexander Köplinger [Wed, 27 Jan 2016 21:21:49 +0000 (22:21 +0100)]
Merge pull request #2523 from akoeplinger/fix-profiler-test-reporting

[profiler] Fix test reporting success even though a test failed

8 years ago[jit] Convert some of the error handling to use cfg->error instead of cfg->exception_...
Zoltan Varga [Wed, 27 Jan 2016 21:01:41 +0000 (16:01 -0500)]
[jit] Convert some of the error handling to use cfg->error instead of cfg->exception_type.

8 years agoUse S390_SET to get addresses rather than the previous more convoluted method
Neale Ferguson [Wed, 27 Jan 2016 20:45:37 +0000 (15:45 -0500)]
Use S390_SET to get addresses rather than the previous more convoluted method

[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[mobile_static] Don't use gsharedvt with llvmonly
Alexander Kyte [Wed, 27 Jan 2016 20:48:25 +0000 (15:48 -0500)]
[mobile_static] Don't use gsharedvt with llvmonly

8 years ago[nunitlite] Documented console .config usage
Alexander Kyte [Wed, 27 Jan 2016 20:28:05 +0000 (15:28 -0500)]
[nunitlite] Documented console .config usage

8 years agoMerge pull request #2432 from alexanderkyte/compile_corlib_with_aot
Alexander Kyte [Wed, 27 Jan 2016 20:10:56 +0000 (15:10 -0500)]
Merge pull request #2432 from alexanderkyte/compile_corlib_with_aot

[aot/bcl] Compile the BCL with AOT

8 years ago[aot/bcl] Add Makefile configuration to build the bcl with aot, use it in mobile_static.
Alexander Kyte [Wed, 13 Jan 2016 23:13:51 +0000 (18:13 -0500)]
[aot/bcl] Add Makefile configuration to build the bcl with aot, use it in mobile_static.

8 years agoMerge pull request #2431 from alexanderkyte/tests_with_excludes
Alexander Kyte [Wed, 27 Jan 2016 20:09:29 +0000 (15:09 -0500)]
Merge pull request #2431 from alexanderkyte/tests_with_excludes

[mcs] Fix .sources/.excludes for tests, exclude corlib monotouch-excluded tests on mobile_static

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 ago[profiler] Fix test reporting success even though a test failed
Alexander Köplinger [Wed, 27 Jan 2016 19:15:44 +0000 (20:15 +0100)]
[profiler] Fix test reporting success even though a test failed

I noticed this in https://jenkins.mono-project.com/job/test-mono-pull-request-armhf/1715/ which reported success in the "profiler" test step,
even though the step actually reported errors:

```
MONO_PATH=/media/ssd/jenkins/workspace/test-mono-pull-request-armhf/mcs/class/lib/net_4_x perl ./ptestrunner.pl ../..
Checking test-alloc.exe with report ...
Checking test-busy.exe with report ...
Checking test-busy.exe with report,sample ...
Error: Missing thread Finalizer.
Error: Missing thread Main.
Error: Wrong loaded images 2.
Error: Not enough compiled method.
Error: Not enough compiled code.
Error: Missing thread BusyHelper.
Total errors: 6
Checking test-monitor.exe with report ...
Checking test-excleave.exe with report ...
Checking test-heapshot.exe with report,heapshot ...
Checking test-heapshot.exe with heapshot,output=-traces.mlpd ...
Checking test-traces.exe with output=-traces.mlpd ...
Checking test-traces.exe with nocalls,output=-traces.mlpd ...
make[1]: Leaving directory `/media/ssd/jenkins/workspace/test-mono-pull-request-armhf/mono/profiler'
make: Leaving directory `/media/ssd/jenkins/workspace/test-mono-pull-request-armhf/mono/profiler'
++ bc
+++ date +%s
++ echo 1453874768 - 1453874741
+ echo -e '*** end(27): profiler: \e[42mPassed\e[0m'
*** end(27): profiler: Passed
```

The culprit is that ptestrunner.pl checks whether $total_errors is non-zero to determin the process exit code.
This is wrong, as $total_errors is cleared before each test so unless the last test fails the exit code would always be zero.

Introduced a new $global_errors variable which is only incremented and never cleared to fix this.

8 years agoRevert "[runtime] Use explicit loop checking to remove depth limitation of sequence...
Zoltan Varga [Wed, 27 Jan 2016 18:46:42 +0000 (13:46 -0500)]
Revert "[runtime] Use explicit loop checking to remove depth limitation of sequence point search."

This reverts commit 23ce21ede0d26d2815c670a11e6d870506b91dd0.

Revert this as it is non-linear and can take a lot of time for complicated cfg structures.

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