Andy Wingo
f6057184e1
Add finalizers
2024-07-23 22:33:29 +02:00
Andy Wingo
5084730471
Add parallel root-tracing phase
2024-07-11 15:54:11 +02:00
Andy Wingo
ff1e1b1d44
whippet: avoid an atomic load when visiting already-marked objects
2024-07-10 11:50:08 +02:00
Andy Wingo
d50455ed1b
Add new gc_atomic_forward_object_size API
...
Also remove an unused function in whippet.c
2024-07-10 11:50:05 +02:00
Andy Wingo
247f9432a4
Tighten up typing of trace workers and trace worker data
2024-07-08 18:44:24 +02:00
Andy Wingo
5ff78f01c8
Add gc_trace_worker_call_with_data
...
Goal is to pass thread-local evacuation buffers.
2024-07-08 18:10:18 +02:00
Andy Wingo
ac5d546481
Remove heap_tracer; get to heap from tracer directly
2024-07-08 17:35:58 +02:00
Andy Wingo
ba9459ce56
Rework tracer API to pass tracer to all functions
2024-07-08 17:29:24 +02:00
Andy Wingo
921c012b51
Add gc_ prefix to tracer API
2024-07-08 17:15:00 +02:00
Andy Wingo
3ce75b2bad
Fix bug in which we could forget to mark stopping mutators
...
Separately track total mutator count, paused mutators, and inactive
mutators. Paused mutators need to mark their roots before stopping. We
had a bug whereby a paused mutator would not wake up before the next
collection, which resulted in that mutator's roots not being marked.
Fix by resetting paused mutator count to 0 after collection, requiring
those mutators to sync up again.
2023-11-10 15:09:10 +01:00
Andy Wingo
adaffab3da
Fix a case where we might miss some sweeping
...
Unlike next_hole, next_hole_in_block doesn't finish_hole, so it doesn't
clear metadata bits. Fix to always finish_hole when
finish_sweeping_in_block.
2023-11-10 15:07:45 +01:00
Andy Wingo
40be1a03cb
Add debug-mode heap verification to Whippet
2023-11-10 15:07:31 +01:00
Andy Wingo
5ad83e49e1
Fix the debug fix
2023-11-06 22:06:51 +01:00
Andy Wingo
c4396a4214
Remove a release-mode debugging printout in whippet
2023-11-05 10:27:09 +01:00
Andy Wingo
cfc8c8a9b8
Allow embedder to request a major GC
2023-10-18 16:34:20 +02:00
Andy Wingo
0c7bdacc51
Revert "Allow embedder to request a major GC"
...
This reverts commit f39e6ee69f0aa2e14227a019a5332ba129418977.
2023-10-18 15:13:41 +02:00
Andy Wingo
514dcc702e
Allow embedder to request a major GC
2023-10-18 15:13:41 +02:00
Andy Wingo
8aa2036331
Fix optdebug warnings
2023-10-18 15:13:41 +02:00
Andy Wingo
9ce8ee2921
Fix unused API, outdated assertion
2023-10-17 21:45:06 +02:00
Andy Wingo
5130380ae5
Rework stats collection to use listener interface
2023-10-16 12:13:08 +02:00
Andy Wingo
dc013cfb58
Change gc_allocate_ephemeron to return struct gc_ephemeron
2023-09-11 11:48:32 +02:00
Andy Wingo
db36c48efd
Update extern space API to allow for evacuation
2023-08-16 11:08:12 +02:00
Andy Wingo
fbe49598f5
Add "extern space"
...
This is mostly for static data.
2023-08-15 11:38:11 +02:00
Andy Wingo
e6de2fd633
Reorganize source tree and document
2023-08-06 12:04:33 +02:00