1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-01 04:10:18 +02:00
Commit graph

12 commits

Author SHA1 Message Date
Andy Wingo
d22eb88948 nofl space / mmc supports untagged allocations 2025-03-07 13:37:59 +01:00
Andy Wingo
521cd44ebd Add gc_allocation_kind argument to gc_allocate
Adapt all users.  Will eventually allow for mmc to have untagged
allocations.
2025-03-07 13:37:59 +01:00
Andy Wingo
6c444b33f1 Remove card-marking barriers
Field barriers aren't slower and are more precise.
2025-03-07 13:37:59 +01:00
Andy Wingo
4a95a514b7 Fix inline old-generation check for nofl space mark byte changes 2025-03-07 13:37:59 +01:00
Andy Wingo
f1b660484e Remove gc_allocator_needs_clear
Whether the returned object needs to be cleared or not depends on a
couple things:
 - Whether the embedder actually needs the object to be cleared.
 - Whether the collector allocated the object from memory that was all
   zeroes already.

The goal of course would be to prevent clearing memory if the mutator
was just going to write all over it.  But it's hard to know statically
if the memory would have been all zeroes anyway, and in that case if you
did clear it you'd be doing double work.  In the end it's simpler to
just require collectors to clear memory in bulk.  We can revisit this
later if it is an issue.
2025-03-07 13:37:59 +01:00
Andy Wingo
e4048b5296 Add offset to field-logging fast path 2025-01-10 16:05:34 +01:00
Andy Wingo
1ecb45a437 Switch mmc to field-logging write barrier
Instead of the card table, use metadata bytes for field-logging.  More
precision should lead to less work during the pause.
2024-10-02 21:25:09 +02:00
Andy Wingo
1493bf6398 Add gc_object_is_old_generation
Will be useful for write barriers.
2024-10-01 15:48:55 +02:00
Andy Wingo
1f4e3bdf37 Add field-logging write barrier (fast path only)
Add a new kind of write barrier, one which has a bit per field; the
mutator that sets the bit will need to add the field's location (the
edge) to a remembered set.  Here we just have the fast-path
implementation.
2024-10-01 10:34:27 +02:00
Andy Wingo
8fba0e5322 Implement cooperative safepoint API
Fixes https://github.com/wingo/whippet/issues/9.
2024-09-18 11:54:36 +02:00
Andy Wingo
9f26dbb1fc Implement per-object pinning API
Fixes https://github.com/wingo/whippet/issues/6.
2024-09-18 10:55:02 +02:00
Andy Wingo
44a7240e16 Rename "whippet" collector to "mmc": mostly marking collector 2024-09-02 13:19:05 +02:00
Renamed from api/whippet-attrs.h (Browse further)