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.
Mark Probst [Thu, 25 Dec 2014 00:57:17 +0000 (16:57 -0800)]
[sgen] Omit unnecessary casts.
Mark Probst [Wed, 24 Dec 2014 21:23:31 +0000 (13:23 -0800)]
[sgen] Typedef `GCObject` and `GCVTable` to `MonoObject` and `MonoVTable`.
Mark Probst [Wed, 24 Dec 2014 21:19:34 +0000 (13:19 -0800)]
[sgen] Move `GCObject` and `GCVTable` to client code.
Mark Probst [Wed, 24 Dec 2014 20:41:21 +0000 (12:41 -0800)]
[sgen] `GCObject` and `GCVTable` instead of `MonoObject` and `MonoVTable`.
Mark Probst [Wed, 24 Dec 2014 18:30:21 +0000 (10:30 -0800)]
[sgen] Move root profiling to `sgen-mono.c`.
Mark Probst [Wed, 24 Dec 2014 00:38:59 +0000 (16:38 -0800)]
[sgen] Use pointer queue instead of list for finalize ready objects.
Mark Probst [Tue, 23 Dec 2014 22:20:35 +0000 (14:20 -0800)]
[sgen] Move `sgen_safe_name()` to client code.
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.
Mark Probst [Mon, 22 Dec 2014 23:36:04 +0000 (15:36 -0800)]
[sgen] Moved object size calculation to client code.
Mark Probst [Mon, 22 Dec 2014 20:34:19 +0000 (12:34 -0800)]
[sgen] Move `mono_gc_set_string_length()` to `sgen-mono.c`.
Mark Probst [Mon, 22 Dec 2014 20:10:31 +0000 (12:10 -0800)]
[sgen] Move array and string allocation to client code.
Mark Probst [Mon, 22 Dec 2014 20:01:11 +0000 (12:01 -0800)]
[sgen] Move some array filling stuff into client code.
Mark Probst [Mon, 22 Dec 2014 18:20:11 +0000 (10:20 -0800)]
[sgen] Moved Mono-specific cardtable scanning to client code.
Mark Probst [Mon, 22 Dec 2014 17:40:27 +0000 (09:40 -0800)]
[sgen] Trivial prettification of `sgen-mono.c`.
Mark Probst [Fri, 19 Dec 2014 00:17:21 +0000 (16:17 -0800)]
[sgen] Move TLS emit macros to Mono-specific file.
Mark Probst [Thu, 18 Dec 2014 23:38:46 +0000 (15:38 -0800)]
[sgen] Make `wbarrier_value_copy` take the element size, not the class.
Mark Probst [Wed, 17 Dec 2014 21:34:51 +0000 (13:34 -0800)]
[sgen] Move managed allocator to Mono-specific code.
Mark Probst [Wed, 17 Dec 2014 19:22:59 +0000 (11:22 -0800)]
[sgen] Move `has_critical_finalizer()` to client code.
Mark Probst [Mon, 15 Dec 2014 18:12:48 +0000 (10:12 -0800)]
[sgen] Move array filling into client code.
Mark Probst [Sun, 14 Dec 2014 17:01:04 +0000 (09:01 -0800)]
[sgen] Move domain clearing into client code.
Mark Probst [Sun, 14 Dec 2014 15:35:11 +0000 (07:35 -0800)]
[sgen] Move ephemerons to client code.
Mark Probst [Sun, 14 Dec 2014 15:28:21 +0000 (07:28 -0800)]
[sgen] Move some support functions into `sgen-gc.h`.
Mark Probst [Sun, 14 Dec 2014 02:10:50 +0000 (18:10 -0800)]
[sgen] Move finalization callback stuff to `sgen-mono.c`.
Also introduce `sgen-client.h` which will eventually contain a spec of the
interface a client of SGen has to implement.