1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-07-01 23:30:28 +02:00
Commit graph

3 commits

Author SHA1 Message Date
Andy Wingo
a7d7ff5019 scm_gc_object_address pins its referent
* libguile/gc.h:
* libguile/gc.c (scm_gc_pin_object): New function.
(scm_gc_object_address): New function, to be used instead of SCM_UNPACK
when an object's address is exposed, for example via hashq.
* libguile/atomic.c:
* libguile/cache-internal.h:
* libguile/continuations.c:
* libguile/dynstack.c:
* libguile/dynstack.h:
* libguile/ephemerons.c:
* libguile/exceptions.c:
* libguile/finalizers.c:
* libguile/fluids-internal.h:
* libguile/fluids.c:
* libguile/foreign.c:
* libguile/frames.c:
* libguile/hash.c:
* libguile/hashtab.c:
* libguile/intrinsics.c:
* libguile/memoize.c:
* libguile/print.c:
* libguile/programs.c:
* libguile/smob.c:
* libguile/struct.c:
* libguile/struct.h:
* libguile/variable.c:
* libguile/vm.c: Use the new functions everywhere that is needed.
Because they take a thread, sometimes we have to do some extra plumbing.
2025-06-26 15:00:22 +02:00
Andy Wingo
fbbe5fa873 Move dynamic states off of scm_cell
* libguile/fluids-internal.h: Add struct scm_dynamic_state_snapshot
definition.
* libguile/fluids.h (scm_is_dynamic_state): Inline.
* libguile/fluids.c: Use "struct scm_dynamic_state_snapshot".
2025-06-20 14:56:28 +02:00
Andy Wingo
453fe41a26 Move fluids off of scm_cell
* libguile/fluids-internal.h: New file for internal definitions.
* libguile/dynstack.c:
* libguile/init.c:
* libguile/intrinsics.c:
* libguile/modules.c:
* libguile/print.c:
* libguile/threads.c: Include new internal file.
* libguile/fluids.c: Use "struct scm_fluid".
* libguile/Makefile.am: Add new file.
2025-06-20 14:43:10 +02:00