Rodrigo Kumpera [Mon, 17 Aug 2015 13:39:49 +0000 (09:39 -0400)]
Merge pull request #1870 from saper/langinfo_h
[eglib] Prefer <langinfo.h> to <localcharset.h>
Marek Safar [Mon, 17 Aug 2015 09:42:43 +0000 (11:42 +0200)]
[mcs] Reduced statement expressions can still be used as statements. Fixes #33142
Zoltan Varga [Sun, 16 Aug 2015 23:41:04 +0000 (19:41 -0400)]
[jit] Avoid taking the domain lock in mono_icall_get_wrapper_full (), do most work outside the loader lock.
Zoltan Varga [Sun, 16 Aug 2015 23:32:07 +0000 (19:32 -0400)]
[runtime] Remove unused mono_delegate_section variable.
Zoltan Varga [Sun, 16 Aug 2015 23:22:27 +0000 (19:22 -0400)]
[runtime] Change a few g_assert (foo != NULL) to g_assert (foo).
Zoltan Varga [Sun, 16 Aug 2015 21:02:45 +0000 (17:02 -0400)]
[coop] Make type_initialization_lock () a blocking lock, since some critical sections protected by it can block. Reorganize mono_runtime_class_init_full (), avoid putting the majority of the function inside an if.
Zoltan Varga [Sun, 16 Aug 2015 21:01:39 +0000 (17:01 -0400)]
[coop] Make threadpool->active_threads_lock a blocking lock, since some critical sections protected by it can block.
Zoltan Varga [Sun, 16 Aug 2015 20:42:28 +0000 (16:42 -0400)]
Merge pull request #1981 from akoeplinger/ilasm
[ilasm] Add stubs for the "legacy library" and "auto" keywords in .assembly
Alexander Köplinger [Sun, 16 Aug 2015 15:58:53 +0000 (17:58 +0200)]
[ilasm] Add stubs for the "auto" keyword in .assembly
Example IL: ".assembly extern mscorlib {auto}"
Alexander Köplinger [Sun, 16 Aug 2015 15:58:53 +0000 (17:58 +0200)]
[ilasm] Add stubs for the "legacy library" keyword in .assembly
Example IL:
".assembly extern legacy library mscorlib {}"
".assembly legacy library test {}"
Zoltan Varga [Sun, 16 Aug 2015 02:26:59 +0000 (22:26 -0400)]
[bcl] Fix test failures in the System.ServiceModel tests after
9ffb681d06858ed5474320ca2e7a82ccf2ce8be3.
Zoltan Varga [Sun, 16 Aug 2015 01:54:56 +0000 (21:54 -0400)]
Merge pull request #1979 from kumpera/conc_fix
[utils] Change mono_conc_hashtable write operations to rely on external locking.
Zoltan Varga [Sat, 15 Aug 2015 18:21:51 +0000 (14:21 -0400)]
Merge pull request #1980 from akoeplinger/fix-monoevent
[corlib] Implement MonoEvent Module property
Alexander Köplinger [Sat, 15 Aug 2015 18:01:31 +0000 (20:01 +0200)]
[corlib] Implement MonoEvent Module property
Add tests for Event-, Method- and ConstructorInfo to verify accessing .Module works (the latter two already worked before this change).
Rodrigo Kumpera [Fri, 14 Aug 2015 23:20:37 +0000 (19:20 -0400)]
[utils] Change mono_conc_hashtable write operations to rely on external locking.
The original design was to pass a lock to the mono_conc_hashtable constructor and
then the write operations would do locking themselves.
That turned out to be a problem for two reasons:
First, it hidden the fact that locking was happening. Every other data structure in
the runtime rely on the caller to perform locking - thus that design ended up been
a lie.
Second, under coop, taking the lock became a problem as leak locks should be taken
in GC Safe mode and other locks should be taken under GC Unsafe mode. Taking a lock
in the wrong GC mode makes the suspend watchdog bark really loudly.
The runtime, funny enough has 2 usages of the conc hashtable, one with the image lock
and one with the domain lock - and each must be taken in a different GC mode. That
meant that either overcomplicating the design, or just removing locking from it.
This commit does that. It removes the mutex from mono_conc_hashtable and hoist locking
around the calls that used to do it.
Zoltan Varga [Sat, 15 Aug 2015 04:37:12 +0000 (00:37 -0400)]
[jit] Reorganize the code in mini.c to reduce the number of DISABLE_JIT blocks.
Zoltan Varga [Sat, 15 Aug 2015 03:12:03 +0000 (23:12 -0400)]
[jit] Remove some dead code.
Zoltan Varga [Sat, 15 Aug 2015 03:02:53 +0000 (23:02 -0400)]
[sdb] Document the locks protecting various data structures.
Zoltan Varga [Sat, 15 Aug 2015 02:55:58 +0000 (22:55 -0400)]
[sdb] Simplify the locking in set_breakpoint() a bit.
Zoltan Varga [Sat, 15 Aug 2015 02:50:57 +0000 (22:50 -0400)]
[sdb] Revert
6f41607cc3b9c34e54716efe35d22d31132545d9, simplify the code inside the domain lock instead.
Zoltan Varga [Sat, 15 Aug 2015 02:24:58 +0000 (22:24 -0400)]
[sdb] Protect MonoJitDomainInfo->seq_points by the loader lock instead of the domain dock, since accesses to it from sdb are not simple code paths.
Zoltan Varga [Sat, 15 Aug 2015 02:10:21 +0000 (22:10 -0400)]
[sdb] Make the locking simpler and finer grained.
Zoltan Varga [Fri, 14 Aug 2015 23:02:24 +0000 (19:02 -0400)]
[runtime] Initialize the class name cache using double checked locking.
Zoltan Varga [Fri, 14 Aug 2015 22:47:55 +0000 (18:47 -0400)]
[gsharedvt] Don't pass non-variable size gsharedvt types by ref. Fixes #32931.
Zoltan Varga [Fri, 14 Aug 2015 22:36:47 +0000 (18:36 -0400)]
[jit] Fix a crash by using mono_field_get_type () instead of accessing field->type directly. Fixes #32907.
Rodrigo Kumpera [Fri, 14 Aug 2015 06:28:09 +0000 (02:28 -0400)]
[coop] Fix ves_icall_System_IO_MonoIO_GetFileSystemEntries.
We were calling mono_string_to_utf8 while in GC safe mode.
It's technically ok'ish to do it as it will probably be pinned by the called, but
we're better off by reducing the surface as much as we can.
Rodrigo Kumpera [Fri, 14 Aug 2015 01:55:27 +0000 (21:55 -0400)]
[coop] Fix crasher during shutdown initialization.
Make it possible to suspend the main thread when starting the shutdown of the thread pool.
The problem is that cleanup can take an unbound amount of time.
Rodrigo Kumpera [Thu, 13 Aug 2015 05:54:59 +0000 (01:54 -0400)]
[coop] Add a workaround in mono_marshal_get_thunk_invoke_wrapper.
This is a workaround until we figure out what to do with the embedding API.
We ensure we transition the executed managed code into unsafe mode.
Maybe the right call would be to assert if the caller is not already on it, but that's too soon of a decision to make.
Rodrigo Kumpera [Thu, 13 Aug 2015 04:18:26 +0000 (00:18 -0400)]
[coop] Fix coop support for mono_method_get_unmanaged_thunk.
Ensure we create the wrapper in GC Unsafe mode, which is the default one for runtime code.
Rodrigo Kumpera [Thu, 13 Aug 2015 04:18:01 +0000 (00:18 -0400)]
[checked-build] Annotate object.c with GC state asserts.
Rodrigo Kumpera [Fri, 14 Aug 2015 18:50:35 +0000 (14:50 -0400)]
[coop] Add performance counters for frequent transitions.
Rodrigo Kumpera [Tue, 11 Aug 2015 20:53:24 +0000 (16:53 -0400)]
[checked-build] Initial implementation of checked build asserts.
To enable checked builds pass --with-checked-build=yes to autogen/configure.
The current set of checked build macros verify the GC state on function entry.
Rodrigo Kumpera [Wed, 12 Aug 2015 05:31:44 +0000 (01:31 -0400)]
[threads] Add function to stringify thread state names.
Rodrigo Kumpera [Tue, 11 Aug 2015 21:55:32 +0000 (17:55 -0400)]
[coop] Make state-machine asserts print the tid as it's the same used by other parts of the runtime.
Zoltan Varga [Fri, 14 Aug 2015 18:05:24 +0000 (14:05 -0400)]
[arm] Add support for split reg-stack argument passing to the dyn call code. Fixes #33080.
Rolf Bjarne Kvinge [Fri, 14 Aug 2015 15:38:21 +0000 (17:38 +0200)]
Fix configure.ac to detect WatchOS and define TARGET_WATCHOS.
Marcos Henrich [Fri, 14 Aug 2015 09:08:23 +0000 (10:08 +0100)]
Merge pull request #1972 from esdrubal/proc_pidpath
[runtime] GetModuleFileNameEx
Alex Rønne Petersen [Fri, 14 Aug 2015 08:44:56 +0000 (10:44 +0200)]
Merge pull request #1975 from alexrp/profiler-gch-bt
[profiler] Add GC handle events with backtraces.
Sebastien Pouliot [Thu, 13 Aug 2015 20:43:00 +0000 (16:43 -0400)]
[tests] Remove CWL from test catch clause as it can be confused with a real error [#32593]
Ludovic Henry [Mon, 25 May 2015 14:12:32 +0000 (11:12 -0300)]
[referencesource] Import System.Math
Rolf Bjarne Kvinge [Thu, 13 Aug 2015 15:31:34 +0000 (17:31 +0200)]
Add specific configure option to enable the WatchOS BCL libraries.
Rolf Bjarne Kvinge [Thu, 13 Aug 2015 09:13:53 +0000 (11:13 +0200)]
Build an initial version of System.Net.Http.dll for monotouch as part of the regular BCL build.
We have Facade assemblies that depend on System.Net.Http.dll to exist, so
we can't delay building it (at least one version of it).
João Matos [Thu, 13 Aug 2015 15:07:17 +0000 (16:07 +0100)]
Added support for WatchOS's armv7k to configure.ac.
Marek Habersack [Mon, 3 Aug 2015 14:48:25 +0000 (10:48 -0400)]
Posix RTS test fixes and Android compatibility
Android's libc (bionic) defines the _GNU_SOURCE macro but fails to adhere
to the GNU sematics in (at least) one case - the strerror_r function.
The function follows XSI semantics instead of the GNU one which caused our
code to segfault on Android. This patch special-cases Android to use the XSI
semantics for strerror_r. This un-breaks some POSX real-time singals tests.
It also makes provisions for detecting whether the real-time signals are safe
to use on the current platform. They are safe for all platforms desktop Mono
runs on, but they're not safe on most Android platforms.
Marek Safar [Thu, 13 Aug 2015 09:17:25 +0000 (11:17 +0200)]
[corlib] Remove unused code
Alex Rønne Petersen [Wed, 12 Aug 2015 06:20:39 +0000 (08:20 +0200)]
[profiler] Add GC handle events with backtraces.
Alex Rønne Petersen [Wed, 12 Aug 2015 04:28:16 +0000 (06:28 +0200)]
[profiler] Remove CodeAnalyst profiler module.
This product has been discontinued by AMD and we don't even have support for
building this profiler module in the build system anyway; chances are pretty
good that bitrot has set in.
Zoltan Varga [Wed, 12 Aug 2015 02:26:56 +0000 (22:26 -0400)]
[jit] Add another suspend check to the JIT.
Zoltan Varga [Wed, 12 Aug 2015 01:49:45 +0000 (21:49 -0400)]
[jit] Avoid asserts during stack walks if the thread is not attached.
Zoltan Varga [Wed, 12 Aug 2015 01:11:40 +0000 (21:11 -0400)]
[runtime] Make sure Monitor.Enter () is always inlined since it consists only of a call to an icall.
Zoltan Varga [Tue, 11 Aug 2015 19:54:07 +0000 (15:54 -0400)]
[aot] Fix the calculate of the llvm code range for aot image with only 1 llvm method.
Jo Shields [Tue, 11 Aug 2015 18:41:23 +0000 (19:41 +0100)]
Un-revoke fix in BNC#144655 - mono-find-provides should ONLY work on GAC libraries, and any packages which break on this behaviour should be fixed - rather than generating utterly broken Provides.
(cherry picked from commit
1f4133a06f252ec1b78637dd91e49f50836cf570)
Zoltan Varga [Tue, 11 Aug 2015 18:37:47 +0000 (14:37 -0400)]
[runtime] Move the kevent() calls from KeventWatcher to the runtime, add support for interrupts.
Ludovic Henry [Tue, 11 Aug 2015 17:20:36 +0000 (14:20 -0300)]
Merge pull request #1973 from rolfbjarne/bug32947
[threadpool-ms-io] Remove unnecessary asserts. Fixes #32947.
Rolf Bjarne Kvinge [Tue, 11 Aug 2015 13:07:10 +0000 (15:07 +0200)]
[threadpool-ms-io] Remove unnecessary asserts. Fixes #32947.
Neither is_socket_async_callback nor is_async_read_handler need to
actually successfully load the classes they're comparing against;
if the classes can't be loaded, then the input class is obviously
not of that class.
This occurs when mscorlib is linked, the classes to compare against
might be linked away.
https://bugzilla.xamarin.com/show_bug.cgi?id=32947
Marcos Henrich [Tue, 11 Aug 2015 11:51:12 +0000 (12:51 +0100)]
[runtime] GetModuleFileNameEx
GetModuleFileNameEx now returns a full path instead of the process name.
Fixes #32579
Marcos Henrich [Tue, 11 Aug 2015 12:10:27 +0000 (13:10 +0100)]
Merge pull request #1952 from esdrubal/proc_name
Fixes process names trimmed to 15 chars.
Zoltan Varga [Tue, 11 Aug 2015 03:20:43 +0000 (23:20 -0400)]
[coop] Handle blocking in parked threads correctly.
Zoltan Varga [Tue, 11 Aug 2015 02:20:10 +0000 (22:20 -0400)]
[runtime] Add a missing MONO_FINISH_BLOCKING to ves_icall_System_Net_Dns_GetHostByName_internal.
Zoltan Varga [Tue, 11 Aug 2015 00:55:32 +0000 (20:55 -0400)]
[jit] Emit the seq point for filter clauses after the op_get_exc instruction.
Zoltan Varga [Mon, 10 Aug 2015 19:51:39 +0000 (15:51 -0400)]
Revert "[runtime] Move the kevent() calls from KeventWatcher to the runtime, add support for interrupts."
This reverts commit
7f4428165809bed674697d482f76c7e9446bae4e.
Revert this as icalls don't marshal kevent structures correctly.
Zoltan Varga [Mon, 10 Aug 2015 19:25:03 +0000 (15:25 -0400)]
[runtime] Remove some debug printfs.
Zoltan Varga [Mon, 10 Aug 2015 18:33:30 +0000 (14:33 -0400)]
[coop] Fix a crash introduced by
edb4d8f3faef5f5d0ad3fc639d58b4d490c82c94, some wrappers don't have wrapper infos.
Zoltan Varga [Mon, 10 Aug 2015 18:32:37 +0000 (14:32 -0400)]
[runtime] Move the kevent() calls from KeventWatcher to the runtime, add support for interrupts.
Marcos Henrich [Wed, 29 Jul 2015 15:16:03 +0000 (16:16 +0100)]
Fixes process names trimmed to 15 chars.
Process names were trimmed to 15 characters. proc_name was used to
retrieve the process name, by looking at its implementation we can see
that it returns a buffer which the size is MAXCOMLEN defined as 16.
When the proc_name result length is equal to 15 (MAXCOMLEN - 1) we now check if
proc_pidpath is able to return a longer process name.
Fixes #32539.
Rodrigo Kumpera [Mon, 10 Aug 2015 14:33:35 +0000 (10:33 -0400)]
[coop] Fix MONO_SUSPEND_CHECK to use the right variable name.
Rodrigo Kumpera [Sun, 9 Aug 2015 15:02:33 +0000 (11:02 -0400)]
[coop] Cue card now mentions that blocking has a suspend count.
Rodrigo Kumpera [Sun, 9 Aug 2015 05:55:26 +0000 (01:55 -0400)]
[coop] Don't emit safepoints in the wrapper of the polling function.
Otherwise during a collection the wrapper would call itself resulting
in a stack overflow.
Rodrigo Kumpera [Sat, 8 Aug 2015 14:17:58 +0000 (10:17 -0400)]
[coop] Switch from thread_state_init_from_sigctx to thread_state_init.
Suspend needs to work in the intermediate state where the mono-thread
is attached but not the managed thread. This happens in the startup
and cleanup paths and leads to crashes there.
The suspend initiator is now responsible to check if the thread is
attached or not. Which is easy, just check lmf/jit_tls.
Rodrigo Kumpera [Sat, 8 Aug 2015 14:15:11 +0000 (10:15 -0400)]
[coop] Add thread_state_init that initializes the thread from the current stack state.
This new function works differently that others in that it always succeed, but might
provide incomplete data in some cases - like when the thread is not attached.
Rodrigo Kumpera [Sat, 8 Aug 2015 14:12:41 +0000 (10:12 -0400)]
[coop] Attach mono-thread as early as possible.
This makes early suspend checks work. This makes it easier
to debug suspend errors by asserting on suspend fails.
Rodrigo Kumpera [Fri, 7 Aug 2015 18:58:57 +0000 (14:58 -0400)]
[configure] Add checked build configure option.
Marek Safar [Mon, 10 Aug 2015 11:03:44 +0000 (13:03 +0200)]
[corlib] Handle Module in RuntimePropertyInfo. Fixes #32815
Marek Safar [Mon, 10 Aug 2015 09:12:56 +0000 (11:12 +0200)]
[mcs] Fix string interpolation parsing where inner expression contains { } tokens. Fixes #32832
Zoltan Varga [Sun, 9 Aug 2015 02:39:13 +0000 (22:39 -0400)]
[runtime] Remove an unused functions.
Zoltan Varga [Sun, 9 Aug 2015 02:39:00 +0000 (22:39 -0400)]
[runtime] Mark mono_monitor_try_enter_internal () as inline.
Zoltan Varga [Sun, 9 Aug 2015 02:31:47 +0000 (22:31 -0400)]
[runtime] Make synchronized methods use the Monitor.Enter(object,bool&) overload.
Zoltan Varga [Sat, 8 Aug 2015 22:44:06 +0000 (22:44 +0000)]
[runtime] Fix the coop build on posix platforms.
Zoltan Varga [Sat, 8 Aug 2015 22:43:42 +0000 (22:43 +0000)]
[arm] Implement support for gc safe points.
Zoltan Varga [Sat, 8 Aug 2015 22:08:21 +0000 (18:08 -0400)]
[runtime] Remove mono_g_hash_table_new (), use mono_g_hash_table_new_type () instead.
Zoltan Varga [Sat, 8 Aug 2015 22:00:24 +0000 (18:00 -0400)]
[runtime] Use a GHashTable instead of a MonoGHashTable in mono_class_from_name (), the hash table doesn't need to be GC aware.
Zoltan Varga [Sat, 8 Aug 2015 17:35:49 +0000 (13:35 -0400)]
[runtime] Remove the sgen_supported conditional from configure, we don't support architectures which don't have SGEN.
Marek Safar [Sat, 8 Aug 2015 07:00:21 +0000 (09:00 +0200)]
Merge pull request #1968 from LogosBible/uribuilder-no-hostname
Fix UriBuilder.ToString() when the host is empty.
Zoltan Varga [Sat, 8 Aug 2015 02:22:31 +0000 (22:22 -0400)]
Fix the build.
Zoltan Varga [Sat, 8 Aug 2015 00:40:39 +0000 (20:40 -0400)]
[jit] Add a suspect check into the middle of the JIT pipeline.
Zoltan Varga [Fri, 7 Aug 2015 20:11:16 +0000 (16:11 -0400)]
[runtime] Revert part of the previous commit to avoid the profiler crashing.
Zoltan Varga [Fri, 7 Aug 2015 20:02:28 +0000 (16:02 -0400)]
[runtime] Avoid passing gshared methods to clients of the embedding api.
Ludovic Henry [Fri, 7 Aug 2015 13:52:04 +0000 (09:52 -0400)]
[runtime] Fix missing method at link time
Rolf Bjarne Kvinge [Fri, 7 Aug 2015 08:47:00 +0000 (10:47 +0200)]
Add a conditional for fork and exec* functions.
They're not available on WatchOS.
Zoltan Varga [Fri, 7 Aug 2015 02:15:30 +0000 (22:15 -0400)]
[runtime] Avoid a memory overflow in Buffer.InternalBlockCopy () if the caller passes in a negative value by mistake.
Zoltan Varga [Wed, 5 Aug 2015 04:08:03 +0000 (00:08 -0400)]
[runtime] Remove some dead code.
Ludovic Henry [Thu, 6 Aug 2015 18:58:13 +0000 (14:58 -0400)]
[runtime] Fix memory corruption due to incorrect use of MONO_OBJECT_SETREF
MONO_OBJECT_SETREF would use mono_gc_wbarrier_set_field which would write over 8 bytes ( *(void**)field = value ), while we want to write over 1 byte here.
Dave Dunkin [Thu, 6 Aug 2015 18:55:46 +0000 (11:55 -0700)]
Add UriBuilder test for no hostname.
Martin Potter [Wed, 18 Jul 2012 00:54:33 +0000 (17:54 -0700)]
Uri.ShemeDelimiter should not be used when the host is empty.
João Matos [Thu, 6 Aug 2015 12:22:20 +0000 (13:22 +0100)]
Merge pull request #1966 from angeloc/master
Better handling of vasprintf checking
Angelo Compagnucci [Thu, 6 Aug 2015 07:36:36 +0000 (09:36 +0200)]
Better handling of vasprintf checking
This patch improves the handling of vasprint checking.
It switches the unneeded have_vasprintf variable with the
AC_CHECK_FUNCS defined ac_cv_func_vasprintf one.
Zoltan Varga [Wed, 5 Aug 2015 23:09:39 +0000 (19:09 -0400)]
Merge pull request #1965 from akoeplinger/fix-flaky-test
[System.ServiceModel] Fix flaky Bug652331_2 test
Alexander Köplinger [Wed, 5 Aug 2015 18:09:32 +0000 (20:09 +0200)]
[System.ServiceModel] Fix flaky Bug652331_2 test
The test sometimes failed on Jenkins with the timeout assert. Running only this single test locally
with `make check TESTNAME=System.ServiceModel.Dispatcher.Bug652331Test.Bug652331_2` however reproduced
this almost every single time.
It seems that WCF takes a bit to initialize until it accepts connections, so putting a little sleep
fixed this for me locally and running it in a loop for half an hour didn't assert even once.
João Matos [Wed, 5 Aug 2015 16:49:39 +0000 (17:49 +0100)]
[runtime] Re-enable the soft debugger on x86 without presence of signals.
As of
b76665b8485e45bea13e2694107117877f96c98b the debugger does not rely on signals anymore for stepping.
João Matos [Wed, 5 Aug 2015 16:47:06 +0000 (17:47 +0100)]
[sgen] Do not use Mach OS initialisation if using coop GC.