Marek Safar [Mon, 9 May 2016 17:42:41 +0000 (19:42 +0200)]
[System] Uri handling from reference source
Fixes many issues in our uri handling
Marek Safar [Mon, 9 May 2016 15:39:13 +0000 (17:39 +0200)]
[System] Cleanup uri tests
Zoltan Varga [Mon, 9 May 2016 11:15:51 +0000 (07:15 -0400)]
[arm] Enable native types for Xamarin.WatchOS.dll too. Enable Unwind_Backtrace support on watchos.
Zoltan Varga [Mon, 9 May 2016 11:14:12 +0000 (07:14 -0400)]
[llvm] Enable OP_LADD_OVF opcodes on 32 bit platforms too. Avoid optimizing long shift opcodes when using llvm. Enable support for hardfp calling conventions on arm.
Zoltan Varga [Mon, 9 May 2016 11:11:21 +0000 (07:11 -0400)]
[arm] Use the hardfp abi on watchos.
Zoltan Varga [Mon, 9 May 2016 01:13:38 +0000 (21:13 -0400)]
[ppdb] Avoid using pdb files for assemblies which are not compiled by csc using /debug:portable. Fixes #40886.
Zoltan Varga [Sun, 8 May 2016 22:51:45 +0000 (18:51 -0400)]
[llvm] Add support for OP_GC_SAFE_POINT.
Zoltan Varga [Fri, 6 May 2016 22:22:09 +0000 (18:22 -0400)]
[arm] Align the stack correctly in the gsharedvt trampoline on platforms with frame alignment greater than 8 (watchos).
Zoltan Varga [Fri, 6 May 2016 22:20:52 +0000 (18:20 -0400)]
[arm] Define MONO_ARCH_DISABLE_HW_TRAPS on watchos.
Martin Baulig [Fri, 6 May 2016 20:09:54 +0000 (16:09 -0400)]
[System]: Fix certificate validation with empty hostname.
When the system certificate validator is invoked with an empty hostname
(caller does not want us to validate the hostname), then we need to pass
null to SecPolicyCreateSSL() and not the empty string.
(cherry picked from commit
f29804d149bed8032dabd862c9823bf5e74b0db4)
Martin Baulig [Fri, 6 May 2016 19:50:33 +0000 (15:50 -0400)]
[System]: Add comment to the obsoletion of Mono-specific ServicePointManager APIs.
(cherry picked from commit
1b4921b57321cbb353951e23c9841d7c7b6ce3b7)
Martin Baulig [Thu, 5 May 2016 21:19:20 +0000 (17:19 -0400)]
[System]: Obsolete the Mono-specific cipher suite callbacks in ServicePointManager.
(cherry picked from commit
fa75386bb88de96d58487673885b969c9d784f30)
Martin Baulig [Thu, 5 May 2016 19:55:54 +0000 (15:55 -0400)]
[corlib]: Cleanup X509Helper.Import().
Only attempt the automatic PEM->DER conversion when no password was given
and make this version of X509Helper.Import() also take care of the fallback.
(cherry picked from commit
63a214c3f02c6ac28d19a8ca95f7f39c1e31a072)
Aleksey Kliger (λgeek) [Fri, 6 May 2016 17:33:38 +0000 (13:33 -0400)]
Merge pull request #2968 from lambdageek/dev/coop-unify-jit_thread_attach
[runtime] Unify codepath in mono_jit_thread_attach
Aleksey Kliger [Thu, 5 May 2016 22:09:28 +0000 (18:09 -0400)]
[runtime] Unify codepath in mono_jit_thread_attach
Previously we had separate codepaths in mono_jit_thread_attach for coop
and non-coop modes.
Now there's a common codepath for attaching the thread, and separate
code paths for performing coop state machine transitions and computing
the return value cookie.
Fixes Mono.Debugger.Soft tests under coop.
Rodrigo Kumpera [Thu, 5 May 2016 23:21:56 +0000 (19:21 -0400)]
Merge pull request #2963 from ludovic-henry/fix-unified-suspend
[threads] Fix some unified suspend bugs
Ludovic Henry [Tue, 3 May 2016 18:56:49 +0000 (14:56 -0400)]
[sgen] Fix possible race condition between world stop and restart
Ludovic Henry [Mon, 2 May 2016 21:58:16 +0000 (17:58 -0400)]
[sgen] Do not skip starting and detaching thread during suspend
By skipping thread which have a NULL domain or lmf, we would also skip threads which are in RUNNING mode, but which are still attaching to the runtime. They could have in practice called `mono_thread_info_attach`, without having executed any managed code or set a domain yet. Because we would simply discard the suspending for these threads, we could potentially not suspend them, meaning they would keep running, even potentially run some managed code, while the GC is still running.
To fix that, we need to slightly modify the expectation of sgen STW when using unified suspend. The non-unified expectation of sgen STW would be that even if a thread has a non-initialized domain or lmf, it should still be suspended, but not scanned. The unified expectation of sgen STW would be that if a thread has a non-initialized domain or lmf, then the thread shouldn't be suspended. That second behaviour works well if we only consider that the domain or lmf could be non-initialized when the thread is detaching, but that consideration is just wrong. The main example is the beginning of `start_wrapper_internal` (in threads.c:637), where we have non-initialized domain and lmf, but where the thread is in RUNNING state, and about to access some managed memory.
Ludovic Henry [Wed, 6 Apr 2016 08:34:24 +0000 (09:34 +0100)]
[threads] Correct comment
Ludovic Henry [Fri, 1 Apr 2016 16:09:50 +0000 (17:09 +0100)]
[sgen] Improve STW debugging output
Ludovic Henry [Fri, 1 Apr 2016 17:28:42 +0000 (18:28 +0100)]
[threads] Make debugging output consistent
Other THREAD_SUSPEND_DEBUG would print the native thread TID, instead of the MonoThreadInfo*
Ludovic Henry [Fri, 1 Apr 2016 17:19:17 +0000 (18:19 +0100)]
[threads] Increase state machine verbosity when crashing
Ludovic Henry [Fri, 1 Apr 2016 10:59:26 +0000 (11:59 +0100)]
[threads] Fix segfault
Ludovic Henry [Thu, 31 Mar 2016 19:05:05 +0000 (20:05 +0100)]
[suspend] Don't try to suspend an already suspended thread
Ludovic Henry [Tue, 8 Dec 2015 05:23:44 +0000 (00:23 -0500)]
[threads] Fix compilation warning
Ludovic Henry [Mon, 7 Dec 2015 15:45:29 +0000 (10:45 -0500)]
[sgen] Add some assertion for stack start and end
Ludovic Henry [Mon, 7 Dec 2015 15:25:57 +0000 (10:25 -0500)]
[tests] Add sgen-new-threads-dont-join-stw-2
Ludovic Henry [Thu, 31 Mar 2016 13:00:49 +0000 (14:00 +0100)]
[threads] Be more verbose in the case of an error
Ludovic Henry [Thu, 31 Mar 2016 11:51:25 +0000 (12:51 +0100)]
[runtime] Use utils mono_thread_info_yield
Ludovic Henry [Thu, 5 May 2016 19:18:44 +0000 (15:18 -0400)]
Merge pull request #2948 from ludovic-henry/coop-n2m-eh-callback
[marshal] Add EH callback for native-to-managed wrapper
Aleksey Kliger (λgeek) [Thu, 5 May 2016 17:18:47 +0000 (13:18 -0400)]
Merge pull request #2965 from lambdageek/dev/checked-pinvoke3
[coop] Allow BLOCKING->DETACHED transition
Zoltan Varga [Thu, 5 May 2016 17:10:41 +0000 (13:10 -0400)]
Fix the cross compiler build.
Ludovic Henry [Thu, 5 May 2016 12:46:12 +0000 (08:46 -0400)]
Merge pull request #2964 from ludovic-henry/sgen-monocontext
[MonoContext] Migrate remaining architectures + [sgen] Kill USE_MONO_CTX and ARCH_NUM_REGS
Marek Safar [Thu, 5 May 2016 07:15:14 +0000 (09:15 +0200)]
Merge pull request #2966 from marek-safar/oid
[System] Oid from referencesource
Martin Baulig [Thu, 5 May 2016 00:02:50 +0000 (20:02 -0400)]
[corlib]: Try to convert the certificate from PEM to DER in X509Helper.Import().
Alex Rønne Petersen [Wed, 4 May 2016 22:52:19 +0000 (00:52 +0200)]
Merge pull request #2928 from alexrp/master
[profiler] Fix profiler compilation under bitcode.
Marek Safar [Wed, 4 May 2016 21:59:22 +0000 (23:59 +0200)]
[System] Oid from referencesource. Fixes #40646 and other incompabilities
Ludovic Henry [Wed, 4 May 2016 20:01:16 +0000 (16:01 -0400)]
Merge pull request #2955 from ludovic-henry/mono_msec_ticks-overflow
[runtime] Fix potential overflow when using mono_msec_ticks
Aleksey Kliger [Wed, 4 May 2016 14:41:44 +0000 (10:41 -0400)]
[coop] Allow BLOCKING->DETACHED transition.
On coop, an OS thread can go
STARTING->BLOCKING->RUNNING->BLOCKING->DETACHED.
For ordinary managed threads BLOCKING->DETACHED is still a bug like
before, but hopefully the checked build machinery will help us to catch
those situations.
Aleksey Kliger [Wed, 4 May 2016 14:15:05 +0000 (10:15 -0400)]
[checked] Use correct reset blocking cookie when attaching OS threads
When checked build is running with GC checking, it uses a non-zero
integer cookie instead of the thread info pointer.
This fixes pinvoke3.cs test_43_thread_attach() in checked coop builds.
Ludovic Henry [Mon, 25 Apr 2016 13:42:26 +0000 (09:42 -0400)]
[marshal] Add EH callback for native-to-managed wrapper
This is going to be used by Xamarin.iOS to convert a managed exception to an Obj-C exception. We need this as if we don't do that, the managed exception mechanism will unwind native stack, which can lead to undefined behavior. By converting to an Obj-C exception, we let the native exception mechanism do what it's supposed to do.
Ludovic Henry [Mon, 25 Apr 2016 13:33:24 +0000 (09:33 -0400)]
[marhsal] Always generate try { ... } finally { ... } in native-to-managed wrapper
Marek Safar [Wed, 4 May 2016 11:22:30 +0000 (13:22 +0200)]
[corlib] Update locale tables. Fixes #40697
Marek Safar [Wed, 4 May 2016 06:16:55 +0000 (08:16 +0200)]
Merge pull request #2962 from marek-safar/referencesource-submodule-move
Submodule referencesource removal
Zoltan Varga [Tue, 3 May 2016 21:37:51 +0000 (17:37 -0400)]
[aot] Emit EmptyArray<enum>:.cctor () instances since mcs now generates accesses to EmptyArray<enum>.Value for new enum[0] expressions.
Ludovic Henry [Tue, 3 May 2016 21:28:59 +0000 (17:28 -0400)]
[sgen] Kill USE_MONO_CTX and ARCH_NUM_REGS
Ludovic Henry [Tue, 3 May 2016 20:57:35 +0000 (16:57 -0400)]
[MonoContext] Make cross compiler a specific case
Ludovic Henry [Tue, 3 May 2016 20:56:19 +0000 (16:56 -0400)]
[sgen] Make Sparc use MonoContext
Ludovic Henry [Tue, 3 May 2016 20:42:59 +0000 (16:42 -0400)]
[sgen] Make PowerPC use MonoContext
Ludovic Henry [Fri, 4 Mar 2016 11:37:38 +0000 (11:37 +0000)]
[runtime] Fix potential overflow when using mono_msec_ticks
Because mono_msec_ticks would previously return the number of milliseconds since boot time, it would overflow after ~49 days. That would mean that anywhere you would use it, you would need to be careful of arithmetic overflow.
By simply returning a gint64 we will not overflow before ~30k years.
Fixes bug https://bugzilla.xamarin.com/show_bug.cgi?id=38666
Marek Safar [Tue, 3 May 2016 10:52:11 +0000 (12:52 +0200)]
Remove referencesource submodule and move sources to mcs/class/referencesource
This simplified PR workflow and makes branching easier
Marek Safar [Tue, 3 May 2016 10:49:05 +0000 (12:49 +0200)]
Update after merge conflicts
Marek Safar [Mon, 2 May 2016 14:50:04 +0000 (16:50 +0200)]
Alexander Köplinger [Mon, 25 Apr 2016 15:30:52 +0000 (11:30 -0400)]
Raise an UnauthorizedAccessException on FileInfo.Delete with a directory
When FileInfo was imported in https://github.com/mono/mono/commit/
bdd0de7ee52d9675dada0d19985b9daf4edab5bc the check in Delete()
got removed that raised an UnauthorizedAccessException when the FileInfo object holds a path to a directory instead of a file.
It happened to pass the MonoTests.System.IO.FileInfoTest.Delete_Directory test on OSX because unlink returns EPERM there
which got turned into the expected UnauthorizedAccessException, but on Linux it returns EISDIR so the test would fail.
Fix is to put the explicit check for directory back.
Marek Safar [Fri, 22 Apr 2016 15:09:32 +0000 (17:09 +0200)]
Mono friendly FileInfo
Marek Safar [Fri, 22 Apr 2016 08:07:33 +0000 (10:07 +0200)]
Mono friendly FileSystemInfo
Ludovic Henry [Fri, 15 Apr 2016 15:37:35 +0000 (17:37 +0200)]
Fix WaitHandle.Wait{One,Any,All} when runtime returns WAIT_FAILED
In case the runtime would fail to wait on the wait handle(s), we would still return true, as if the WaitHandle was successfully signaled.
Marek Safar [Sat, 16 Apr 2016 06:53:32 +0000 (08:53 +0200)]
Remove MONO_X509_ALIAS
Alexis Christoforides [Thu, 14 Apr 2016 19:30:40 +0000 (15:30 -0400)]
Re-apply compatibility fix from
42504b8af5a0bf7f012e6c40668659ca45fd4e22, it was eaten up by the .NET 4.6 merge. Fixes #38712
Ludovic Henry [Thu, 14 Apr 2016 09:48:11 +0000 (11:48 +0200)]
Fix HasExited for non-child process
NativeMethods.GetExitCodeProcess would inherently be broken on Unix platforms for non-child processes as it can't succesfully get the exit code. This would in turn break Process.HasExited, which should not break, as it is possible to check if a non-child process is alive or dead.
Andi McClure [Wed, 13 Apr 2016 22:32:44 +0000 (18:32 -0400)]
Adapt System.Exception to be usable by Mono
Marek Safar [Tue, 12 Apr 2016 14:06:53 +0000 (16:06 +0200)]
SymbolType in reflection only profiles
Marek Safar [Tue, 12 Apr 2016 12:45:04 +0000 (14:45 +0200)]
Mono friendly SymbolType
Marek Safar [Tue, 12 Apr 2016 09:28:22 +0000 (11:28 +0200)]
Better error message for missing codeset assembly
Marek Safar [Tue, 5 Apr 2016 13:53:44 +0000 (15:53 +0200)]
Fixes hardcoded Windows path in Serialization compiler
Marek Safar [Tue, 29 Mar 2016 11:13:43 +0000 (13:13 +0200)]
More DISABLE_CAS_USE tweaks
Marek Safar [Thu, 17 Mar 2016 09:21:54 +0000 (10:21 +0100)]
Add CSC_SDK_PATH_DISABLED workaround
Marek Safar [Wed, 16 Mar 2016 09:42:58 +0000 (10:42 +0100)]
Mono friendly RuntimeEnvironment
Marek Safar [Tue, 15 Mar 2016 12:51:18 +0000 (13:51 +0100)]
Add feature option to build without System.Runtime.Serialization
Marek Safar [Fri, 4 Mar 2016 12:38:25 +0000 (13:38 +0100)]
Replace string resource key names with local constants
Ludovic Henry [Mon, 15 Feb 2016 19:26:33 +0000 (19:26 +0000)]
Import System.Threading.WaitHandle
Andi McClure [Wed, 17 Feb 2016 15:38:50 +0000 (10:38 -0500)]
Remove Marshal.GetHRForLastWin32Error call from Diagnostics.Process
GetHRForLastWin32Error breaks the build on AOT, and even on non-AOT is unimplemented.
Ludovic Henry [Tue, 16 Feb 2016 14:26:53 +0000 (14:26 +0000)]
Marek Safar [Mon, 15 Feb 2016 19:22:22 +0000 (20:22 +0100)]
Marek Safar [Mon, 15 Feb 2016 17:13:37 +0000 (18:13 +0100)]
Mono friendly MethodInfo
Ludovic Henry [Mon, 8 Feb 2016 18:42:45 +0000 (18:42 +0000)]
Import System.Diagnostics.Process
Marek Safar [Tue, 9 Feb 2016 10:33:31 +0000 (11:33 +0100)]
Disable AppContextDefaults
Timotheus Pokorra [Mon, 8 Feb 2016 20:55:36 +0000 (21:55 +0100)]
fixing display of asmx help page (#37137)
if MONO_BROKEN_CONFIGURATION_DLL is defined, make sure that actualPath always gets set
Marcos Henrich [Sat, 30 Jan 2016 11:55:17 +0000 (11:55 +0000)]
Unix paths fix
DiscoveryClientProtocol.GetRelativePath was harcoded to use '\\'.
Fixes #36116
Alexander Kyte [Wed, 20 Jan 2016 17:19:49 +0000 (12:19 -0500)]
Only use patched AesManaged on MONOTOUCH
Marek Safar [Fri, 15 Jan 2016 14:18:06 +0000 (15:18 +0100)]
Fixes a race in CancellationTokenSource with no logic change. Fixes #32768
It's not easy to trigger but following repro works fairly reliably
using System;
using System.Threading;
class MainClass
{
public static void Main (string [] args)
{
var r = new Random ();
for (int i = 0, total =
10000000; i < total; ++i) {
if (i % 50 == 0)
Console.WriteLine ("{0}/{1}", i, total);
var c1 = new CancellationTokenSource ();
var wh = c1.Token.WaitHandle;
GC.Collect ();
c1.CancelAfter (r.Next(5));
c1.Dispose ();
}
}
}
It crashes like
Unhandled Exception:
System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'System.Threading.ManualResetEvent'.
at System.Threading.WaitHandle.CheckDisposed () <0x1f95be0 + 0x0005c> in <filename unknown>:0
at System.Threading.EventWaitHandle.Set () <0x1f8d320 + 0x0007d> in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.Threading.EventWaitHandle:Set ()
at System.Threading.CancellationTokenSource.NotifyCancellation (Boolean throwOnFirstException) <0x1d92c70 + 0x00084> in <filename unknown>:0
at System.Threading.CancellationTokenSource.Cancel (Boolean throwOnFirstException) <0x1d92330 + 0x00030> in <filename unknown>:0
at System.Threading.CancellationTokenSource.Cancel () <0x1d92300 + 0x00025> in <filename unknown>:0
at System.Threading.CancellationTokenSource.TimerCallbackLogic (System.Object obj) <0x1d925c0 + 0x0005d> in <filename unknown>:0
Marek Safar [Thu, 14 Jan 2016 13:37:27 +0000 (14:37 +0100)]
Compute InvariantCaseInsensitiveHashCode without any culture data initialization. Fixes #37583
Rolf Bjarne Kvinge [Fri, 8 Jan 2016 18:49:06 +0000 (19:49 +0100)]
Add support for intercepting threadpool work.
This is used to Xamarin.iOS to wrap threadpool work in an NSAutoreleasePool.
Rolf Bjarne Kvinge [Wed, 16 Dec 2015 18:16:31 +0000 (19:16 +0100)]
Add feature define for multiple appdomains.
Marek Safar [Mon, 4 Jan 2016 13:53:39 +0000 (14:53 +0100)]
Remove WindowsBase type forwarders from mobile profile
Alexander Köplinger [Thu, 24 Dec 2015 12:21:36 +0000 (13:21 +0100)]
Revert "[System] Mono friendly QEncodedStream"
This reverts commit
5a7abfc46054c02fabde6398b7514a0fcff06cb7.
The code should be added to Mono's Uri instead.
Alexander Köplinger [Thu, 24 Dec 2015 02:24:12 +0000 (03:24 +0100)]
Add a few MONO comments for System.Net.Sockets
Alexander Köplinger [Thu, 24 Dec 2015 00:25:25 +0000 (01:25 +0100)]
Mono friendly QEncodedStream
Mono's Uri class doesn't have IsAsciiLetter, so we need to copy the MS implementation into QEncodedStream.
Marek Safar [Mon, 14 Dec 2015 12:27:08 +0000 (13:27 +0100)]
Fix invariant text info hashcode builder. Fixes #36786
Marek Safar [Mon, 7 Dec 2015 08:17:13 +0000 (09:17 +0100)]
Cannot use regex fallback as its implementations is incompatible
Marek Safar [Fri, 4 Dec 2015 22:24:49 +0000 (17:24 -0500)]
Disable regex fallback on Mono
dotnet-bot [Fri, 4 Dec 2015 19:31:10 +0000 (11:31 -0800)]
Update Reference Sources to .NET Framework 4.6.1
Marek Safar [Thu, 3 Dec 2015 19:11:54 +0000 (14:11 -0500)]
Mono exception to SocketException
Zoltan Varga [Thu, 3 Dec 2015 02:59:22 +0000 (21:59 -0500)]
Remove a workaround for a JIT limitation which doesn't exist any more.
Sebastien Pouliot [Fri, 27 Nov 2015 21:23:28 +0000 (16:23 -0500)]
Disable use of Win32 specific p/invokes when built for the mobile profile
Sebastien Pouliot [Thu, 26 Nov 2015 16:21:47 +0000 (11:21 -0500)]
Do not include a win32-p/invoke call (RegCloseKey) for the mobile profile
Sebastien Pouliot [Wed, 25 Nov 2015 22:08:21 +0000 (17:08 -0500)]
Use DISABLE_CAS_USE to remove the use of several *Permission calls (forcibly removed by the linker on XI) [#36255]
Tarek Mahmoud Sayed [Wed, 12 Aug 2015 19:50:14 +0000 (12:50 -0700)]
Port the DateTime parser fix from the Desktop
This change is fixing the DateTime parser in cases of date/time strings for cultures which has the date and time separators are same. This happen with Norway, Serbia and Finland cultures
[tfs-changeset:
1513801]
Miguel de Icaza [Thu, 19 Nov 2015 14:09:57 +0000 (09:09 -0500)]
Bring from CoreFX the
f813aa2e9a5d927d121d6bdca467e10e9a6e0c9b fix for Asin and Acos
Rolf Bjarne Kvinge [Wed, 18 Nov 2015 13:11:48 +0000 (14:11 +0100)]
Thread.Interrupt is not dependent on MONO_FEATURE_THREAD_SUSPEND_RESUME.