Ludovic Courtès
1c44468d77
Rename "boehm-gc.h" to "bdw-gc.h"; add to the distribution.
...
* libguile/Makefile.am (modinclude_HEADERS): Add `bdw-gc.h'.
* libguile/bdw-gc.h: Rename from "boehm-gc.h"; users updated. Update to
LGPLv3+.
2009-09-14 00:42:25 +02:00
Ludovic Courtès
760fb97d1f
Remove deprecated variables/macros from the GC headers.
...
* libguile/deprecated.c (scm_mtrigger, scm_mallocated,
scm_max_segment_size): New global variables, from gc.c.
(scm_map_free_list,
scm_gc_set_debug_check_freelist_x)[GUILE_DEBUG_FREELIST]: New stubs.
* libguile/deprecated.h (scm_mallocated, scm_mtrigger,
scm_max_segment_size): New declarations.
(scm_map_free_list,
scm_gc_set_debug_check_freelist_x)[GUILE_DEBUG_FREELIST]: New
declarations.
* libguile/gc-malloc.c (scm_i_minyield_malloc): Remove.
(scm_gc_init_malloc): Remove references to `scm_i_minyield_malloc' and
`scm_mtrigger'.
* libguile/gc.c (scm_mtrigger, scm_mallocated): Remove.
(scm_init_storage): Remove reference to `SCM_HEAP_SEG_SIZE'.
* libguile/gc.h (scm_max_segment_size, SCM_SET_FREELIST_LOC,
SCM_FREELIST_LOC, scm_i_master_freelist, scm_i_master_freelist2,
scm_mallocated, scm_mtrigger): Remove.
(scm_map_free_list,
scm_gc_set_debug_check_freelist_x)[SCM_ENABLE_DEPRECATED &&
GUILE_DEBUG_FREELIST]: Remove.
* libguile/private-gc.h (SCM_DEFAULT_INIT_HEAP_SIZE_1,
SCM_DEFAULT_MIN_YIELD_1, SCM_DEFAULT_MIN_YIELD_2,
DEFAULT_SWEEP_AMOUNT, SCM_DEFAULT_MAX_SEGMENT_SIZE,
SCM_MIN_HEAP_SEG_SIZE, SCM_HEAP_SEG_SIZE,
SCM_GC_CARD_BVEC_SIZE_IN_LONGS, SCM_GC_IN_CARD_HEADERP): Remove.
(scm_getenv_int): Made internal.
(scm_i_marking, scm_mark_all, scm_i_deprecated_memory_return,
scm_i_find_heap_calls, scm_gc_init_malloc, scm_gc_init_freelist,
scm_gc_init_segments, scm_gc_init_mark): Remove declarations.
* libguile/gc-segment-table.c: Remove, finally.
2009-08-28 21:02:42 +02:00
Ludovic Courtès
7af531508c
Merge branch 'master' into boehm-demers-weiser-gc
...
Conflicts:
libguile/Makefile.am
libguile/bytevectors.c
libguile/gc-card.c
libguile/gc-mark.c
libguile/programs.c
libguile/srcprop.c
libguile/srfi-14.c
libguile/symbols.c
libguile/threads.c
libguile/unif.c
libguile/vm.c
2009-08-28 19:16:46 +02:00
Ludovic Courtès
f86f3b5b11
Remove the `scm_tc_free_cell' SMOB type.
...
* libguile/deprecated.h (SCM_FREEP, SCM_NFREEP): Changed to constants.
* libguile/gc.c (scm_i_tag_name): Remove reference to
`scm_tc_free_cell'.
* libguile/gc.h (SCM_FREE_CELL_CDR, SCM_SET_FREE_CELL_CDR): Remove.
* libguile/smob.c (free_print): Remove.
(scm_smob_prehistory): Don't create the "free" SMOB type.
* libguile/struct.c (struct_finalizer_trampoline): Use a bare
`scm_tc3_struct' tag for finalized structs instead of
`scm_tc_free_cell'.
* libguile/tags.h (scm_tc_free_cell): Remove.
2009-08-25 23:57:49 +02:00
Ludovic Courtès
fbb857a472
Merge branch 'master' into boehm-demers-weiser-gc
...
Conflicts:
lib/Makefile.am
libguile/Makefile.am
libguile/frames.c
libguile/gc-card.c
libguile/gc-freelist.c
libguile/gc-mark.c
libguile/gc-segment.c
libguile/gc_os_dep.c
libguile/load.c
libguile/macros.c
libguile/objcodes.c
libguile/programs.c
libguile/strings.c
libguile/vm.c
m4/gnulib-cache.m4
m4/gnulib-comp.m4
m4/inline.m4
2009-08-18 00:06:45 +02:00
Andy Wingo
2fa901a51f
rename unif.[ch] to arrays.[ch]
...
* libguile/Makefile.am:
* libguile/unif.c:
* libguile/unif.h:
* libguile/arrays.c:
* libguile/arrays.h: Rename unif.[ch] to arrays.[ch].
* libguile.h:
* libguile/array-handle.c:
* libguile/array-map.c:
* libguile/bitvectors.c:
* libguile/bytevectors.c:
* libguile/eq.c:
* libguile/gc-card.c:
* libguile/gc-malloc.c:
* libguile/gc-mark.c:
* libguile/gc.c:
* libguile/init.c:
* libguile/inline.h:
* libguile/print.c:
* libguile/random.c:
* libguile/read.c:
* libguile/socket.c:
* libguile/sort.c:
* libguile/srfi-4.c:
* libguile/srfi-4.h:
* libguile/strports.c:
* libguile/vectors.c:
* libguile/vectors.h: Update includers.
2009-07-19 14:53:03 +02:00
Neil Jerram
53befeb700
Change Guile license to LGPLv3+
...
(Not quite finished, the following will be done tomorrow.
module/srfi/*.scm
module/rnrs/*.scm
module/scripts/*.scm
testsuite/*.scm
guile-readline/*
)
2009-06-17 00:22:09 +01:00
Ludovic Courtès
85d7012ec3
Remove references to `scm_in_heap_p ()'.
...
* libguile/gc.c (scm_i_expensive_validation_check): Don't call
`scm_in_heap_p ()'. Cells don't necessarily live in the heap
nowadays.
* libguile/gc.h (scm_in_heap_p): Remove declaration.
2009-03-22 16:13:12 +01:00
Ludovic Courtès
7f9ec18a1f
Expose `GC_dump ()' at the Scheme level.
...
* libguile/gc.h (scm_gc_dump): New declaration.
* libguile/gc.c (scm_gc_dump): New function.
2008-10-23 17:46:08 +02:00
Ludovic Courtès
21c097e0ed
Use GC's accessors rather than its global variables.
...
* libguile/gc.c (scm_storage_prehistory): Use `GC_set_free_space_divisor ()'
instead of accessing the global variable directly.
2008-09-19 10:25:04 +02:00
Ludovic Courtès
2a5bf2eeec
Use the `GC_FREE_SPACE_DIVISOR' environment variable.
...
* libguile/gc.c (scm_storage_prehistory): Initialize `GC_free_space_divisor'
using the `GC_FREE_SPACE_DIVISOR' environment variable.
2008-09-18 22:11:43 +02:00
Ludovic Courtès
6033d3266c
Remove per-thread `gc_running_p'.
...
* libguile/gc.c (scm_gc): Don't use `scm_gc_running_p' as
an lvalue.
* libguile/gc.h (scm_gc_running_p): Define to 0.
* libguile/threads.h (scm_i_thread)[gc_running_p]: Remove.
2008-09-18 00:04:38 +02:00
Ludovic Courtès
11d2fc0660
Conditionalize GC 6.x code.
...
* libguile/gc.c (scm_storage_prehistory): Have `GC_init ()' called only
with GC 6.x (it doesn't hurt with 7.x, though).
2008-09-15 22:57:24 +02:00
Ludovic Courtès
44e268898b
Merge branch 'master' into boehm-demers-weiser-gc
...
Conflicts:
lib/Makefile.am
libguile/gc-card.c
libguile/gc-freelist.c
libguile/gc-mark.c
libguile/gc-segment.c
libguile/gc.c
libguile/gc.h
libguile/gc_os_dep.c
libguile/private-gc.h
m4/.cvsignore
m4/gnulib-cache.m4
m4/gnulib-comp.m4
2008-09-13 22:51:27 +02:00
Ludovic Courtès
dbb605f575
Include <config.h> in all C files; use #ifdef HAVE_CONFIG_H' rather than
#if'.
2008-09-13 15:35:27 +02:00
Han-Wen Nienhuys
b71c8ec90a
Revise GC asserts.
...
* libguile/gc.c (scm_i_gc): Change assert into printed warning.
* libguile/private-gc.h (nil): introduce scm_i_last_marked_cell_count,
as a private mechanism for maintaining cell counts. Remove variable
scm_cells_allocated.
2008-09-11 12:10:58 -03:00
Ludovic Courtès
6f03035fe8
Merge branch 'master' into boehm-demers-weiser-gc
...
Conflicts:
libguile/Makefile.am
libguile/coop-defs.h
libguile/gc-card.c
libguile/gc-freelist.c
libguile/gc-malloc.c
libguile/gc-mark.c
libguile/gc-segment.c
libguile/gc.c
libguile/gc.h
libguile/gc_os_dep.c
libguile/hashtab.c
libguile/hashtab.h
libguile/inline.h
libguile/private-gc.h
libguile/struct.c
libguile/struct.h
libguile/threads.c
libguile/threads.h
libguile/vectors.h
libguile/weaks.h
test-suite/tests/gc.test
2008-09-10 23:09:30 +02:00
Ludovic Courtes
b74e86cf5f
Fixed warnings due to unused stuff.
...
* libguile/gc.c (scm_cells_allocated, scm_last_cells_allocated,
scm_gc_cells_collected, scm_gc_cells_collected_1,
scm_gc_malloc_collected, scm_gc_time_taken, t_before_gc,
scm_gc_mark_time_taken, scm_gc_times, scm_gc_cells_swept,
scm_gc_cells_marked_acc, scm_gc_cells_swept_acc,
scm_gc_cell_yield_percentage, scm_gc_malloc_yield_percentage):
Removed.
* libguile/gc.h: Updated accordingly.
* libguile/gdbint.c (port_mark_p, stream_mark_p, string_mark_p,
unmark_port, remark_port): Removed.
git-archimport-id: lcourtes@laas.fr--2006-libre/guile-core--boehm-gc--0--patch-4
2008-09-10 22:45:59 +02:00
Ludovic Courtès
4a4849dbe0
Merge commit ' 0329137392
' into boehm-demers-weiser-gc
...
Conflicts:
libguile/gc.c
libguile/srcprop.c
libguile/srcprop.h
2008-09-10 22:33:40 +02:00
Ludovic Court`es
3ec17f28b8
Reverted inappropriate merge in `gc.c'.
...
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-53
2008-09-10 22:28:17 +02:00
Ludovic Courtès
35a9197ccc
Merge commit ' f30e1bdf97
' into boehm-demers-weiser-gc
...
Conflicts:
libguile/Makefile.am
libguile/coop-pthreads.c
libguile/gc-freelist.c
libguile/gc-segment.c
libguile/gc.c
libguile/private-gc.h
test-suite/tests/environments.nottest
2008-09-10 22:27:30 +02:00
Ludovic Courtes
e7bca22779
Use thread-local allocation (significant perf. improvement!); added the `boehm-gc.h' header.
...
* libguile/Makefile.am (modinclude_HEADERS): Added `boehm-gc.h'.
* libguile/coop-defs.h: Use "libguile/boehm-gc.h" instead of <gc/gc.h>.
* libguile/coop-threads.h: Likewise.
* libguile/coop.c: Likewise.
* libguile/gc.c: Likewise.
(scm_storage_prehistory): Invoke `GC_init ()'.
* libguile/guardians.c: Use "libguile/boehm-gc.h" instead of <gc/gc.h>.
* libguile/inline.h: Likewise.
(scm_double_cell): Use `GC_MALLOC' instead of `GC_malloc'.
* libguile/pthread-threads.h: Use "libguile/boehm-gc.h" instead of
<gc/gc.h>.
* libguile/smob.c: Likewise.
* libguile/smob.h: Likewise.
* libguile/struct.c: Likewise.
* libguile/threads.c: Likewise.
* libguile/weaks.c: Likewise.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-51
2008-09-10 22:19:49 +02:00
Ludovic Courtes
8e7b3e9807
Removed scm_gc_registered_roots' and
scm_permobjs'.
...
* libguile/gc.c (scm_permanent_object): Use `scm_gc_protect_object ()'.
(scm_gc_register_root): Do nothing.
(scm_init_storage): Removed initialization of `scm_permobjs' and
`scm_gc_register_roots'.
* libguile/root.h (scm_permobjs): Removed.
(scm_gc_registered_roots): Removed.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-50
2008-09-10 22:19:30 +02:00
Ludovic Courtes
fdab75a144
Expand heap size at startup time.
...
* libguile/gc.c (scm_storage_prehistory): Invoke `GC_expand_hp ()'.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-49
2008-09-10 22:19:22 +02:00
Ludovic Courtes
184327a68d
Turn "all interior pointers" off (slight performance gain).
...
* libguile/gc.c (scm_storage_prehistory): Set `GC_all_interior_pointers'
to 0. Register `scm_tc3_cons' and `scm_tc3_closure' as valid
displacements.
* libguile/struct.c (scm_alloc_struct): Register additional
displacements.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-48
2008-09-10 22:19:11 +02:00
Ludovic Courtes
915b3f9f9a
Implemented gc-stats' using
libgc' information.
...
* libguile/gc.c (protected_obj_count): Made `static'.
(scm_heap_size): Mapped to `heap-size' rather than `cell-heap-size'.
(scm_heap_free_size): New.
(scm_heap_total_allocated): New.
(scm_gc_stats): Rewritten. Return the (little) information available
from `libgc'.
(scm_gc_disable): New.
(scm_gc_enable): New.
(scm_storage_prehistory): Don't call `GC_add_roots ()' with
SCM_SYS_PROTECTS. Use `GC_is_visible ()' to check whether
SCM_SYS_PROTECTS is visible.
* libguile/gc.h (scm_gc_enable): New declaration.
(scm_gc_disable): New declaration.
(scm_gc_for_alloc): Removed.
(scm_gc_for_newcell): Removed.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-46
2008-09-10 20:28:41 +02:00
Han-Wen Nienhuys
7ddb9baf80
Cleanup mark-during-GC debug checks.
...
* libguile/__scm.h (SCM_DEBUG): add SCM_DEBUG_MARKING_API
* libguile/gc.h (SCM_SET_GC_MARK): depending on
SCM_DEBUG_MARKING_API crash if someone is touching markbits
outside regular hours.
Rename ensure_marking() to scm_i_ensure_marking().
* libguile/inline.h (scm_double_cell, scm_cell): only set mark bits
for debugging if SCM_DEBUG_MARKING_API is unset
* libguile/gc-mark.c: Issue deprecation warning if we are marking
outside of the GC mark phase.
2008-09-09 23:08:16 -03:00
Ludovic Courtes
10fb3386dd
Fixed use of finalizers for guardians and SMOBs (undoes patches 23-24).
...
* libguile/gc.c (finalizer_trampoline): Removed.
(scm_gc_register_finalizer): Removed (undoes patches 23 and 24).
* libguile/gc.h (scm_gc_register_finalizer): Removed.
* libguile/guardians.c (finalize_guarded): Undid patch 23. Added support
for "proxied finalizers".
(scm_i_guard): Likewise.
* libguile/smob.c (scm_i_finalize_smob): Adapted to
`GC_finalization_proc'.
* libguile/smob.h: Include <gc/gc.h>.
(SCM_NEWSMOB): Use `GC_REGISTER_FINALIZER_NO_ORDER' instead of
`scm_gc_register_finalizer ()'.
(SCM_NEWSMOB3): Likewise.
(scm_i_finalize_smob): Updated.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-29
2008-09-05 09:34:35 +02:00
Ludovic Courtes
53cc0209fa
Fixed `scm_gc_register_finalizer ()' to avoid bootstrap problem.
...
* libguile/gc.c (finalizer_trampoline): Don't use `scm_call_2 ()' to
invoke the finalizer: directly call the C function instead.
(scm_gc_register_finalizer): Don't create a real subr with
`scm_c_make_gsubr ()': simply convert the C function pointer to an
`SCM' object instead.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-24
2008-09-05 09:33:38 +02:00
Ludovic Courtes
febd2677c9
Generalized BGC's finalizer mechanism. Use it in `guardians.c'.
...
* libguile/gc.c (finalizer_trampoline): New.
(scm_gc_register_finalizer): New.
* libguile/gc.h (scm_gc_register_finalizer): New declaration.
* libguile/guardians.c (finalize_guarded): Updated to the new prototype.
(scm_i_guard): Use `scm_gc_register_finalizer ()' instead of
`GC_REGISTER_FINALIZER_NO_ORDER ()'.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-23
2008-09-05 09:33:29 +02:00
Ludovic Courtes
378f262561
Added support for SMOB custom mark procedures.
...
* libguile/gc.c (scm_gc_mark): Removed.
(scm_gc_mark_dependencies): Removed.
(scm_mark_locations): Removed.
* libguile/gc.h (scm_gc_mark_dependencies): Removed.
(scm_mark_locations): Removed.
* libguile/inline.h (scm_cell): Use `GC_MALLOC ()' instead of `GC_malloc ()'.
* libguile/smob.c (smob_freelist): New.
(smob_gc_kind): New.
(smob_mark): New.
(scm_gc_mark): New.
(scm_i_new_smob_with_mark_proc): New.
(scm_smob_prehistory): Initialize `smob_freelist' and `smob_gc_kind'.
* libguile/smob.h (scm_i_new_smob_with_mark_proc): New declaration.
(SCM_NEWSMOB): Use it if a mark procedure is available.
(SCM_NEWSMOB2): Likewise.
(SCM_NEWSMOB3): Likewise.
* libguile/threads.c (guilify_self_1): Initialize the
`current_mark_stack_*' fields.
* libguile/threads.h (scm_i_thread)[current_mark_stack_ptr]: New field.
[current_mark_stack_limit]: New field.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-22
2008-09-05 09:33:20 +02:00
Ludovic Courtes
a82e795325
Fixed GC initialization and static roots.
...
* libguile/gc.c (scm_storage_prehistory): Call `GC_INIT ()'. Invoke
`GC_add_roots ()' as well.
(scm_init_gc): Removed call to `GC_init ()'.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-6
2008-09-05 00:46:46 +02:00
Ludovic Courtes
6a4be32986
Fixed garbage collection of ports: basics work (no SMOBs, no guardians, no WHT).
...
* libguile/gc.c (scm_init_storage): Do not initialize SCM_I_PORT_TABLE
here: this is done in `scm_ports_prehistory ()'. This fixes the bug
mentioned in the previous patch log.
* libguile/ports.c (scm_new_port_table_entry): Slightly clarified the
code.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-4
2008-09-05 00:46:22 +02:00
Ludovic Courtes
fca4388748
First `working'' Guile! Crashes in
flush-all-ports' (relates to SCM_I_PORT_TABLE).
...
* libguile/gc.c (scm_gc_stats): Fixed so that it returns a relevant
result instead of just `SCM_EOL'.
* libguile/ports.c: Include `assert.h'. Don't include `malloc.h'.
(scm_make_port_type): Use `scm_gc_realloc ()' instead of `realloc ()'.
(scm_new_port_table_entry): Likewise.
(scm_flush): Added an assertion on the port number.
(scm_ports_prehistory): Use `scm_gc_malloc ()' instead of `scm_malloc ()'.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-3
2008-09-05 00:46:14 +02:00
Ludovic Courtes
26224b3f5d
Merge from lcourtes@laas.fr--2005-mobile
...
Patches applied:
* lcourtes@laas.fr--2005-mobile/guile-core--boehm-gc--1.9 (base, patch 1)
- tag of lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--base-0
- Initial hack for Boehm's GC support: nothing works.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-1
2008-09-05 00:45:58 +02:00
Han-Wen Nienhuys
289cd1a720
Don't sanity check GC numbers on 64 bit platforms, while we
...
investigate a real fix.
2008-09-03 01:37:58 -03:00
Han-Wen Nienhuys
487b9dec2e
Only sanity check numbers if SCM_DEBUG_CELL_ACCESSES is unset.
...
SCM_DEBUG_CELL_ACCESSES uses the mark bits for its own purposes.
2008-08-26 23:46:39 -03:00
Han-Wen Nienhuys
1f5844000e
Style nitpicks: space before () in function call.
2008-08-21 23:16:20 -03:00
Ludovic Courtès
417566ebc9
Never define _GNU_SOURCE' explicitly since
AC_USE_SYSTEM_EXTENSIONS'
...
takes care of it.
Conflicts:
ChangeLog
configure.in
libguile/eval.c
libguile/srfi-14.c
libguile/threads.c
2008-08-20 19:31:46 +02:00
Han-Wen Nienhuys
5bfb683e12
Make marked conservatively statistic accumulative.
2008-08-16 15:34:04 -03:00
Han-Wen Nienhuys
676d9cc553
If realloc() fails in scm_realloc, then do a complete GC with complete
...
sweep directly.
2008-08-16 15:20:55 -03:00
Han-Wen Nienhuys
40945e5e9f
Add a statistic for tracking how many cells are marked conservatively.
...
This allows an informed choice for deciding how many segments to
create. After startup, ~2% of the cells are scanned conservatively.
2008-08-16 15:03:48 -03:00
Han-Wen Nienhuys
82ae1b8eb3
Garbage collection cleanup.
...
* New file gc-segment-table.c: hold code for the segment table.
* Remove data that might be out of date; remove
scm_i_adjust_min_yield(). We don't store min_yields, since they
are only accurate at one point in time (when the sweep finishes).
We decide the min yield at that point from min_yield_fraction and
freelist->collected / freelist->swept
* Introduce scm_i_gc_heap_size_delta() replacing
scm_i_gc_grow_heap_p().
* Remove foo_1 fields containing penultimate results.
* After GC, count mark bit vector to discover number of live
objects. This simplifies hairy updates.
* Many formatting and layout cleanups.
* Fix in scm_i_sweep_card(): return the length of free_list returned,
rather than number of deleted objects.
* For mtrigger GCs: do not also run a full sweep after the gc() call, as
this is inconsistent with lazy sweeping.
* Remove scm_i_make_initial_segment().
* Use calloc in scm_i_make_empty_heap_segment() to save on
initialization code.
* New function scm_i_sweep_for_freelist() which sweeps, with proper
statistic variable updates.
* New segments are conceptually blocks with 100% reclaimable cells.
* Remove some useless constants/comments: SCM_HEAP_SIZE,
SCM_INIT_HEAP_SIZE, SCM_EXPHEAP, SCM_HEAP_SEG_SIZE
* Do not increment scm_cells_allocated() from the
scm_[double]cell(). This would be a race condition.
* Move some deprecation checks in separate functions to not distract
from main code flow.
2008-08-16 13:57:23 -03:00
Han-Wen Nienhuys
01621bf62e
Include min-yields in gc-stats output.
2008-08-14 02:16:41 -03:00
Han-Wen Nienhuys
2072309c1c
Whitespace and formatting fixes.
...
Conflicts:
libguile/gc-freelist.c
libguile/gc-segment.c
libguile/gc.h
2008-08-14 01:51:24 -03:00
Ludovic Courtès
bfb64eb408
Fix build issue in `gc.c' on GNU/Linux IA64.
2008-02-22 09:53:02 +00:00
Neil Jerram
5c004b6d6a
* gc.c (mark_gc_async): Change "func_data" to "fn_data", to avoid
...
clash with AIX header file.
* hooks.c (scm_c_hook_add, scm_c_hook_remove): Same again.
* hooks.h (scm_t_c_hook_function, scm_c_hook_add,
scm_c_hook_remove): Same again.
2007-12-29 01:35:33 +00:00
Han-Wen Nienhuys
5dbc6c0679
replace port table with weak hash table. This simplifies
...
memory management, and fixes freed cells appearing in
port-for-each output.
2007-08-26 18:11:57 +00:00
Han-Wen Nienhuys
93632e3cfd
(s_scm_gc_stats): return an entry for total-cells-allocated
...
too.
(gc_update_stats): update scm_gc_cells_allocated_acc too.
2007-01-03 17:26:32 +00:00
Ludovic Courtès
d9f71a0754
Changes from arch/CVS synchronization
2006-11-08 09:34:35 +00:00