Andy Wingo
2dab407ec1
Expose definition of gc_stack_addr, rework API
2025-04-18 15:08:01 +02:00
Andy Wingo
05e8aba462
Add gc_allocation_counter API
2025-03-14 09:44:18 +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
274cf43864
Add new old-gen predicate method: check a range of addresses
2025-01-06 16:59:54 +01:00
Andy Wingo
15a51c8a85
Fix embarrassing bugs in write buffer fast path
...
Check edge address, not object address, and reverse the sense of the
check!
2024-10-04 13:50:01 +02:00
Andy Wingo
e1ae9819cf
gc_object_is_old_generation uses relaxed atomics
2024-10-04 13:49:45 +02:00
Andy Wingo
095515eaed
Rework write barrier fast/slow paths
2024-10-02 21:36:33 +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
004a3d0411
Factor nofl-space out of whippet
2024-08-21 10:19:26 +02: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
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
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