mono.git
9 years agoMerge pull request #1753 from schani/feature-yet-more-sgen-improvements
Alex Rønne Petersen [Thu, 30 Apr 2015 21:07:11 +0000 (23:07 +0200)]
Merge pull request #1753 from schani/feature-yet-more-sgen-improvements

Yet more SGen improvements

9 years ago[corlib] Add legacy mobile apis
Marek Safar [Thu, 30 Apr 2015 13:02:24 +0000 (15:02 +0200)]
[corlib] Add legacy mobile apis

9 years ago[tools] Added the beginnings of a static analysis checking tool for Mono.
João Matos [Thu, 30 Apr 2015 12:43:37 +0000 (13:43 +0100)]
[tools] Added the beginnings of a static analysis checking tool for Mono.

This is still a big work-in-progress and not ready to be tested. It might be used in the future for custom AST static analysis of Mono source code.

9 years agoRevert "[runtime] Introduce versioning of the profiler API."
Alex Rønne Petersen [Thu, 30 Apr 2015 08:50:56 +0000 (10:50 +0200)]
Revert "[runtime] Introduce versioning of the profiler API."

This reverts commit 138ae5a07f7d6adba597c23c23b088c5e768f8b7.

After some discussion, I don't think this adds as much value as I
initially thought it would.

9 years agoMerge pull request #1754 from aaronhoffman/nunmber
Zoltan Varga [Thu, 30 Apr 2015 05:48:37 +0000 (01:48 -0400)]
Merge pull request #1754 from aaronhoffman/nunmber

Fix spelling of number in IOException message

9 years agoFix spelling of number in IOException message
Aaron Hoffman [Thu, 30 Apr 2015 04:18:26 +0000 (23:18 -0500)]
Fix spelling of number in IOException message

9 years ago[arm] Use the generic method for passing the IMT argument on ARM.
Zoltan Varga [Thu, 30 Apr 2015 01:36:13 +0000 (21:36 -0400)]
[arm] Use the generic method for passing the IMT argument on ARM.

9 years ago[System.Runtime.Serialization] Fix "make distcheck"
Alexander Köplinger [Wed, 29 Apr 2015 22:24:36 +0000 (00:24 +0200)]
[System.Runtime.Serialization] Fix "make distcheck"

These files were missing from the tarball.

9 years ago[sgen] Add the stopping thread to the world stopping protocol entry.
Mark Probst [Tue, 28 Apr 2015 22:10:33 +0000 (15:10 -0700)]
[sgen] Add the stopping thread to the world stopping protocol entry.

9 years ago[sgen] Binary protocol entry for stack scanning.
Mark Probst [Tue, 28 Apr 2015 22:10:00 +0000 (15:10 -0700)]
[sgen] Binary protocol entry for stack scanning.

9 years ago[sgen] SGEN_UPDATE_REFERENCE was used where it shouldn't be.
Mark Probst [Tue, 28 Apr 2015 01:11:44 +0000 (18:11 -0700)]
[sgen] SGEN_UPDATE_REFERENCE was used where it shouldn't be.

This has no implications other than for debugging.

9 years ago[sgen] For object copies, check whether we can use memmove in the wbarrier.
Mark Probst [Tue, 28 Apr 2015 01:01:49 +0000 (18:01 -0700)]
[sgen] For object copies, check whether we can use memmove in the wbarrier.

9 years ago[sgen] Make `mono_gc_scan_for_specific_ref()` also scan thread stacks.
Mark Probst [Tue, 28 Apr 2015 00:48:35 +0000 (17:48 -0700)]
[sgen] Make `mono_gc_scan_for_specific_ref()` also scan thread stacks.

9 years ago[corlib] Bump reference sources for api tweaks
Marek Safar [Wed, 29 Apr 2015 20:15:19 +0000 (22:15 +0200)]
[corlib] Bump reference sources for api tweaks

9 years agoMerge pull request #1648 from schani/sgen-independence
Mark Probst [Wed, 29 Apr 2015 17:59:27 +0000 (10:59 -0700)]
Merge pull request #1648 from schani/sgen-independence

SGen Independence

9 years ago[sgen] Always invoke the world restarting protocol call. Fixes heapshot.
Mark Probst [Tue, 28 Apr 2015 18:21:20 +0000 (11:21 -0700)]
[sgen] Always invoke the world restarting protocol call.  Fixes heapshot.

9 years ago[sgen] Fix warnings on Linux.
Mark Probst [Wed, 22 Apr 2015 21:44:31 +0000 (14:44 -0700)]
[sgen] Fix warnings on Linux.

9 years ago[sgen] Missing include for independent compilation.
Mark Probst [Wed, 22 Apr 2015 20:39:47 +0000 (13:39 -0700)]
[sgen] Missing include for independent compilation.

9 years ago[sgen] Fix warnings.
Mark Probst [Wed, 22 Apr 2015 20:39:20 +0000 (13:39 -0700)]
[sgen] Fix warnings.

9 years ago[sgen] Write barrier prototypes in `sgen-gc.h`.
Mark Probst [Wed, 22 Apr 2015 19:02:59 +0000 (12:02 -0700)]
[sgen] Write barrier prototypes in `sgen-gc.h`.

9 years ago[sgen] Fix headers for independent compilation.
Mark Probst [Wed, 22 Apr 2015 18:58:57 +0000 (11:58 -0700)]
[sgen] Fix headers for independent compilation.

9 years ago[sgen] Client debug function for checking whether class is inited.
Mark Probst [Wed, 22 Apr 2015 18:58:14 +0000 (11:58 -0700)]
[sgen] Client debug function for checking whether class is inited.

9 years ago[sgen] `SGEN_TV_ELAPSED` returns a `long`.
Mark Probst [Tue, 21 Apr 2015 23:18:34 +0000 (16:18 -0700)]
[sgen] `SGEN_TV_ELAPSED` returns a `long`.

9 years ago[sgen] Remove dead code and data and make things static.
Mark Probst [Wed, 25 Mar 2015 23:27:50 +0000 (16:27 -0700)]
[sgen] Remove dead code and data and make things static.

9 years ago[sgen] More client interface documentation.
Mark Probst [Mon, 19 Jan 2015 00:06:44 +0000 (16:06 -0800)]
[sgen] More client interface documentation.

9 years ago[sgen] Call `mono_gc_register_thread()` from Mono client code.
Mark Probst [Sat, 17 Jan 2015 00:37:31 +0000 (16:37 -0800)]
[sgen] Call `mono_gc_register_thread()` from Mono client code.

9 years ago[sgen] Make hazard pointer stuff work without Mono, enabling concurrent M&S.
Mark Probst [Sat, 17 Jan 2015 00:30:21 +0000 (16:30 -0800)]
[sgen] Make hazard pointer stuff work without Mono, enabling concurrent M&S.

9 years ago[sgen] Get rid of `sgen_client_vtable_has_references()`.
Mark Probst [Wed, 14 Jan 2015 01:11:12 +0000 (17:11 -0800)]
[sgen] Get rid of `sgen_client_vtable_has_references()`.

9 years ago[sgen] Document the client interface header a bit.
Mark Probst [Fri, 9 Jan 2015 22:00:47 +0000 (14:00 -0800)]
[sgen] Document the client interface header a bit.

9 years ago[sgen] Don't use `sgen_client_vtable_get_namespace()` to check an object's validity.
Mark Probst [Fri, 9 Jan 2015 21:51:57 +0000 (13:51 -0800)]
[sgen] Don't use `sgen_client_vtable_get_namespace()` to check an object's validity.

Some clients might not have namespaces, so they might return NULL.

9 years ago[sgen] Don't return a pointer from the out-of-memory function.
Mark Probst [Fri, 9 Jan 2015 21:43:46 +0000 (13:43 -0800)]
[sgen] Don't return a pointer from the out-of-memory function.

The pointer the function would have to return would be to a chunk of managed
memory, for the object to be allocated.  It can't do that because it is not in charge
of the managed heap.  The best it could do would be to free some unmanaged
memory and tell the allocator try again.

9 years ago[sgen] Rename the total heap size reporting client function, and pass size as `size_t`.
Mark Probst [Fri, 9 Jan 2015 21:40:03 +0000 (13:40 -0800)]
[sgen] Rename the total heap size reporting client function, and pass size as `size_t`.

9 years ago[sgen] Get rid of `sgen_client_object_register_finalizer_if_necessary()`.
Mark Probst [Fri, 9 Jan 2015 00:59:36 +0000 (16:59 -0800)]
[sgen] Get rid of `sgen_client_object_register_finalizer_if_necessary()`.

9 years ago[sgen] Get rid of `sgen_client_object_is_array_fill()`.
Mark Probst [Fri, 9 Jan 2015 00:35:58 +0000 (16:35 -0800)]
[sgen] Get rid of `sgen_client_object_is_array_fill()`.

9 years ago[sgen] Get rid of `sgen_client_vtable_get_instance_size()`.
Mark Probst [Fri, 9 Jan 2015 00:18:33 +0000 (16:18 -0800)]
[sgen] Get rid of `sgen_client_vtable_get_instance_size()`.

9 years ago[sgen] Put `sgen_thread_attach()` in Mono client code.
Mark Probst [Fri, 9 Jan 2015 00:17:31 +0000 (16:17 -0800)]
[sgen] Put `sgen_thread_attach()` in Mono client code.

9 years ago[sgen] Don't return unused thread count from stop/start world functions.
Mark Probst [Fri, 9 Jan 2015 00:14:53 +0000 (16:14 -0800)]
[sgen] Don't return unused thread count from stop/start world functions.

9 years ago[sgen] Remove `sgen_client_object_safe_name()`.
Mark Probst [Thu, 8 Jan 2015 23:30:51 +0000 (15:30 -0800)]
[sgen] Remove `sgen_client_object_safe_name()`.

9 years ago[sgen] Move POSIX STW thread info stuff to Mono client code.
Mark Probst [Wed, 7 Jan 2015 01:24:26 +0000 (17:24 -0800)]
[sgen] Move POSIX STW thread info stuff to Mono client code.

9 years ago[sgen] Move global stop count variable to Mono client code.
Mark Probst [Wed, 7 Jan 2015 01:20:56 +0000 (17:20 -0800)]
[sgen] Move global stop count variable to Mono client code.

9 years ago[sgen] Fix warnings and remove dead code.
Mark Probst [Tue, 6 Jan 2015 23:40:34 +0000 (15:40 -0800)]
[sgen] Fix warnings and remove dead code.

9 years ago[sgen] Make client header file name configurable.
Mark Probst [Tue, 6 Jan 2015 21:39:40 +0000 (13:39 -0800)]
[sgen] Make client header file name configurable.

9 years ago[sgen] Make SGen compile without Mono.
Mark Probst [Tue, 6 Jan 2015 21:16:57 +0000 (13:16 -0800)]
[sgen] Make SGen compile without Mono.

9 years ago[sgen] Use consistent include paths.
Mark Probst [Tue, 6 Jan 2015 21:15:31 +0000 (13:15 -0800)]
[sgen] Use consistent include paths.

9 years ago[sgen] Add missing headers for compiling with glib.
Mark Probst [Tue, 6 Jan 2015 21:11:28 +0000 (13:11 -0800)]
[sgen] Add missing headers for compiling with glib.

9 years ago[sgen] Add a few missing returns when compiling with glib.
Mark Probst [Tue, 6 Jan 2015 21:05:54 +0000 (13:05 -0800)]
[sgen] Add a few missing returns when compiling with glib.

`g_error()` isn't marked as not returning in glib.

9 years ago[sgen] Get rid of `MonoObject` and `MonoVTable` in `sgen-debug.c`.
Mark Probst [Tue, 6 Jan 2015 21:01:35 +0000 (13:01 -0800)]
[sgen] Get rid of `MonoObject` and `MonoVTable` in `sgen-debug.c`.

9 years ago[sgen] `sgen_os_init()` must be called from Mono client code.
Mark Probst [Tue, 6 Jan 2015 20:55:38 +0000 (12:55 -0800)]
[sgen] `sgen_os_init()` must be called from Mono client code.

9 years ago[sgen] Client function for registering worker threads.
Mark Probst [Tue, 6 Jan 2015 20:54:30 +0000 (12:54 -0800)]
[sgen] Client function for registering worker threads.

9 years ago[sgen] We can't have negative numbers in `gc-parse.c`.
Mark Probst [Tue, 6 Jan 2015 00:35:24 +0000 (16:35 -0800)]
[sgen] We can't have negative numbers in `gc-parse.c`.

`size_t` is non-negative.  We catch overflow by checking that shifting right
again produces the original unshifted value.

9 years ago[sgen] Do pinning stats based on vtable, not class.
Mark Probst [Tue, 6 Jan 2015 00:26:44 +0000 (16:26 -0800)]
[sgen] Do pinning stats based on vtable, not class.

We need to get rid of MonoClass in SGen.

9 years ago[sgen] Declare time spans in `GGTimingInfo` as `gint64`.
Mark Probst [Tue, 6 Jan 2015 00:05:52 +0000 (16:05 -0800)]
[sgen] Declare time spans in `GGTimingInfo` as `gint64`.

We use `SGEN_TV_DECLARE` for instants of time, not time spans.

9 years ago[sgen] Remove dead code.
Mark Probst [Tue, 6 Jan 2015 00:03:36 +0000 (16:03 -0800)]
[sgen] Remove dead code.

9 years ago[sgen] Move Mono specific function declarations to `sgen-client-mono.h`.
Mark Probst [Tue, 6 Jan 2015 00:03:08 +0000 (16:03 -0800)]
[sgen] Move Mono specific function declarations to `sgen-client-mono.h`.

9 years ago[sgen] Do domain-specific finalizer and weak link stuff via predicate callbacks.
Mark Probst [Tue, 6 Jan 2015 00:01:45 +0000 (16:01 -0800)]
[sgen] Do domain-specific finalizer and weak link stuff via predicate callbacks.

9 years ago[sgen] Handle `no-managed-allocator` debug option in Mono client code.
Mark Probst [Mon, 5 Jan 2015 23:55:22 +0000 (15:55 -0800)]
[sgen] Handle `no-managed-allocator` debug option in Mono client code.

9 years ago[sgen] We used the wrong unmask function in `sgen-nursery-allocator.c`.
Mark Probst [Mon, 5 Jan 2015 23:52:53 +0000 (15:52 -0800)]
[sgen] We used the wrong unmask function in `sgen-nursery-allocator.c`.

9 years ago[sgen] Don't use `MonoObject`.
Mark Probst [Mon, 5 Jan 2015 23:52:22 +0000 (15:52 -0800)]
[sgen] Don't use `MonoObject`.

9 years ago[sgen] Move thread info to Mono client code.
Mark Probst [Thu, 8 Jan 2015 21:01:39 +0000 (13:01 -0800)]
[sgen] Move thread info to Mono client code.

9 years ago[sgen] Update `mono_perfcounters` in Mono client code.
Mark Probst [Mon, 5 Jan 2015 23:43:57 +0000 (15:43 -0800)]
[sgen] Update `mono_perfcounters` in Mono client code.

9 years ago[sgen] Don't use `mono_bool` in SGen.
Mark Probst [Mon, 5 Jan 2015 23:40:18 +0000 (15:40 -0800)]
[sgen] Don't use `mono_bool` in SGen.

9 years ago[sgen] Have our own aligned address hash function.
Mark Probst [Mon, 5 Jan 2015 23:38:21 +0000 (15:38 -0800)]
[sgen] Have our own aligned address hash function.

Just to get rid of a dependency.

9 years ago[sgen] Client function `sgen_client_vtable_get_instance_size()`.
Mark Probst [Mon, 5 Jan 2015 23:36:35 +0000 (15:36 -0800)]
[sgen] Client function `sgen_client_vtable_get_instance_size()`.

9 years ago[sgen] `mono_gc_register_thread()` is not Mono specific.
Mark Probst [Mon, 5 Jan 2015 23:34:29 +0000 (15:34 -0800)]
[sgen] `mono_gc_register_thread()` is not Mono specific.

9 years ago[runtime] Make a variable static.
Mark Probst [Sat, 3 Jan 2015 22:11:59 +0000 (14:11 -0800)]
[runtime] Make a variable static.

9 years ago[sgen] Remove dependency on `gc-internal.h`.
Mark Probst [Sat, 3 Jan 2015 22:11:23 +0000 (14:11 -0800)]
[sgen] Remove dependency on `gc-internal.h`.

9 years ago[sgen] Make bridge processing a client issue.
Mark Probst [Fri, 2 Jan 2015 20:00:41 +0000 (12:00 -0800)]
[sgen] Make bridge processing a client issue.

9 years ago[sgen] Semaphore type defined in client code.
Mark Probst [Thu, 1 Jan 2015 21:37:32 +0000 (13:37 -0800)]
[sgen] Semaphore type defined in client code.

`mono-semaphore.h` depends on io-layer, which we can't expect
anybody to include.

9 years ago[sgen] `sgen-archdep.h` is now Mono-specific.
Mark Probst [Thu, 1 Jan 2015 19:49:37 +0000 (11:49 -0800)]
[sgen] `sgen-archdep.h` is now Mono-specific.

9 years ago[sgen] Remove dependency on `mono-gc.h`.
Mark Probst [Thu, 1 Jan 2015 19:30:35 +0000 (11:30 -0800)]
[sgen] Remove dependency on `mono-gc.h`.

9 years ago[sgen] Remove superfluous include.
Mark Probst [Thu, 1 Jan 2015 19:29:36 +0000 (11:29 -0800)]
[sgen] Remove superfluous include.

9 years ago[sgen] Move time stuff to client code.
Mark Probst [Thu, 1 Jan 2015 19:08:01 +0000 (11:08 -0800)]
[sgen] Move time stuff to client code.

9 years ago[sgen] Move virtual memory allocation to client code.
Mark Probst [Thu, 1 Jan 2015 18:58:24 +0000 (10:58 -0800)]
[sgen] Move virtual memory allocation to client code.

9 years ago[sgen] Move `gc_callbacks` to Mono client code.
Mark Probst [Thu, 1 Jan 2015 18:11:23 +0000 (10:11 -0800)]
[sgen] Move `gc_callbacks` to Mono client code.

9 years ago[sgen] Move `runtime_data` to Mono client code.
Mark Probst [Thu, 8 Jan 2015 20:53:46 +0000 (12:53 -0800)]
[sgen] Move `runtime_data` to Mono client code.

9 years ago[sgen] Move thread context to Mono client code.
Mark Probst [Thu, 1 Jan 2015 17:48:31 +0000 (09:48 -0800)]
[sgen] Move thread context to Mono client code.

9 years ago[sgen] Move stack limits to client code.
Mark Probst [Thu, 1 Jan 2015 17:21:40 +0000 (09:21 -0800)]
[sgen] Move stack limits to client code.

9 years ago[sgen] Move `gc_disabled` to Mono-specific code.
Mark Probst [Tue, 30 Dec 2014 19:38:30 +0000 (11:38 -0800)]
[sgen] Move `gc_disabled` to Mono-specific code.

9 years ago[sgen] Move `skip` and `in_critical_region` to Mono-specific code.
Mark Probst [Tue, 30 Dec 2014 19:31:46 +0000 (11:31 -0800)]
[sgen] Move `skip` and `in_critical_region` to Mono-specific code.

9 years ago[sgen] Move stack scanning to client code.
Mark Probst [Tue, 30 Dec 2014 19:24:30 +0000 (11:24 -0800)]
[sgen] Move stack scanning to client code.

9 years ago[sgen] Moved `stopped_ip` and `stopped_domain` to Mono-specific code.
Mark Probst [Tue, 30 Dec 2014 18:42:51 +0000 (10:42 -0800)]
[sgen] Moved `stopped_ip` and `stopped_domain` to Mono-specific code.

9 years ago[sgen] Move MonoThreadInfo part of SgenThreadInfo to client code.
Mark Probst [Tue, 30 Dec 2014 18:31:27 +0000 (10:31 -0800)]
[sgen] Move MonoThreadInfo part of SgenThreadInfo to client code.

9 years ago[sgen] Move remaining logging to Mono-specific code.
Mark Probst [Sun, 28 Dec 2014 18:09:03 +0000 (10:09 -0800)]
[sgen] Move remaining logging to Mono-specific code.

9 years ago[sgen] Move counters to client code.
Mark Probst [Sun, 28 Dec 2014 17:58:07 +0000 (09:58 -0800)]
[sgen] Move counters to client code.

9 years ago[sgen] Move all profiler calls to Mono-specific code.
Mark Probst [Sun, 28 Dec 2014 17:16:19 +0000 (09:16 -0800)]
[sgen] Move all profiler calls to Mono-specific code.

9 years ago[sgen] Move DTrace stuff into the client header.
Mark Probst [Sun, 28 Dec 2014 16:50:05 +0000 (08:50 -0800)]
[sgen] Move DTrace stuff into the client header.

This should always be inlined.  We also need this there because we'll put the
profiler calls there.

This introduces fickle dependencies in the order of which things are declared
and inlined.  It would be nice to have a cleaner solution.

9 years ago[sgen] Use pointer array for pin stats instead of linked list.
Mark Probst [Sun, 28 Dec 2014 04:06:26 +0000 (20:06 -0800)]
[sgen] Use pointer array for pin stats instead of linked list.

9 years ago[sgen] Move moved-object profiler event to Mono-specific code.
Mark Probst [Sun, 28 Dec 2014 03:51:03 +0000 (19:51 -0800)]
[sgen] Move moved-object profiler event to Mono-specific code.

9 years ago[sgen] Make STW part of the client code.
Mark Probst [Sun, 28 Dec 2014 03:26:41 +0000 (19:26 -0800)]
[sgen] Make STW part of the client code.

9 years ago[sgen] Move DTrace support to Mono-specific code.
Mark Probst [Sun, 28 Dec 2014 02:45:12 +0000 (18:45 -0800)]
[sgen] Move DTrace support to Mono-specific code.

We use client callbacks from the binary protocol functions.  There are some DTrace probes
which we don't have binary protocol entries for.  Since DTrace isn't properly supported
anyway (and doesn't even work as it should on OSX), we just remove those probes instead
of making new binary protocol entries.

9 years ago[sgen] Remove dead declaration.
Mark Probst [Fri, 26 Dec 2014 01:14:24 +0000 (17:14 -0800)]
[sgen] Remove dead declaration.

9 years ago[sgen] Move nursery debug code to `sgen-debug.c`.
Mark Probst [Fri, 26 Dec 2014 00:53:06 +0000 (16:53 -0800)]
[sgen] Move nursery debug code to `sgen-debug.c`.

9 years ago[sgen] Remove unnecessary includes.
Mark Probst [Thu, 25 Dec 2014 23:56:02 +0000 (15:56 -0800)]
[sgen] Remove unnecessary includes.

9 years ago[sgen] Move some thread stuff to `sgen-mono.c`.
Mark Probst [Thu, 25 Dec 2014 23:36:18 +0000 (15:36 -0800)]
[sgen] Move some thread stuff to `sgen-mono.c`.

9 years ago[sgen] Move more random small stuff to `sgen-mono.c`.
Mark Probst [Thu, 25 Dec 2014 02:29:32 +0000 (18:29 -0800)]
[sgen] Move more random small stuff to `sgen-mono.c`.

9 years ago[sgen] Move managed write barrier to `sgen-mono.c`.
Mark Probst [Thu, 25 Dec 2014 02:24:34 +0000 (18:24 -0800)]
[sgen] Move managed write barrier to `sgen-mono.c`.

9 years ago[sgen] Use macro for object header and minimum object size.
Mark Probst [Thu, 25 Dec 2014 01:53:54 +0000 (17:53 -0800)]
[sgen] Use macro for object header and minimum object size.

9 years ago[sgen] Move some small callbacks to `sgen-mono.c`.
Mark Probst [Thu, 25 Dec 2014 01:30:54 +0000 (17:30 -0800)]
[sgen] Move some small callbacks to `sgen-mono.c`.

9 years ago[sgen] Move heap walking into `sgen-mono.c`.
Mark Probst [Thu, 25 Dec 2014 01:24:31 +0000 (17:24 -0800)]
[sgen] Move heap walking into `sgen-mono.c`.

9 years ago[sgen] Move array fill object check into client code.
Mark Probst [Thu, 25 Dec 2014 01:11:46 +0000 (17:11 -0800)]
[sgen] Move array fill object check into client code.