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
Marek Safar [Thu, 30 Apr 2015 13:02:24 +0000 (15:02 +0200)]
[corlib] Add legacy mobile apis
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.
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.
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
Aaron Hoffman [Thu, 30 Apr 2015 04:18:26 +0000 (23:18 -0500)]
Fix spelling of number in IOException message
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.
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.
Mark Probst [Tue, 28 Apr 2015 22:10:33 +0000 (15:10 -0700)]
[sgen] Add the stopping thread to the world stopping protocol entry.
Mark Probst [Tue, 28 Apr 2015 22:10:00 +0000 (15:10 -0700)]
[sgen] Binary protocol entry for stack scanning.
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.
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.
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.
Marek Safar [Wed, 29 Apr 2015 20:15:19 +0000 (22:15 +0200)]
[corlib] Bump reference sources for api tweaks
Mark Probst [Wed, 29 Apr 2015 17:59:27 +0000 (10:59 -0700)]
Merge pull request #1648 from schani/sgen-independence
SGen Independence
Mark Probst [Tue, 28 Apr 2015 18:21:20 +0000 (11:21 -0700)]
[sgen] Always invoke the world restarting protocol call. Fixes heapshot.
Mark Probst [Wed, 22 Apr 2015 21:44:31 +0000 (14:44 -0700)]
[sgen] Fix warnings on Linux.
Mark Probst [Wed, 22 Apr 2015 20:39:47 +0000 (13:39 -0700)]
[sgen] Missing include for independent compilation.
Mark Probst [Wed, 22 Apr 2015 20:39:20 +0000 (13:39 -0700)]
[sgen] Fix warnings.
Mark Probst [Wed, 22 Apr 2015 19:02:59 +0000 (12:02 -0700)]
[sgen] Write barrier prototypes in `sgen-gc.h`.
Mark Probst [Wed, 22 Apr 2015 18:58:57 +0000 (11:58 -0700)]
[sgen] Fix headers for independent compilation.
Mark Probst [Wed, 22 Apr 2015 18:58:14 +0000 (11:58 -0700)]
[sgen] Client debug function for checking whether class is inited.
Mark Probst [Tue, 21 Apr 2015 23:18:34 +0000 (16:18 -0700)]
[sgen] `SGEN_TV_ELAPSED` returns a `long`.
Mark Probst [Wed, 25 Mar 2015 23:27:50 +0000 (16:27 -0700)]
[sgen] Remove dead code and data and make things static.
Mark Probst [Mon, 19 Jan 2015 00:06:44 +0000 (16:06 -0800)]
[sgen] More client interface documentation.
Mark Probst [Sat, 17 Jan 2015 00:37:31 +0000 (16:37 -0800)]
[sgen] Call `mono_gc_register_thread()` from Mono client code.
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.
Mark Probst [Wed, 14 Jan 2015 01:11:12 +0000 (17:11 -0800)]
[sgen] Get rid of `sgen_client_vtable_has_references()`.
Mark Probst [Fri, 9 Jan 2015 22:00:47 +0000 (14:00 -0800)]
[sgen] Document the client interface header a bit.
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.
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.
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`.
Mark Probst [Fri, 9 Jan 2015 00:59:36 +0000 (16:59 -0800)]
[sgen] Get rid of `sgen_client_object_register_finalizer_if_necessary()`.
Mark Probst [Fri, 9 Jan 2015 00:35:58 +0000 (16:35 -0800)]
[sgen] Get rid of `sgen_client_object_is_array_fill()`.
Mark Probst [Fri, 9 Jan 2015 00:18:33 +0000 (16:18 -0800)]
[sgen] Get rid of `sgen_client_vtable_get_instance_size()`.
Mark Probst [Fri, 9 Jan 2015 00:17:31 +0000 (16:17 -0800)]
[sgen] Put `sgen_thread_attach()` in Mono client code.
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.
Mark Probst [Thu, 8 Jan 2015 23:30:51 +0000 (15:30 -0800)]
[sgen] Remove `sgen_client_object_safe_name()`.
Mark Probst [Wed, 7 Jan 2015 01:24:26 +0000 (17:24 -0800)]
[sgen] Move POSIX STW thread info stuff 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.
Mark Probst [Tue, 6 Jan 2015 23:40:34 +0000 (15:40 -0800)]
[sgen] Fix warnings and remove dead code.
Mark Probst [Tue, 6 Jan 2015 21:39:40 +0000 (13:39 -0800)]
[sgen] Make client header file name configurable.
Mark Probst [Tue, 6 Jan 2015 21:16:57 +0000 (13:16 -0800)]
[sgen] Make SGen compile without Mono.
Mark Probst [Tue, 6 Jan 2015 21:15:31 +0000 (13:15 -0800)]
[sgen] Use consistent include paths.
Mark Probst [Tue, 6 Jan 2015 21:11:28 +0000 (13:11 -0800)]
[sgen] Add missing headers for 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.
Mark Probst [Tue, 6 Jan 2015 21:01:35 +0000 (13:01 -0800)]
[sgen] Get rid of `MonoObject` and `MonoVTable` in `sgen-debug.c`.
Mark Probst [Tue, 6 Jan 2015 20:55:38 +0000 (12:55 -0800)]
[sgen] `sgen_os_init()` must be called from Mono client code.
Mark Probst [Tue, 6 Jan 2015 20:54:30 +0000 (12:54 -0800)]
[sgen] Client function for registering worker threads.
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.
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.
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.
Mark Probst [Tue, 6 Jan 2015 00:03:36 +0000 (16:03 -0800)]
[sgen] Remove dead code.
Mark Probst [Tue, 6 Jan 2015 00:03:08 +0000 (16:03 -0800)]
[sgen] Move Mono specific function declarations to `sgen-client-mono.h`.
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.
Mark Probst [Mon, 5 Jan 2015 23:55:22 +0000 (15:55 -0800)]
[sgen] Handle `no-managed-allocator` debug option in Mono client code.
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`.
Mark Probst [Mon, 5 Jan 2015 23:52:22 +0000 (15:52 -0800)]
[sgen] Don't use `MonoObject`.
Mark Probst [Thu, 8 Jan 2015 21:01:39 +0000 (13:01 -0800)]
[sgen] Move thread info to Mono client code.
Mark Probst [Mon, 5 Jan 2015 23:43:57 +0000 (15:43 -0800)]
[sgen] Update `mono_perfcounters` in Mono client code.
Mark Probst [Mon, 5 Jan 2015 23:40:18 +0000 (15:40 -0800)]
[sgen] Don't use `mono_bool` in SGen.
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.
Mark Probst [Mon, 5 Jan 2015 23:36:35 +0000 (15:36 -0800)]
[sgen] Client function `sgen_client_vtable_get_instance_size()`.
Mark Probst [Mon, 5 Jan 2015 23:34:29 +0000 (15:34 -0800)]
[sgen] `mono_gc_register_thread()` is not Mono specific.
Mark Probst [Sat, 3 Jan 2015 22:11:59 +0000 (14:11 -0800)]
[runtime] Make a variable static.
Mark Probst [Sat, 3 Jan 2015 22:11:23 +0000 (14:11 -0800)]
[sgen] Remove dependency on `gc-internal.h`.
Mark Probst [Fri, 2 Jan 2015 20:00:41 +0000 (12:00 -0800)]
[sgen] Make bridge processing a client issue.
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.
Mark Probst [Thu, 1 Jan 2015 19:49:37 +0000 (11:49 -0800)]
[sgen] `sgen-archdep.h` is now Mono-specific.
Mark Probst [Thu, 1 Jan 2015 19:30:35 +0000 (11:30 -0800)]
[sgen] Remove dependency on `mono-gc.h`.
Mark Probst [Thu, 1 Jan 2015 19:29:36 +0000 (11:29 -0800)]
[sgen] Remove superfluous include.
Mark Probst [Thu, 1 Jan 2015 19:08:01 +0000 (11:08 -0800)]
[sgen] Move time stuff to client code.
Mark Probst [Thu, 1 Jan 2015 18:58:24 +0000 (10:58 -0800)]
[sgen] Move virtual memory allocation to client code.
Mark Probst [Thu, 1 Jan 2015 18:11:23 +0000 (10:11 -0800)]
[sgen] Move `gc_callbacks` 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.
Mark Probst [Thu, 1 Jan 2015 17:48:31 +0000 (09:48 -0800)]
[sgen] Move thread context to Mono client code.
Mark Probst [Thu, 1 Jan 2015 17:21:40 +0000 (09:21 -0800)]
[sgen] Move stack limits to client code.
Mark Probst [Tue, 30 Dec 2014 19:38:30 +0000 (11:38 -0800)]
[sgen] Move `gc_disabled` 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.
Mark Probst [Tue, 30 Dec 2014 19:24:30 +0000 (11:24 -0800)]
[sgen] Move stack scanning to client 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.
Mark Probst [Tue, 30 Dec 2014 18:31:27 +0000 (10:31 -0800)]
[sgen] Move MonoThreadInfo part of SgenThreadInfo to client code.
Mark Probst [Sun, 28 Dec 2014 18:09:03 +0000 (10:09 -0800)]
[sgen] Move remaining logging to Mono-specific code.
Mark Probst [Sun, 28 Dec 2014 17:58:07 +0000 (09:58 -0800)]
[sgen] Move counters to client code.
Mark Probst [Sun, 28 Dec 2014 17:16:19 +0000 (09:16 -0800)]
[sgen] Move all profiler calls to Mono-specific code.
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.
Mark Probst [Sun, 28 Dec 2014 04:06:26 +0000 (20:06 -0800)]
[sgen] Use pointer array for pin stats instead of linked list.
Mark Probst [Sun, 28 Dec 2014 03:51:03 +0000 (19:51 -0800)]
[sgen] Move moved-object profiler event to Mono-specific code.
Mark Probst [Sun, 28 Dec 2014 03:26:41 +0000 (19:26 -0800)]
[sgen] Make STW part of the client 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.
Mark Probst [Fri, 26 Dec 2014 01:14:24 +0000 (17:14 -0800)]
[sgen] Remove dead declaration.
Mark Probst [Fri, 26 Dec 2014 00:53:06 +0000 (16:53 -0800)]
[sgen] Move nursery debug code to `sgen-debug.c`.
Mark Probst [Thu, 25 Dec 2014 23:56:02 +0000 (15:56 -0800)]
[sgen] Remove unnecessary includes.
Mark Probst [Thu, 25 Dec 2014 23:36:18 +0000 (15:36 -0800)]
[sgen] Move some thread 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`.
Mark Probst [Thu, 25 Dec 2014 02:24:34 +0000 (18:24 -0800)]
[sgen] Move managed write barrier to `sgen-mono.c`.
Mark Probst [Thu, 25 Dec 2014 01:53:54 +0000 (17:53 -0800)]
[sgen] Use macro for object header and minimum object size.
Mark Probst [Thu, 25 Dec 2014 01:30:54 +0000 (17:30 -0800)]
[sgen] Move some small callbacks to `sgen-mono.c`.
Mark Probst [Thu, 25 Dec 2014 01:24:31 +0000 (17:24 -0800)]
[sgen] Move heap walking into `sgen-mono.c`.
Mark Probst [Thu, 25 Dec 2014 01:11:46 +0000 (17:11 -0800)]
[sgen] Move array fill object check into client code.