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

17 commits

Author SHA1 Message Date
Andy Wingo
78da8d5811 Add ephemeron implementation
This commit adds support for ephemerons to the API and wires it into the
collectors.  It also adds a new test.
2023-01-23 20:56:25 +01:00
Andy Wingo
44f37a373c Add gc_collect(mutator) API 2023-01-23 11:16:45 +01:00
Andy Wingo
d2bde8319f Add conservative stack capture
This isn't really wired up yet anywhere, but add a precursor to
conservative stack scanning.
2022-10-03 16:09:21 +02:00
Andy Wingo
92b8f1e917 Add gc_ prefix to struct heap, struct mutator 2022-08-16 21:35:16 +02:00
Andy Wingo
b082f5f50d Separate compilation!!!!! 2022-08-16 17:54:15 +02:00
Andy Wingo
112f27b77b Simplify GC attributes for the inline allocator
Don't require pulling in all of gc-api.h.
2022-08-16 16:00:06 +02:00
Andy Wingo
9e8940e59f Get handles out of collectors 2022-08-16 11:53:32 +02:00
Andy Wingo
8f2f4f7c69 API-ify gc_print_stats; add semi-inline.h 2022-08-15 18:17:18 +02:00
Andy Wingo
a00c83878e Inline post-allocation actions 2022-08-15 16:06:52 +02:00
Andy Wingo
a75842be90 Mostly implementation-independent inline allocation
This is a step towards separate compilation of the GC without losing
performance.  Only remaining task is the write barrier.
2022-08-15 11:17:15 +02:00
Andy Wingo
4d8a7169d0 Add inline to gc-api.h 2022-08-14 09:18:21 +02:00
Andy Wingo
fb71c4c363 Separate tagging from collector
The collector now has an abstract interface onto the embedder.  The
embedder has to supply some functionality, such as tracing and
forwarding.  This is a pretty big change in terms of lines but it's
supposed to have no functional or performance change.
2022-08-12 16:44:38 +02:00
Andy Wingo
cacc28b577 Always add a header onto objects
We're targetting systems that need to be able to inspect the kind of an
object, so this information has to be somewhere.  If it's out-of-line,
we might save memory, but we would lose locality.  Concretely in Guile
the tag bits are in the object itself.
2022-08-09 16:14:47 +02:00
Andy Wingo
d8bcbf2d74 More API-ification 2022-08-09 11:35:31 +02:00
Andy Wingo
4ccb489869 Set fixed heap size, parallelism via explicit options 2022-08-09 11:21:02 +02:00
Andy Wingo
2e6dde66b3 Attempt to start creating a proper API 2022-08-09 09:49:51 +02:00
Andy Wingo
c824f17bd9 Rename gc-types.h to gc-api.h 2022-08-08 11:08:36 +02:00
Renamed from gc-types.h (Browse further)