mono.git
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.

9 years ago[sgen] Omit unnecessary casts.
Mark Probst [Thu, 25 Dec 2014 00:57:17 +0000 (16:57 -0800)]
[sgen] Omit unnecessary casts.

9 years ago[sgen] Typedef `GCObject` and `GCVTable` to `MonoObject` and `MonoVTable`.
Mark Probst [Wed, 24 Dec 2014 21:23:31 +0000 (13:23 -0800)]
[sgen] Typedef `GCObject` and `GCVTable` to `MonoObject` and `MonoVTable`.

9 years ago[sgen] Move `GCObject` and `GCVTable` to client code.
Mark Probst [Wed, 24 Dec 2014 21:19:34 +0000 (13:19 -0800)]
[sgen] Move `GCObject` and `GCVTable` to client code.

9 years ago[sgen] `GCObject` and `GCVTable` instead of `MonoObject` and `MonoVTable`.
Mark Probst [Wed, 24 Dec 2014 20:41:21 +0000 (12:41 -0800)]
[sgen] `GCObject` and `GCVTable` instead of `MonoObject` and `MonoVTable`.

9 years ago[sgen] Move root profiling to `sgen-mono.c`.
Mark Probst [Wed, 24 Dec 2014 18:30:21 +0000 (10:30 -0800)]
[sgen] Move root profiling to `sgen-mono.c`.

9 years ago[sgen] Use pointer queue instead of list for finalize ready objects.
Mark Probst [Wed, 24 Dec 2014 00:38:59 +0000 (16:38 -0800)]
[sgen] Use pointer queue instead of list for finalize ready objects.

9 years ago[sgen] Move `sgen_safe_name()` to client code.
Mark Probst [Tue, 23 Dec 2014 22:20:35 +0000 (14:20 -0800)]
[sgen] Move `sgen_safe_name()` to client code.

9 years ago[sgen] Use write barrier for fields to set array references.
Mark Probst [Mon, 22 Dec 2014 23:49:40 +0000 (15:49 -0800)]
[sgen] Use write barrier for fields to set array references.

They do the same thing.

9 years ago[sgen] Moved object size calculation to client code.
Mark Probst [Mon, 22 Dec 2014 23:36:04 +0000 (15:36 -0800)]
[sgen] Moved object size calculation to client code.

9 years ago[sgen] Move `mono_gc_set_string_length()` to `sgen-mono.c`.
Mark Probst [Mon, 22 Dec 2014 20:34:19 +0000 (12:34 -0800)]
[sgen] Move `mono_gc_set_string_length()` to `sgen-mono.c`.

9 years ago[sgen] Move array and string allocation to client code.
Mark Probst [Mon, 22 Dec 2014 20:10:31 +0000 (12:10 -0800)]
[sgen] Move array and string allocation to client code.

9 years ago[sgen] Move some array filling stuff into client code.
Mark Probst [Mon, 22 Dec 2014 20:01:11 +0000 (12:01 -0800)]
[sgen] Move some array filling stuff into client code.