mono.git
9 years ago[threading] Rework suspend code to be based on a state machine and eliminate known...
Rodrigo Kumpera [Mon, 2 Feb 2015 16:04:37 +0000 (11:04 -0500)]
[threading] Rework suspend code to be based on a state machine and eliminate known races in the process.

The new suspend machinery is based around a single word state machine that is manipulated using CAS.

This solves the first set of problems with the current approach, the lack of atomicity and the impossibility of
doing race free manipulation of protected state. This is specially acute when doing a self suspend.
Suspend data must be atomically protected while we prepare to self suspend so a resume request won't race with the current
thread putting itself to sleep. This is a classical problem that calls for a mutex/conditional variable pair. Except that all
locks in the suspend path must be suspend safe. Wait, WHAT?

A Suspend Safe Lock is a primitive that is obstruction free in the face of the kernel suspending a thread either performing a
lock operation or waiting on a lock to become available. This, unfortunately, is not possible with pthread_mutex on OSX. The
only safe primitive are kernel semaphores, for which doesn't exist conditional variables for.

So back to locking and self-suspend. We need a lock because the existing thread state is not atomic but we can't use a
mutex/condvar pair so we're left with racy code. Yay! The fix is using CAS over a single variable.

Another change was the hardening of the suspend/resume code on posix targets. First we replace a semaphore wait with
sigsuspend for async suspend. This is needed since sem_wait is not async-signal safe (yet sem_post is). Second, we now
respect interruption requests by having a pair of suspend signals, one with SA_RESTART and one without.

Onto the design of the suspension system, a few concepts that are useful looking around.

* Self suspend: This is when the thread decides to suspend itself.

* Async suspend: This is when a thread decides to suspend another thread.

* Suspend Initiator: This the name of a thread that decided to suspend one or more other threads. This is important
since all suspending threads will notify it when they are suspended. There can be only one initiator in the system
at a given time.

* Suspension count: Number of resume calls before a thread is back to running state.

There are 7 states that can happen while a thread is runnable:

* Running: just running...

* (Async|Self) Suspended: Suspended, the difference comes into play when resuming.

* (Async|Self) Suspend Requested: Suspend requested, but not completed. See more below for the discussion on why the request state is needed.

* Suspend In Progress: Self suspend started saving its state thus async suspend should not modify it.
* Suspend Promoted to Async: Async tried to suspend a thread in the middle of a self suspend, it wants to be notified.

Now to the suspension protocol and how it happens on a high level view.

Suspension starts with a suspend request, which bumps the suspend count by one. This suspend request can be fulfilled either
by an async or self suspend action. This is confusing as there's only one initiator but any number of threads can be self suspending.

Async suspend then performs a platform specific action such as posix signals that forces a transition on the target. In the case
of self suspend, it depends on the thread polling its state and trigger the transition.

This works fine except that the suspend state is one huge struct with tons of fields. To control concurrent access to it we use a
single initiator in the case of async suspend and we put the thread in a transitional "saving my state" in the case of self suspend.

In the case of async suspend, the initiator must wait for all 1+ threads to notify back that they have suspended. Only after that
it's possible to know if the async suspend request actually worked or not (we might have hit a dying thread).

Together with this, there's an optional implementation of STW in sgen that can use this new machinery. To enable it set the
MONO_ENABLE_UNIFIED_SUSPEND env var for now while it gets more testing.

9 years ago[system] Fixes InvalidCastException in OpenReadAsyncCallback
Marek Safar [Wed, 11 Mar 2015 16:15:37 +0000 (17:15 +0100)]
[system] Fixes InvalidCastException in OpenReadAsyncCallback

9 years ago[runtime] Replaced unsafe thread_abort calls.
Marcos Henrich [Wed, 11 Mar 2015 16:02:27 +0000 (16:02 +0000)]
[runtime] Replaced unsafe thread_abort calls.

9 years ago[corlib] TypeDelegator from reference sources
Marek Safar [Wed, 11 Mar 2015 15:41:09 +0000 (16:41 +0100)]
[corlib] TypeDelegator from reference sources

9 years ago[msvc] Change target MSVC release from v120 to v120_xp
Jo Shields [Wed, 11 Mar 2015 15:23:27 +0000 (15:23 +0000)]
[msvc] Change target MSVC release from v120 to v120_xp

They're basically the same thing, but v120 has DX10+ capabilities and v120_xp
is DX9 only. Since we're not building against DirectX, the difference is
purely academic - but changing the value to v120_xp means MSVC binaries run
on XP+, not Vista+

9 years ago[runtime] Make read_enum_value endian aware
Marek Safar [Wed, 11 Mar 2015 14:52:16 +0000 (15:52 +0100)]
[runtime] Make read_enum_value endian aware

9 years ago[Microsoft.Build.Engine] Fix invocation flags not to contain both CreateInstance...
Marek Safar [Wed, 11 Mar 2015 12:32:45 +0000 (13:32 +0100)]
[Microsoft.Build.Engine] Fix invocation flags not to contain both CreateInstance and Invoke

9 years ago[System.ComponentModel.DataAnnotations] Update test as validation attributes needs...
Marek Safar [Wed, 11 Mar 2015 12:24:51 +0000 (13:24 +0100)]
[System.ComponentModel.DataAnnotations] Update test as validation attributes needs to be public

9 years ago[msvc] Refresh .def files
Jo Shields [Wed, 11 Mar 2015 12:06:16 +0000 (12:06 +0000)]
[msvc] Refresh .def files

9 years agoBump winconfig.h to 4.1.0
Jo Shields [Wed, 11 Mar 2015 10:13:44 +0000 (10:13 +0000)]
Bump winconfig.h to 4.1.0

9 years agoUse MSVC2013 for *all* mono.sln dependants
Jo Shields [Wed, 11 Mar 2015 10:00:11 +0000 (10:00 +0000)]
Use MSVC2013 for *all* mono.sln dependants

9 years agoAdd _WIN32_WINNT to Release definition, not just Debug
Jo Shields [Wed, 11 Mar 2015 09:48:15 +0000 (09:48 +0000)]
Add _WIN32_WINNT to Release definition, not just Debug

9 years ago[corlib] Fixes build, add missing file
Marek Safar [Wed, 11 Mar 2015 09:40:06 +0000 (10:40 +0100)]
[corlib] Fixes build, add missing file

9 years ago[corlib] Type from reference sources
Marek Safar [Wed, 11 Mar 2015 09:08:07 +0000 (10:08 +0100)]
[corlib] Type from reference sources

9 years ago[mcs] Check operator parameter types using common declaration type
Marek Safar [Wed, 11 Mar 2015 08:57:50 +0000 (09:57 +0100)]
[mcs] Check operator parameter types using common declaration type

9 years ago[runtime] Make the size of the pseudo classes created by make_generic_param_class...
Zoltan Varga [Wed, 11 Mar 2015 04:08:04 +0000 (00:08 -0400)]
[runtime] Make the size of the pseudo classes created by make_generic_param_class () the same as a valuetype with one field of the appropriate type.

9 years ago[jit] Reorganize the gshared code a bit to make it easier to add support for valuetyp...
Zoltan Varga [Wed, 11 Mar 2015 01:56:16 +0000 (21:56 -0400)]
[jit] Reorganize the gshared code a bit to make it easier to add support for valuetype sharing.

9 years ago[jit] Handle type variables in mini_emit_stobj ().
Zoltan Varga [Wed, 11 Mar 2015 01:39:21 +0000 (21:39 -0400)]
[jit] Handle type variables in mini_emit_stobj ().

9 years ago[jit] Move some gshared related code to mini-generic-sharing.c.
Zoltan Varga [Tue, 10 Mar 2015 23:47:47 +0000 (19:47 -0400)]
[jit] Move some gshared related code to mini-generic-sharing.c.

9 years ago[jit] Rename 'constrained_call' to 'constrained_class' to better reflect its type.
Zoltan Varga [Tue, 10 Mar 2015 23:43:57 +0000 (19:43 -0400)]
[jit] Rename 'constrained_call' to 'constrained_class' to better reflect its type.

9 years agoFix some bugs in 92ca06aa7dc4073bdc52f45842a1fbc2fdfce7bf. Fixes #26989.
Zoltan Varga [Tue, 10 Mar 2015 21:28:52 +0000 (17:28 -0400)]
Fix some bugs in 92ca06aa7dc4073bdc52f45842a1fbc2fdfce7bf. Fixes #26989.

9 years ago[jit] Fix the handling of byref locals in mono_allocate_stack_slots2 ().
Zoltan Varga [Tue, 10 Mar 2015 21:27:22 +0000 (17:27 -0400)]
[jit] Fix the handling of byref locals in mono_allocate_stack_slots2 ().

9 years ago[tests] Test case for #27147.
Mark Probst [Tue, 10 Mar 2015 20:55:00 +0000 (13:55 -0700)]
[tests] Test case for #27147.

9 years ago[sgen] Fix a bug in 64 bit LOS cardtable scanning. Fixes #27147.
Mark Probst [Tue, 10 Mar 2015 19:22:39 +0000 (12:22 -0700)]
[sgen] Fix a bug in 64 bit LOS cardtable scanning.  Fixes #27147.

9 years agoFix the build broken in 40ba1978bc274c820141fab18177e2bb17efd3b4
Alexander Köplinger [Tue, 10 Mar 2015 10:53:17 +0000 (11:53 +0100)]
Fix the build broken in 40ba1978bc274c820141fab18177e2bb17efd3b4

9 years agoMerge pull request #977 from jasonleenaylor/bug-18558
Miguel de Icaza [Tue, 10 Mar 2015 18:40:33 +0000 (14:40 -0400)]
Merge pull request #977 from jasonleenaylor/bug-18558

Fix for Bug 18558

9 years agoMerge pull request #1579 from esdrubal/aotsp
Marcos Henrich [Tue, 10 Mar 2015 16:33:32 +0000 (16:33 +0000)]
Merge pull request #1579 from esdrubal/aotsp

Sequence points and symbolicate improvements

9 years agoMerge pull request #1612 from esdrubal/socketsh
Marcos Henrich [Tue, 10 Mar 2015 16:22:12 +0000 (16:22 +0000)]
Merge pull request #1612 from esdrubal/socketsh

Changed Socket to used SafeHandle instead of IntPtr.

9 years agoFix the build.
Zoltan Varga [Tue, 10 Mar 2015 05:28:57 +0000 (01:28 -0400)]
Fix the build.

9 years agoFix a crash introduced by 15c813d8fda7998688d17b2996543f2e1476ec88.
Zoltan Varga [Tue, 10 Mar 2015 04:36:45 +0000 (00:36 -0400)]
Fix a crash introduced by 15c813d8fda7998688d17b2996543f2e1476ec88.

9 years ago[runtime] Add support for generic params with gshared constraints to mono_type_get_ba...
Zoltan Varga [Tue, 10 Mar 2015 02:07:44 +0000 (22:07 -0400)]
[runtime] Add support for generic params with gshared constraints to mono_type_get_basic_type_from_generic ().

9 years ago[runtime] Make the image->gsharedvt_types into an array.
Zoltan Varga [Tue, 10 Mar 2015 00:57:25 +0000 (20:57 -0400)]
[runtime] Make the image->gsharedvt_types into an array.

9 years ago[runtime] Handle gparams constrained to vtypes correctly in mono_class_array_element_...
Zoltan Varga [Tue, 10 Mar 2015 00:53:28 +0000 (20:53 -0400)]
[runtime] Handle gparams constrained to vtypes correctly in mono_class_array_element_size ().

9 years ago[system] Remove closed connection groups from service point manager. Fixes #25254
Marek Safar [Mon, 9 Mar 2015 23:12:13 +0000 (00:12 +0100)]
[system] Remove closed connection groups from service point manager. Fixes #25254

9 years agoMerge pull request #1620 from alexanderkyte/bug-27755
João Matos [Mon, 9 Mar 2015 20:39:41 +0000 (20:39 +0000)]
Merge pull request #1620 from alexanderkyte/bug-27755

Fixed early termination of string parsing on non-space whitespace.

9 years ago[mono-symbolicate] make check now tests aot with and w/o .msym.
Marcos Henrich [Fri, 27 Feb 2015 15:59:26 +0000 (15:59 +0000)]
[mono-symbolicate] make check now tests aot with and w/o .msym.

9 years ago[runtime] Added --aot option gen-seq-points-file.
Marcos Henrich [Fri, 27 Feb 2015 15:55:50 +0000 (15:55 +0000)]
[runtime] Added --aot option gen-seq-points-file.
.msym file is now only generated if option gen-seq-points-file is used.

9 years ago[mono-symbolicate] Updated README to the same content as man page.
Marcos Henrich [Thu, 19 Feb 2015 15:09:28 +0000 (15:09 +0000)]
[mono-symbolicate] Updated README to the same content as man page.

9 years ago[mono-symbolicate] Added tool man page and script.
Marcos Henrich [Wed, 18 Feb 2015 19:22:39 +0000 (19:22 +0000)]
[mono-symbolicate] Added tool man page and script.

9 years ago[mono-symbolicate] Replaced mcs --debug flag usage with -debug.
Marcos Henrich [Wed, 18 Feb 2015 17:44:50 +0000 (17:44 +0000)]
[mono-symbolicate] Replaced mcs --debug flag usage with -debug.

9 years ago[mono-symbolicate] Fixed wrong Directory.Exists check.
Marcos Henrich [Wed, 18 Feb 2015 17:41:52 +0000 (17:41 +0000)]
[mono-symbolicate] Fixed wrong Directory.Exists check.

9 years ago[runtime] Updated comment with wrong corlib path.
Marcos Henrich [Tue, 17 Feb 2015 15:14:49 +0000 (15:14 +0000)]
[runtime] Updated comment with wrong corlib path.

9 years ago[runtime] emit_exception_debug_info no longer adds seq point flag on release.
Marcos Henrich [Tue, 17 Feb 2015 15:12:23 +0000 (15:12 +0000)]
[runtime] emit_exception_debug_info no longer adds seq point flag on release.

9 years ago[runtime] ves_icall_get_trace can now return a -1 IL offset.
Marcos Henrich [Tue, 17 Feb 2015 14:29:26 +0000 (14:29 +0000)]
[runtime] ves_icall_get_trace can now return a -1 IL offset.
This change was made so StackFrame dumps now show a native offset when the IL offset is unknown.
The native offset can be used by mono-symbolicate tool to retrieve an IL offset from a .msym file.

9 years ago[mono-symbolicate] make check now also runs test with AOT.
Marcos Henrich [Tue, 17 Feb 2015 14:27:14 +0000 (14:27 +0000)]
[mono-symbolicate] make check now also runs test with AOT.

9 years ago[mono-symbolicate] Tool is now using .msym files with AOT.
Marcos Henrich [Tue, 17 Feb 2015 14:18:54 +0000 (14:18 +0000)]
[mono-symbolicate] Tool is now using .msym files with AOT.
With AOT sequence points are stored in a .msym file.
As the sequence point data is not avaible at run time, AOT stack traces display a native offset.
mono-symbolicate tool is now able to retrieve an IL offset from a method name, native offset, and the data stored on the .msym file.
The IL offset can then be use to retrieve a filename and line from a .mdb file.

9 years ago[corlib] Added icall System.Diagnostic.StackFrame.GetILOffsetFromFile.
Marcos Henrich [Tue, 17 Feb 2015 14:15:01 +0000 (14:15 +0000)]
[corlib] Added icall System.Diagnostic.StackFrame.GetILOffsetFromFile.
This method is required by the tool mono-symbolicate.

9 years agoDisable SecurityFrame, the runtime code in declsec.c creates cross-domain references...
Zoltan Varga [Mon, 9 Mar 2015 19:15:04 +0000 (15:15 -0400)]
Disable SecurityFrame, the runtime code in declsec.c creates cross-domain references which cause GC crashes when running the System.Web testsuite.

9 years ago[runtime] Moved some seq point code from mono/mini to mono/metadata.
Marcos Henrich [Mon, 16 Feb 2015 15:22:13 +0000 (15:22 +0000)]
[runtime] Moved some seq point code from mono/mini to mono/metadata.
Created files metadata/seq-points-data.c and .h.
Sequence points data structures were moved to metadata so we can perform icalls on them.

9 years ago[runtime] AOT now uses file to store release mode sequence points.
Marcos Henrich [Tue, 3 Feb 2015 18:32:41 +0000 (18:32 +0000)]
[runtime] AOT now uses file to store release mode sequence points.
Sequence point data is now stored in a .msym file.
This change removes the sequence points memory overhead from assemblies to be deployed on devices.

9 years ago[runtime] Added SeqPointData used to write/load sequence points.
Marcos Henrich [Fri, 13 Feb 2015 11:07:42 +0000 (11:07 +0000)]
[runtime] Added SeqPointData used to write/load sequence points.

9 years ago[runtime] Improved seq_point_info_write/read has_debug_data encode.
Marcos Henrich [Fri, 13 Feb 2015 10:59:28 +0000 (10:59 +0000)]
[runtime] Improved seq_point_info_write/read has_debug_data encode.

9 years ago[mono-symbolicate] Changed files to use new tool name.
Marcos Henrich [Wed, 4 Feb 2015 16:21:24 +0000 (16:21 +0000)]
[mono-symbolicate] Changed files to use new tool name.

9 years ago[symbolicate] Renamed symbolicate to mono-symbolicate.
Marcos Henrich [Wed, 4 Feb 2015 16:06:18 +0000 (16:06 +0000)]
[symbolicate] Renamed symbolicate to mono-symbolicate.
Renamed the tool to a name that will not conflict with other installed tools.

9 years ago[runtime] Fixed Process.GetProcesses ().
Marcos Henrich [Mon, 9 Mar 2015 17:35:47 +0000 (17:35 +0000)]
[runtime] Fixed Process.GetProcesses ().
Process.GetProcesses () was not returning any processes.

9 years ago[Remoting] Fixed remoting bug where too specific a type reflected.
Alexander Kyte [Mon, 9 Mar 2015 16:53:50 +0000 (12:53 -0400)]
[Remoting] Fixed remoting bug where too specific a type reflected.

9 years ago[Remoting] Moved helper methods from CAD call class to parent class to enable remotin...
Alexander Kyte [Mon, 9 Mar 2015 16:53:34 +0000 (12:53 -0400)]
[Remoting] Moved helper methods from CAD call class to parent class to enable remoting fix.

9 years agoFixed early termination of string parsing on non-space whitespace.
Alexander Kyte [Sun, 8 Mar 2015 19:18:27 +0000 (15:18 -0400)]
Fixed early termination of string parsing on non-space whitespace.

9 years agoMerge pull request #1622 from akoeplinger/fix-datetime-test
João Matos [Mon, 9 Mar 2015 14:23:56 +0000 (14:23 +0000)]
Merge pull request #1622 from akoeplinger/fix-datetime-test

[corlib] Fix timezone dependent DateTimeOffset test

9 years ago[runtime] Fixed Windows mono_threads_core_get_stack_bounds to work with cross-compile...
João Matos [Mon, 9 Mar 2015 14:20:36 +0000 (14:20 +0000)]
[runtime] Fixed Windows mono_threads_core_get_stack_bounds to work with cross-compiled targets.

9 years ago[corlib] Fix timezone dependent DateTimeOffset test
Alexander Köplinger [Mon, 9 Mar 2015 14:21:49 +0000 (10:21 -0400)]
[corlib] Fix timezone dependent DateTimeOffset test

Instead of trying to recreate the date with the current timezone, we should make the date assume UTC and compare against that.

9 years ago[DataContractJsonSerializer] Allow abstract base classes in lists. Fixes #26998
Alexis Christoforides [Mon, 9 Mar 2015 05:23:27 +0000 (01:23 -0400)]
[DataContractJsonSerializer] Allow abstract base classes in lists. Fixes #26998

Abstract classes can still have subclasses with KnownType attributes, which are allowed in deserialization.

This used to work as the '__type' hint  was always honored no matter the type, and broke with https://github.com/mono/mono/commit/71e152accc727089faffa6b4fd6bf58cb62636cf which removed that behavior.

9 years agoMerge pull request #1619 from akoeplinger/flaky-dataflow-test
Alex Rønne Petersen [Sun, 8 Mar 2015 21:05:47 +0000 (22:05 +0100)]
Merge pull request #1619 from akoeplinger/flaky-dataflow-test

[Dataflow] Disable flaky FaultExecutingConsume () test

9 years ago[Dataflow] Disable flaky FaultExecutingConsume () test
Alexander Köplinger [Sun, 8 Mar 2015 08:10:46 +0000 (09:10 +0100)]
[Dataflow] Disable flaky FaultExecutingConsume () test

It fails randomly on Jenkins and my own CI. To reproduce, just wrap the body of the test in while(true) and run for a few minutes.
I tested on MS.NET as well and it fails the same way there, so it's not Mono's implementation of Dataflow.

Filed https://bugzilla.xamarin.com/show_bug.cgi?id=27757 for tracking.

9 years ago[jit] Rename MonoGenericParam->serial to 'gshared_constraint', use it to calculate...
Zoltan Varga [Sun, 8 Mar 2015 03:59:25 +0000 (22:59 -0500)]
[jit] Rename MonoGenericParam->serial to 'gshared_constraint', use it to calculate object sizes/layouts correctly if a generic param matches a non-reference type during gsharing.

9 years ago[UnixRegistry] Fix leak (#25559), remove races.
Miguel de Icaza [Sat, 7 Mar 2015 02:18:42 +0000 (21:18 -0500)]
[UnixRegistry] Fix leak (#25559), remove races.

There was a memory leak caused by not having a lookup mechanism for
the RegistryKey.  In addition, the entire code to dispose code was
never used (due to the leak), and it was wrong.

In addition, added locking to the "values" field, which currently was
racy.

No test cases, the repro is to run the above code for about 5 minutes.

9 years agoEnable x86 cross compilation on Windows.
João Matos [Fri, 6 Mar 2015 18:14:25 +0000 (18:14 +0000)]
Enable x86 cross compilation on Windows.

9 years agoDo not try to use the native GCC linker when targeting Android from Windows.
João Matos [Fri, 6 Mar 2015 17:40:43 +0000 (17:40 +0000)]
Do not try to use the native GCC linker when targeting Android from Windows.

9 years agoFixed Windows system commands calls with non-ASCII paths.
João Matos [Fri, 6 Mar 2015 17:40:07 +0000 (17:40 +0000)]
Fixed Windows system commands calls with non-ASCII paths.

This is a bit of an hack but it works for now... ideally we should be processing the Unicode command line flags passed by the CRT at startup instead of trying to convert the MBCS string to a wide string.

9 years ago Remove the EXPORT ciphers and related code path
Sebastien Pouliot [Fri, 6 Mar 2015 15:35:27 +0000 (10:35 -0500)]
Remove the EXPORT ciphers and related code path

    That was still useful in 2003/2004 but the technical and legal landscape
    changed a lot since then. Removing the old, limited key size, cipher
    suites also allow removed additional parts of the code that deals with
    them.

9 years ago Remove the client-side SSLv2 fallback.
Sebastien Pouliot [Fri, 6 Mar 2015 15:34:59 +0000 (10:34 -0500)]
Remove the client-side SSLv2 fallback.

    There's almost no SSLv3 web site left so a v2 fallback is only extra
    code we do not need to carry forward.

9 years agoTLS protocol: add handshake state validation
Sebastien Pouliot [Fri, 6 Mar 2015 15:34:14 +0000 (10:34 -0500)]
TLS protocol: add handshake state validation

9 years agoMerge pull request #1155 from steffen-kiess/json-string
Miguel de Icaza [Fri, 6 Mar 2015 14:47:56 +0000 (09:47 -0500)]
Merge pull request #1155 from steffen-kiess/json-string

Fix System.Json string handling and make order of JsonObject entries deterministic

9 years ago[jit] Use mini_get_underlying_type () in one more place.
Zoltan Varga [Thu, 5 Mar 2015 22:59:42 +0000 (17:59 -0500)]
[jit] Use mini_get_underlying_type () in one more place.

9 years ago[jit] Add a make target for running the jit tests without the nunit output wrapper.
Zoltan Varga [Thu, 5 Mar 2015 22:53:55 +0000 (17:53 -0500)]
[jit] Add a make target for running the jit tests without the nunit output wrapper.

9 years ago[jit] Use mini_get_underlying_type () in a few more places.
Zoltan Varga [Thu, 5 Mar 2015 22:46:10 +0000 (17:46 -0500)]
[jit] Use mini_get_underlying_type () in a few more places.

9 years ago[runtime] Remove the usage of MONO_INTERNAL, use MONO_API to mark exported functions...
Zoltan Varga [Thu, 5 Mar 2015 22:06:29 +0000 (17:06 -0500)]
[runtime] Remove the usage of MONO_INTERNAL, use MONO_API to mark exported functions and -fvisibility=hidden to exclude everything else.

9 years ago[runtime] Remove the usage of MONO_INTERNAL, use MONO_API to mark exported functions...
Zoltan Varga [Thu, 5 Mar 2015 21:02:21 +0000 (16:02 -0500)]
[runtime] Remove the usage of MONO_INTERNAL, use MONO_API to mark exported functions and -fvisibility=hidden to exclude everything else.

9 years ago[loader] If probing for a pinvoke fails, log the error mono_dl_symbol gives us.
Rodrigo Kumpera [Mon, 2 Feb 2015 16:04:37 +0000 (11:04 -0500)]
[loader] If probing for a pinvoke fails, log the error mono_dl_symbol gives us.

We used to swallow the error, which is unhelpful.

The reason for that might be because we probe multiple names before giving up but
even then, it's ok log all attempts. It will make troubleshooting easy, even if we
have to go through a lot more log entries.

9 years ago[sdb] Avoid asserts on darwin when the thread deregistration code is ran from a pthre...
Zoltan Varga [Thu, 5 Mar 2015 20:02:20 +0000 (15:02 -0500)]
[sdb] Avoid asserts on darwin when the thread deregistration code is ran from a pthread dtor. Fixes #27697.

9 years ago[runtime] Fix byref out marshalling of arrays with a size parameter. Fixes #27614.
Zoltan Varga [Thu, 5 Mar 2015 19:24:43 +0000 (14:24 -0500)]
[runtime] Fix byref out marshalling of arrays with a size parameter. Fixes #27614.

9 years ago[tests] IPInterfaceProperties DNS address does not currently work on iOS devices...
Sebastien Pouliot [Thu, 5 Mar 2015 19:03:04 +0000 (14:03 -0500)]
[tests] IPInterfaceProperties DNS address does not currently work on iOS devices (since it read /etc/resolve.conf). Ignore it for XI until #27707 is fixed

9 years ago[corlib] BaseType of by-ref types is null
Marek Safar [Thu, 5 Mar 2015 17:40:36 +0000 (18:40 +0100)]
[corlib] BaseType of by-ref types is null

9 years ago[System.ServiceModel.Web/WebMessageFormatter] Fix OperationContracts with void returns
Miguel de Icaza [Thu, 5 Mar 2015 16:33:12 +0000 (11:33 -0500)]
[System.ServiceModel.Web/WebMessageFormatter] Fix OperationContracts with void returns

WebMessageFormatter crashes when the OperationContracts had a void return type.

Fixes #20764, patch from <renee_geoffrion@hotmail.com>

9 years agoAdd NoData as valid return state for Statements with params
keneanung [Thu, 5 Mar 2015 16:08:04 +0000 (17:08 +0100)]
Add NoData as valid return state for Statements with params

When using stements with parameters, the OdbcCommand would throw an exception
on ExecSQL when no row was returned. The commit adapts the change done in
5264613b6d63ecb44502746321b97c4a304dedb0 for the case of unprepared statements
without parameters.

9 years ago[corlib] Enum from reference sources
Marek Safar [Thu, 5 Mar 2015 13:36:41 +0000 (14:36 +0100)]
[corlib] Enum from reference sources

9 years agoMerge pull request #1615 from akoeplinger/fix-consolelogger-race
Marek Safar [Thu, 5 Mar 2015 06:42:38 +0000 (07:42 +0100)]
Merge pull request #1615 from akoeplinger/fix-consolelogger-race

[Microsoft.Build.Enginge] Fix race in ConsoleLogger

9 years agoMerge pull request #1614 from akoeplinger/fix-memorycache-tests
Marek Safar [Thu, 5 Mar 2015 06:41:19 +0000 (07:41 +0100)]
Merge pull request #1614 from akoeplinger/fix-memorycache-tests

[System.Runtime.Caching] Make some MemoryCache tests more reliable

9 years ago[Microsoft.Build.Enginge] Fix race in ConsoleLogger
Alexander Köplinger [Thu, 5 Mar 2015 02:46:50 +0000 (03:46 +0100)]
[Microsoft.Build.Enginge] Fix race in ConsoleLogger

This occasionally made the BasicManualParallelBuilds test fail on Jenkins.

9 years ago[build] Avoid redefining clean target in mcs/class/Makefile.
Zoltan Varga [Thu, 5 Mar 2015 01:09:22 +0000 (20:09 -0500)]
[build] Avoid redefining clean target in mcs/class/Makefile.

9 years ago[jit] Add a new mini_get_underlying_type () function which handles byref, enums,...
Zoltan Varga [Thu, 5 Mar 2015 01:03:24 +0000 (20:03 -0500)]
[jit] Add a new mini_get_underlying_type () function which handles byref, enums, native types, and generic sharing. Use it in places where possible.

9 years ago[System.Runtime.Caching] Make some MemoryCache tests more reliable
Alexander Köplinger [Wed, 4 Mar 2015 21:40:02 +0000 (13:40 -0800)]
[System.Runtime.Caching] Make some MemoryCache tests more reliable

After MemoryCache was imported from referencesources, some tests started
failing occasionally. Cross-testing on MS.NET showed that you need to
access the cached item to make MemoryCache.GetCount() reliably return the
correct number after an item was expired from the cache.

Also removed __MonoTimerPeriod and __MonoEmulateOneCPU configuration variables,
they were used in Mono code before and don't make sense with the new code.

9 years agoFix for the XMLSerializer bug 18558
jason_naylor [Wed, 4 Mar 2015 15:58:01 +0000 (09:58 -0600)]
Fix for the XMLSerializer bug 18558

* Find the type map element that is the most-specific to the
  object in question, not the first type it is an instance of

Change-Id: I1867e790bf9f377ce0ae02871f4561b760e27624

9 years agoTest to reveal defect in XmlSerializer (Bug 18558)
jason_naylor [Wed, 4 Mar 2015 16:25:12 +0000 (10:25 -0600)]
Test to reveal defect in XmlSerializer (Bug 18558)

Given the test data in this patch the wrong element name
is used when serializing TestSerializeSecondType

Change-Id: I8aff732dfd22f4f654fb42f2d3b987d7ce58d600

9 years agoRemove old System.Xml.Linq code.
Atsushi Eno [Wed, 4 Mar 2015 15:47:57 +0000 (23:47 +0800)]
Remove old System.Xml.Linq code.

9 years ago[system.xml] Clean up build output
Marek Safar [Wed, 4 Mar 2015 12:45:25 +0000 (13:45 +0100)]
[system.xml] Clean up build output

9 years agobump referencesource, bring in the fix for bug #27258.
Atsushi Eno [Wed, 4 Mar 2015 12:28:13 +0000 (20:28 +0800)]
bump referencesource, bring in the fix for bug #27258.

9 years ago[System] Replaced while loop logic with an if.
Marcos Henrich [Wed, 4 Mar 2015 12:22:40 +0000 (12:22 +0000)]
[System] Replaced while loop logic with an if.
The while loop is unnecessary because Interlocked.CompareExchange in this case already guarantees that blocking_threads is not null.

9 years agoMerge pull request #1613 from atsushieno/import-system-xml-linq
Atsushi Eno [Wed, 4 Mar 2015 08:05:42 +0000 (16:05 +0800)]
Merge pull request #1613 from atsushieno/import-system-xml-linq

Import System.Xml.Linq from referencesource.

9 years agoMerge branch 'master' into import-system-xml-linq
Atsushi Eno [Wed, 4 Mar 2015 04:59:51 +0000 (12:59 +0800)]
Merge branch 'master' into import-system-xml-linq