Alex Rønne Petersen [Wed, 18 Mar 2015 16:25:27 +0000 (17:25 +0100)]
[profiler] Don't build the profiler on Windows.
Marek Safar [Wed, 18 Mar 2015 11:00:47 +0000 (12:00 +0100)]
[corlib] Update mobile tests
Marek Safar [Wed, 18 Mar 2015 10:57:30 +0000 (11:57 +0100)]
[corlib] Default Egypt calendar is gregorian. Fixes #27725
João Matos [Wed, 18 Mar 2015 09:26:14 +0000 (09:26 +0000)]
Merge pull request #1637 from soimort/fix-build
Fix build on Linux and Windows
Mort Yao [Wed, 18 Mar 2015 08:57:11 +0000 (16:57 +0800)]
[runtime] Fix build for Linux
Mort Yao [Wed, 18 Mar 2015 08:42:43 +0000 (16:42 +0800)]
[runtime] Add missing semicolon in mono_rand_try_get_bytes ()
Marek Safar [Wed, 18 Mar 2015 08:58:58 +0000 (09:58 +0100)]
[corlib] Disable more remoting code for mobile
Marek Safar [Wed, 18 Mar 2015 08:58:24 +0000 (09:58 +0100)]
Revert "Fixes build"
This reverts commit
0f25e60f9c4c550e5274ee77b5564f1bc7f6d314.
Marek Safar [Wed, 18 Mar 2015 08:47:09 +0000 (09:47 +0100)]
Fixes build
Marek Safar [Wed, 18 Mar 2015 08:18:39 +0000 (09:18 +0100)]
[System.Runtime.Serialization.Formatters.Soap] Updated to work with reference sources serialization
Zoltan Varga [Wed, 18 Mar 2015 01:18:54 +0000 (21:18 -0400)]
[gsharedvt] Make sure the gsharedvt method we use in class_type_info () is not partially shared.
Alex Rønne Petersen [Tue, 17 Mar 2015 22:02:00 +0000 (23:02 +0100)]
Merge pull request #1636 from alexrp/profiler-stuff
[profiler] Redesign buffer flushing and method reporting.
Alex Rønne Petersen [Tue, 17 Mar 2015 22:01:50 +0000 (23:01 +0100)]
Merge pull request #1635 from alexrp/core-clr-properties
Implement CoreCLR security properties on reflection info types.
Zoltan Varga [Tue, 17 Mar 2015 21:20:03 +0000 (17:20 -0400)]
Atsushi Eno [Tue, 17 Mar 2015 20:16:25 +0000 (04:16 +0800)]
[xlinq] add test from bug #18171 (partly).
Ludovic Henry [Tue, 17 Mar 2015 19:16:44 +0000 (19:16 +0000)]
[threadpool] Add licensing header
Ludovic Henry [Fri, 6 Feb 2015 23:50:11 +0000 (18:50 -0500)]
[threadpool] Integrate the microsoft ThreadPool into it's own System.Threading.Microsoft namespace
This will let us have both the Mono and the Microsoft ThreadPool at the same time.
To switch to the Microsoft one, set the MONO_THREADPOOL environment variable to "microsoft". It will default to the Mono one.
Support by the runtime is also implemented.
Ludovic Henry [Tue, 17 Mar 2015 11:59:04 +0000 (11:59 +0000)]
[runtime] Move random generator code out of icall, to utils so it can be used by the runtime
Ludovic Henry [Fri, 27 Feb 2015 20:34:23 +0000 (15:34 -0500)]
[runtime] Add CPU usage utility function
Zoltan Varga [Tue, 17 Mar 2015 18:20:19 +0000 (14:20 -0400)]
[jit] Avoid disabling direct calls to icalls on arm64+llvm.
Marek Safar [Tue, 17 Mar 2015 18:16:34 +0000 (19:16 +0100)]
[corlib] Bump corlib version for
8d097349b3289b35c6052d1a8612e33de2a7bbbf (icall added)
Marek Safar [Tue, 17 Mar 2015 18:14:12 +0000 (19:14 +0100)]
[System.Runtime.Remoting] Update internal TypeFilter levels
João Matos [Tue, 17 Mar 2015 18:15:40 +0000 (18:15 +0000)]
[genproj] Re-generated the class library projects.
João Matos [Tue, 17 Mar 2015 18:11:21 +0000 (18:11 +0000)]
[genproj] Remove System.Xml pre-processing file as it's not needed anymore.
We do not rely on jay for this anymore since the switch of System.Xml to reference sources.
João Matos [Tue, 17 Mar 2015 12:23:55 +0000 (12:23 +0000)]
[genproj] Ignore temporary project generation inputs.
João Matos [Tue, 17 Mar 2015 12:23:28 +0000 (12:23 +0000)]
[genproj] Added support for mcs "/-getresourcestrings" switch.
João Matos [Tue, 17 Mar 2015 12:22:37 +0000 (12:22 +0000)]
[genproj] Remove non .NET 4.5 solutions from being generated.
Marek Safar [Tue, 17 Mar 2015 16:42:11 +0000 (17:42 +0100)]
[corlib] Fixes remoting response message arguments assignment
Marek Safar [Tue, 17 Mar 2015 16:02:06 +0000 (17:02 +0100)]
[corlib] Keep only one remoting MessageDictionary, it's special cased in binary serialization
Alex Rønne Petersen [Mon, 9 Mar 2015 18:03:44 +0000 (19:03 +0100)]
[profiler] Redesign buffer flushing and method reporting.
The main goal of this change is to ensure that all methods have a `TYPE_JIT`
event emitted in the stream before they are referenced in other events. Before
this change, `TYPE_JIT` events could arrive out of order or not be emitted at
all because of generic sharing.
We now use a separate thread for writing log buffers to the output file.
Whenever a method is referenced in a TLS log buffer, we add it to a TLS list of
methods. When we ship the TLS log buffer off to the writer thread, we also send
the TLS list of methods. The writer thread first goes over all the methods and,
if some of them haven't had a `TYPE_JIT` event emitted yet, emits them to a
temporary buffer which is flushed just before flushing the main log buffer.
This approach ensures that `TYPE_JIT` events will *always* come before the
events that reference them.
Bookkeeping of which methods have been emitted to the output stream is done in
a global, concurrent hash table. Before a thread adds a method to its TLS list
of methods, it checks if the method is in the hash table. If it is, we know
that the method has already been emitted to the output stream, so it isn't
added to the list. The writer thread is the only thread that updates the hash
table (which happens when it flushes the temporary method buffer). So,
eventually, all TLS method lists will end up being empty because all methods
have been emitted to the output stream.
Alex Rønne Petersen [Mon, 9 Mar 2015 18:01:04 +0000 (19:01 +0100)]
[profiler] Make `perf` syscall work on ARM64.
Alex Rønne Petersen [Mon, 9 Mar 2015 18:00:32 +0000 (19:00 +0100)]
[profiler] Clean up some unused declarations.
Alex Rønne Petersen [Thu, 12 Mar 2015 23:36:20 +0000 (00:36 +0100)]
[mini] Expose mono_aot_get_method () as an API-unstable function.
This will be used by the profiler.
Alex Rønne Petersen [Mon, 9 Mar 2015 17:58:25 +0000 (18:58 +0100)]
[mini] Expose an API-unstable mono_get_jit_info_from_method () function.
This will be used by the profiler.
Alex Rønne Petersen [Mon, 9 Mar 2015 17:57:25 +0000 (18:57 +0100)]
[mcs] Ignore .dep_dirs-* files.
Alex Rønne Petersen [Mon, 9 Mar 2015 17:56:49 +0000 (18:56 +0100)]
[configure] Add a `--disable-perf-events` flag to disable `perf` on Linux.
Alex Rønne Petersen [Tue, 17 Mar 2015 15:13:44 +0000 (16:13 +0100)]
[corlib] Implement security properties on FieldInfo/MethodInfo.
Alex Rønne Petersen [Tue, 17 Mar 2015 14:25:30 +0000 (15:25 +0100)]
[coreclr] Add mono_security_core_clr_field_level () function.
Marcos Henrich [Tue, 17 Mar 2015 12:49:11 +0000 (12:49 +0000)]
[System] Fixed SafeSocketHandle concurrency problem.
When ReleaseHandle was called by RegisterForBlockingSyscall's DangerousRelease the current thread would be in blocking_threads but there would be no blocking system call to interrupt.
Marcos Henrich [Tue, 17 Mar 2015 11:20:36 +0000 (11:20 +0000)]
[runtime] Assert that thread_resume returns KERN_SUCCESS.
Marcos Henrich [Tue, 17 Mar 2015 11:05:21 +0000 (11:05 +0000)]
[runtime] Fixed thread_abort_safely not interrupting accept.
For some reason accept can only be interrupted by thread_abort.
We do not want to use thread_abort by default because it may abort non-atomic operations at an arbitrary point.
The problem was fixed by calling thread_abort_safely, and make sure the target thread was interrupted by calling thread_abort afterwards.
In this change thread_abort is only called if thread_abort_safely returns KERN_SUCCESS, which *should* mean that the target thread has already left the kernel code by the time thread_abort is called.
Neale Ferguson [Tue, 17 Mar 2015 14:35:21 +0000 (10:35 -0400)]
s390x-codegen.h : Fix instruction definition and add instruction format variant
mini-s390x.h : Enable profile coverage
suport-s390x.h : Add processor facility definitions
Alexander Kyte [Mon, 16 Mar 2015 21:26:53 +0000 (17:26 -0400)]
[corlib] Fixed change in
4b4ddb66b3 that prevented use of remoting fast path.
Marek Safar [Tue, 17 Mar 2015 13:03:39 +0000 (14:03 +0100)]
[system.date] Fix DefaultValue expression serialization
Atsushi Eno [Tue, 17 Mar 2015 10:56:10 +0000 (18:56 +0800)]
[xlinq] add test from bug #14856.
Atsushi Eno [Tue, 17 Mar 2015 10:55:34 +0000 (18:55 +0800)]
[xml] add test from bug #2917.
Marek Safar [Tue, 17 Mar 2015 08:37:01 +0000 (09:37 +0100)]
[corlib] Always pass ProxyCheckCast check
Marek Safar [Tue, 17 Mar 2015 08:36:39 +0000 (09:36 +0100)]
[corlib] Add missing public type
Marek Safar [Tue, 17 Mar 2015 07:03:08 +0000 (08:03 +0100)]
[corlib] Serialization from reference sources
Zoltan Varga [Tue, 17 Mar 2015 06:32:06 +0000 (02:32 -0400)]
[jit] Add exception checks after direct calls to icalls by inlining the wrapper.
Zoltan Varga [Tue, 17 Mar 2015 04:55:02 +0000 (00:55 -0400)]
[jit] Disable direct icalls for now to fix the build.
Zoltan Varga [Tue, 17 Mar 2015 04:54:15 +0000 (00:54 -0400)]
[jit] Split the CEE_CALLI conv into a separate switch case to simplify the logic in the CEE_CALL/CEE_CALLVIRT case.
Zoltan Varga [Tue, 17 Mar 2015 04:05:46 +0000 (00:05 -0400)]
[amd64] Fix aot support in throw_pending_exception ().
Zoltan Varga [Tue, 17 Mar 2015 02:13:47 +0000 (22:13 -0400)]
[runtime] Allocate objects outside the lock in mono_string_is_interned_lookup ().
Zoltan Varga [Tue, 17 Mar 2015 01:34:41 +0000 (21:34 -0400)]
Merge pull request #1633 from BrzVlad/fix-w32-pinvoke
[x86] Handle stack pop done by native stdcalls.
Zoltan Varga [Tue, 17 Mar 2015 00:34:46 +0000 (20:34 -0400)]
[jit] Add support for directly calling normal icalls. Enable it for a few perf-sensitive classes like Math.
Vlad Brezae [Sat, 14 Mar 2015 02:31:34 +0000 (19:31 -0700)]
[x86] Handle stack pop done by native stdcalls.
The problem was caused with the introduction of the pushless backend. We have to compensate for the arguments being popped by native stdcall callees, to keep param_area from shrinking. Fixes #27597
Zoltan Varga [Mon, 16 Mar 2015 21:49:01 +0000 (17:49 -0400)]
[aot] Enable direct calls to icalls in aot mode, disable them when the 'direct-calls' aot option is used.
Zoltan Varga [Mon, 16 Mar 2015 21:24:40 +0000 (17:24 -0400)]
[aot] Remove obsolete 'iphone-abi' option.
Zoltan Varga [Mon, 16 Mar 2015 20:23:00 +0000 (16:23 -0400)]
[io-layer] Avoid the usage of atexit (), clean up handles normally.
Marek Safar [Mon, 16 Mar 2015 19:09:19 +0000 (20:09 +0100)]
[system] Update wrong test
Alexander Kyte [Mon, 16 Mar 2015 15:10:20 +0000 (11:10 -0400)]
Added/modified tests for marshalling and remoting of referencesource StringBuilder implementation.
Alexander Kyte [Mon, 16 Mar 2015 15:06:35 +0000 (11:06 -0400)]
[Runtime] Altered the marshalling logic for StringBuilders to handle referencesource version.
Alexander Kyte [Wed, 11 Mar 2015 18:16:15 +0000 (14:16 -0400)]
Revert "Revert "[corlib] StringBuilder from reference sourcers""
This reverts commit
772c45aaf9f3fb6c0456e3f09031ae101cfe67d1.
Conflicts:
external/binary-reference-assemblies
mcs/class/corlib/Makefile
mcs/class/corlib/System.Text/StringBuilder.cs
mcs/class/corlib/corlib.dll.sources
João Matos [Mon, 16 Mar 2015 14:57:38 +0000 (14:57 +0000)]
[mini] Fixed the build.
Missed this one on https://github.com/mono/mono/commit/
86155e72da0aa0cc1e546dd2dd5acee0db398c38.
João Matos [Mon, 16 Mar 2015 13:54:43 +0000 (13:54 +0000)]
[runtime] Fixed thread async suspend on Windows.
Move the ResumeThread () calls out of the assert and check for 0 (which means that the thread was resumed) instead of using the Mach-specific KERN_SUCCESS on Windows.
Fixes the Windows/MSVC build.
Related to https://github.com/mono/mono/commit/
296347f.
João Matos [Mon, 16 Mar 2015 13:53:01 +0000 (13:53 +0000)]
[runtime] Added missing function `mono_threads_core_interrupt` on Windows.
João Matos [Mon, 16 Mar 2015 13:50:38 +0000 (13:50 +0000)]
[msvc] Renamed ResumeThread since it conflicts with a Windows function.
Marek Safar [Mon, 16 Mar 2015 10:01:37 +0000 (11:01 +0100)]
[corlib] Attribute from reference sources. Fixes #27982 and similar
Zoltan Varga [Mon, 16 Mar 2015 05:12:36 +0000 (01:12 -0400)]
[aot] Bump aot file format version.
Zoltan Varga [Mon, 16 Mar 2015 05:06:48 +0000 (01:06 -0400)]
[aot] Fix mono_aot_method_hash () to avoid depending on the name of the type arguments used to inflate classes.
Zoltan Varga [Mon, 16 Mar 2015 03:04:31 +0000 (23:04 -0400)]
Fix the cross compiler build.
Zoltan Varga [Mon, 16 Mar 2015 02:46:54 +0000 (22:46 -0400)]
Miguel de Icaza [Sun, 15 Mar 2015 14:54:26 +0000 (10:54 -0400)]
Merge pull request #1617 from keneanung/OdbcCommandExceptionOnNoData
Add NoData as valid return state for Statements with params
Miguel de Icaza [Sun, 15 Mar 2015 14:52:07 +0000 (10:52 -0400)]
Merge pull request #1627 from mono/tooltask-fixes
[Microsoft.Build.Utilities] Make properties in ToolTask available in 4.0 xbuild
João Matos [Sun, 15 Mar 2015 09:16:45 +0000 (09:16 +0000)]
Merge pull request #1628 from akoeplinger/resxresourcereader-order
[WinForms] Make ResXResourceReader enumerator return values in same order as resx
Zoltan Varga [Sun, 15 Mar 2015 07:08:45 +0000 (03:08 -0400)]
[jit] Add support for char/boolean to mini_type_get_underlying_type ().
Zoltan Varga [Sun, 15 Mar 2015 06:38:55 +0000 (02:38 -0400)]
[aot] Rename the find_extra_method... functions to find_aot_method...
Zoltan Varga [Sun, 15 Mar 2015 06:17:40 +0000 (02:17 -0400)]
[jit] Fix the detection of whenever we are compiling a gsharedvt method in the presence of partial shared methods.
Zoltan Varga [Sun, 15 Mar 2015 02:08:03 +0000 (22:08 -0400)]
[runtime] Remove ldscript support, its no longer needed with explicit visibility declarations.
Alexander Köplinger [Sun, 15 Mar 2015 01:19:48 +0000 (02:19 +0100)]
[WinForms] Make ResXResourceReader enumerator return values in same order as resx
This fixes an issue when building dotnet/corefx and all the SR.cs files are modified
because Mono used a HashTable internally in ResXResourceReader and it returned the
elements in a different order than MS.NET.
Even though this isn't explicitly mentioned in the docs, the MS.NET implementation returns
the elements in the same order as they appear in the resx and we should do the same.
Zoltan Varga [Sat, 14 Mar 2015 20:16:46 +0000 (16:16 -0400)]
[jit] Set the names of the gparams used during generic sharing so it includes the type they are constrained to.
Zoltan Varga [Sat, 14 Mar 2015 19:12:49 +0000 (15:12 -0400)]
Fix the build.
Alexander Köplinger [Sat, 14 Mar 2015 18:10:06 +0000 (19:10 +0100)]
[Microsoft.Build.Utilities] Make properties in ToolTask available in 4.0 xbuild
The properties were introduced with MSBuild 4.0 (e.g. https://msdn.microsoft.com/en-us/library/microsoft.build.utilities.tooltask.logstandarderroraserror(v=vs.100).aspx) and shouldn't be inside a XBUILD_12 ifdef.
Zoltan Varga [Sat, 14 Mar 2015 06:17:57 +0000 (02:17 -0400)]
Fix the aot compiler.
Rodrigo Kumpera [Fri, 13 Mar 2015 19:35:47 +0000 (12:35 -0700)]
[threading] Fix signal registration on posix.
Rolf Bjarne Kvinge [Fri, 13 Mar 2015 17:01:45 +0000 (18:01 +0100)]
Fix spelling.
João Matos [Fri, 13 Mar 2015 17:14:40 +0000 (17:14 +0000)]
[aot] Wrap the commands we pass to Windows's system() in double quotes.
We need an extra set of quotes around the whole command to properly handle commands
with spaces since internally the command is called through "cmd /c.
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=27899.
João Matos [Fri, 13 Mar 2015 17:10:54 +0000 (17:10 +0000)]
[aot] Escape the command executables with quotes to deal properly with spaces in paths.
João Matos [Fri, 13 Mar 2015 17:07:37 +0000 (17:07 +0000)]
[aot] Ensure the LLVM tools path ends with a directory separator appropriate to the system.
Marek Safar [Fri, 13 Mar 2015 16:39:10 +0000 (17:39 +0100)]
[system] Make httplistener to accept case insensitive protocols. Fixes #26858
Rolf Bjarne Kvinge [Fri, 13 Mar 2015 15:43:55 +0000 (16:43 +0100)]
[mono-api-html] Render generic parameter constraints.
Makes changed constraints show up in diffs.
Marcos Henrich [Fri, 13 Mar 2015 12:39:26 +0000 (12:39 +0000)]
[System] Replaced static constructor with field initialisation.
João Matos [Fri, 13 Mar 2015 09:42:22 +0000 (09:42 +0000)]
Merge pull request #1606 from alexanderkyte/debug-finalizers
[Runtime] Added logging around finalizers
João Matos [Fri, 13 Mar 2015 09:39:48 +0000 (09:39 +0000)]
Merge pull request #1618 from alexanderkyte/remoting-fix
[Runtime] Fixed remoting bug where too specific a type reflected.
Zoltan Varga [Fri, 13 Mar 2015 06:41:34 +0000 (02:41 -0400)]
[jit] Use mini_get_underlying_type () in a few places in the amd64 backend.
Zoltan Varga [Fri, 13 Mar 2015 05:27:54 +0000 (01:27 -0400)]
[jit] Finish support for valuetype based sharing in JIT mode, not enabled yet.
Zoltan Varga [Thu, 12 Mar 2015 23:29:45 +0000 (19:29 -0400)]
[jit] Add a new MONO_RGCTX_INFO_ELEMENT_KLASS info type and use it instead of MONO_RGCTX_INFO_KLASS on klass->element_class, the latter doesn't work with valuetype sharing.
Rodrigo Kumpera [Mon, 2 Feb 2015 16:04:37 +0000 (11:04 -0500)]
[metadata] Handle denormalized value type encoding of builtins.
All primitive types have a short encoding format that avoid using
a typeref token.
It's possible to encode them in another, longer, form with ELEMENT_TYPE_VALUETYPE + a typeref token.
Up to now, this was never seen in the wild so we never supported it.
This patch allows long form encoding of primitives.
Rodrigo Kumpera [Mon, 2 Feb 2015 16:04:37 +0000 (11:04 -0500)]
[threading] Fix a race condition between managed suspend/abort and GC STW.
STW and managed suspend share a lock to ensure there is only one active suspend initiator.
This originally caused a problem in the managed suspend path as it could be async suspended while it was
in the middle of the suspend protocol (check if top of stack is managed, install abort handlers, etc).
This was worked around by putting that inside a suspend critical section. The resulting code was horrible
as suspend boundaries became unstructured (yeah, pretty stupid idea on my end). Not only that but it had
a race condition.
If a thread doing managed suspend raced with a STW and lost, it would block on the global suspend lock to
finish. That thread would be blocked inside a critical section - the single thing you must not do inside one.
This could be reproduced by stressing mono/tests/sgen-new-threads-dont-join-stw.
The solution is to execute the managed suspend sequence in the same fashion as of a STW. IOW, take locks,
suspend, do stuff, maybe resume and drop locks.
The critical part is the "do stuff" one, which is different for abort and suspend, but everything else
is the same. So we wrap that into a callback and put the common parts in mono-threads. This gives
us structured locking and suspend boundaries.
This won't cause a GC to take longer to init as the critical section would block the STW from progressing
anyways.