1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-19 19:20:23 +02:00
Commit graph

199 commits

Author SHA1 Message Date
Andy Wingo
9936d98f70 Rework heap marking 2023-10-02 22:48:59 +02:00
Andy Wingo
d56356fec7 Add gc_safepoint_mechanism gc attr 2023-10-02 22:47:35 +02:00
Andy Wingo
41591d8722 bdw: Ensure heap and mutators are live
Before, we were relying on the heap and mutators being reachable from
roots.  This is no longer the case.
2023-09-30 21:58:46 +02:00
Andy Wingo
4d1358219b Fix amazing error in bdw.c 2023-09-22 15:19:55 +02:00
Andy Wingo
120cd91b02 Use -flto=auto to do LTO in parallel 2023-09-22 14:44:21 +02:00
Andy Wingo
296e5e8458 BDW collector marks mutator/heap roots
Needed if a mutator has off-heap (mmap) storage.
2023-09-21 10:08:23 +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
da5a4633df embed.mk: silent by default, bis 2023-08-12 10:26:12 +02:00
Andy Wingo
3f92f36947 embed.mk: silent by default 2023-08-12 10:23:29 +02:00
Andy Wingo
a3019c961a embed.mk fix 2023-08-11 23:17:59 +02:00
Andy Wingo
9c1a7649b4 Update embed.mk 2023-08-10 21:49:55 +02:00
Andy Wingo
e4191f44c6 First stab at an embedder's makefile snippet 2023-08-09 22:16:03 +02:00
Andy Wingo
19f66fab08 Bin in bin, obj in obj; prettify makefile 2023-08-09 21:42:57 +02:00
Andy Wingo
8f93e23a5f DRY for whippet variant cflags 2023-08-09 21:24:41 +02:00
Andy Wingo
f9330f789c Attempt to do more DRY with whippet variants 2023-08-08 14:56:30 +02:00
Andy Wingo
5fdfd1175e Use foreach and eval to generate benchmark x collector rules 2023-08-08 14:39:31 +02:00
Andy Wingo
498d0537f3 Simplify makefile 2023-08-07 11:02:57 +02:00
Andy Wingo
1c76cdcf07 Put deps in subdir 2023-08-07 10:55:30 +02:00
Andy Wingo
07d7df1952 Update benchmark target names 2023-08-07 09:28:45 +02:00
Andy Wingo
2e8a0b3874 Add automatic dependency tracking 2023-08-06 22:20:53 +02:00
Andy Wingo
e6de2fd633 Reorganize source tree and document 2023-08-06 12:04:33 +02:00
Andy Wingo
5fbd21a7c3 Add USER-GUIDE.md 2023-08-06 10:43:42 +02:00
Andy Wingo
e270290242 Allow large object space to be part of remembered set 2023-03-15 09:34:12 +01:00
Andy Wingo
d0b8f6838d Rework fast/slow path alloc API
This lets users do gc_allocate_fast() and know that if they got a
non-NULL result, we could allocate without GC, and so no object was
moved.
2023-03-14 14:35:20 +01:00
Andy Wingo
62f4b045f8 BDW supports growable heap 2023-02-28 22:02:49 +01:00
Andy Wingo
51168fd96e ephemerons benchmark takes gc options 2023-02-28 11:30:51 +01:00
Andy Wingo
f657cd3847 quads benchmark takes gc-options param 2023-02-28 11:24:33 +01:00
Andy Wingo
157037dd1f Fix parallelism in quads benchmark 2023-02-28 11:20:50 +01:00
Andy Wingo
9576558a34 Rework mtbench to take GC options string instead of parallelism 2023-02-28 11:19:42 +01:00
Andy Wingo
f15eb3bd10 Add enum heap policy parsing 2023-02-28 11:19:42 +01:00
Andy Wingo
898f7aa935 Implement resizing of semi-space heap
Not yet hooked up to any demo, though.
2023-02-28 11:19:39 +01:00
Andy Wingo
c42c538aaa gc_init takes const gc_options 2023-02-28 09:40:28 +01:00
Andy Wingo
8edfd42ca1 Rework semi-space collector to separate regions
This is a preparation for heap growth and shrinking.
2023-02-28 09:40:28 +01:00
Andy Wingo
f0ad02d6ee Fix parsing options from string, doh 2023-02-28 09:40:28 +01:00
Andy Wingo
4cb26e0144 Rework options interface
Users will want to set options from an environment variable or something
like that.  Particular GC implementations will want to expose an
expanded set of options.  For these reasons we make the options
interface a bit more generalized and include parsing.
2023-02-15 20:07:14 +01:00
Andy Wingo
499ff1fe76 Update README 2023-01-23 20:57:02 +01:00
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
1b3bc2f3b5 Use "stack-conservative" and "heap-conservative" terms
Thanks to Steve Blackburn for the terms.
2022-12-02 09:07:24 +01:00
Andy Wingo
c614c2e40b Refactor embedder interface for conservative GC
Now users don't have to #ifdef on conservative vs precise tracing; it's
just a generic embedder concern.
2022-10-26 11:59:56 +02:00
Andy Wingo
910b62af8f Add conservative heap tracing (not just roots)
Also accelerate mark_space_live_object_granules.
2022-10-26 10:37:55 +02:00
Andy Wingo
053dbf0b61 Pass heap to tracer functions
This will allow conservative intra-heap edges.  Hopefully no overhead?
2022-10-25 14:25:55 +02:00
Andy Wingo
5e986e84e9 Update README 2022-10-03 16:12:06 +02:00
Andy Wingo
703bb30e19 add conservative makefile targets 2022-10-03 16:09:21 +02:00
Andy Wingo
1944b54a19 Whippet can trace conservative roots
Next up, enabling it via the makefiles.
2022-10-03 16:09:21 +02:00
Andy Wingo
deed415a06 Whippet captures stack when stopping mutators
This is part of work to enable conservative GC.
2022-10-03 16:09:21 +02: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
a5b1a66d21 Add platform abstraction
This will allow us to iterate conservative roots from stacks and static
data segments.
2022-10-03 16:09:21 +02:00