1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-28 22:10:29 +02:00
Commit graph

324 commits

Author SHA1 Message Date
Andy Wingo
59b85abbda Fix regarding memset of block marks 2024-08-25 20:46:05 +02:00
Andy Wingo
59c9f5dff9 Mark blocks that are targets of evacuation 2024-08-25 08:58:55 +02:00
Andy Wingo
7b4a56c51a nofl: Fix sticky mark bit treatment for block marks 2024-08-25 08:45:17 +02:00
Andy Wingo
b8c0fa0e90 nofl: simplify sweeping
No more need to identify empties during sweeping, as that is done
eagerly during the pause.
2024-08-24 21:52:47 +02:00
Andy Wingo
6dcec272b1 nofl: eagerly sweep empty blocks 2024-08-24 21:31:07 +02:00
Andy Wingo
010185f729 nofl: Refactor to trace visitor 2024-08-24 16:38:11 +02:00
Andy Wingo
7db72e7f80 whippet: ensure mutators release allocators before start_gc 2024-08-24 09:09:23 +02:00
Andy Wingo
19fdd481d5 Fix some corner cases with hole zeroing of empty blocks 2024-08-23 21:20:40 +02:00
Andy Wingo
d137e1397c Instead of partitioning blocks by flag, put them in separate lists
This way you can directly iterate blocks of a certain kind.  Also verify
these lists more thoroughly, and allow full blocks that are the results
of evacuation to skip being swept the next round.  Also!  Have
next_hole_in_block / next_hole_in_block ensure that the object data and
the mark bytes are clear.
2024-08-22 21:47:15 +02:00
Andy Wingo
b663e5878e nofl: Refactor evacuation allocation to be thread-local
This relaxes a "reliability" requirement, as in
https://wingolog.org/archives/2024/07/10/copying-collectors-with-block-structured-heaps-are-unreliable.
2024-08-21 15:07:50 +02:00
Andy Wingo
004a3d0411 Factor nofl-space out of whippet 2024-08-21 10:19:26 +02:00
Andy Wingo
b6e9d3c0bb Fix bug in which empty block would not have mark bits cleared 2024-08-21 10:16:00 +02:00
Zheng Junjie
1f6f5aeab7
fix guile.md link 2024-08-14 22:36:50 +08:00
Andy Wingo
ea15d142fc Update documentation 2024-08-05 15:19:07 +02:00
Andy Wingo
e40b224faf Attempt to dynamically choose whether to atomically forward 2024-08-05 15:03:24 +02:00
Andy Wingo
12eb0e0c42 Update documentation 2024-08-05 14:47:32 +02:00
Andy Wingo
1925f84d3a Add missing file 2024-08-05 14:44:34 +02:00
Andy Wingo
37e57f8c8d Add serial copying collector 2024-08-05 14:41:04 +02:00
Andy Wingo
0ee58abb46 Add gc_finalizer_priority_count to gc-embedder-api.h 2024-08-05 11:56:46 +02:00
Andy Wingo
d3383ad911 Bulk-zero copy-space blocks 2024-08-05 11:48:25 +02:00
Andy Wingo
4c6889b751 Factor copy space out of pcc 2024-08-05 11:40:58 +02:00
Andy Wingo
6c5cdd73c9 refactor pcc. no functional change 2024-07-29 11:31:52 +02:00
Andy Wingo
22f5b44330 Docs docs 2024-07-27 22:34:43 +02:00
Andy Wingo
50e90a026a Docs docs 2024-07-27 22:33:56 +02:00
Andy Wingo
3ce0899729 Docs docs 2024-07-27 22:32:08 +02:00
Andy Wingo
9b2677a57b Docs docs 2024-07-27 22:30:42 +02:00
Andy Wingo
cc6b1c1fb5 typos 2024-07-27 22:28:55 +02:00
Andy Wingo
ab5071f97a Rework docs 2024-07-27 22:26:24 +02:00
Andy Wingo
3d4d4d047c Fix BDW finalization; ensure pending set is marked 2024-07-24 10:01:16 +02:00
Andy Wingo
c7309a9657 Ensure fired finalizers are traced 2024-07-24 09:54:15 +02:00
Andy Wingo
068e0e5cdf Add benchmark for finalizers
Doesn't quite work on BDW yet.
2024-07-24 09:51:56 +02:00
Andy Wingo
f6057184e1 Add finalizers 2024-07-23 22:33:29 +02:00
Andy Wingo
9167dbb5f6 Fix returning partially allocated blocks that are actually full 2024-07-12 09:06:26 +02:00
Andy Wingo
64c7d73fa2 Add partially allocated block list.
Stopping a mutator or evacuator adds to this list.
2024-07-11 22:15:59 +02:00
Andy Wingo
c556dedb56 Add pcc collector to docs 2024-07-11 21:07:26 +02:00
Andy Wingo
d5ef140dfe Add parallel copying collector 2024-07-11 15:54:15 +02:00
Andy Wingo
c226570a81 Fix parallel tracer to force workers to be stopped during pauses 2024-07-11 15:54:15 +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
b4543ad641 Factor out tracer interface to own file 2024-07-08 14:38:15 +02:00
Andy Wingo
82afee8693 Break simple serial worklist out to its own file 2024-07-08 11:49:47 +02:00
Andy Wingo
4c6f1b6cef Break local worklist out to its own file 2024-07-08 10:49:46 +02:00
Andy Wingo
dd3953ef1a Factor trace deque out to shared-worklist.h
Also increase alignment to account for cache line prefetcher.
2024-07-08 10:42:58 +02:00
Andy Wingo
b4bf949df6 Add Guix manifest.scm 2024-07-03 10:38:55 +02:00