| Commit message (Expand) | Author | Age | Files | Lines |
* | Remove SCM_DEBUG_CELL_ACCESSES==1...Since the move to BDW-GC this option has not been useful.
* libguile/__scm.h (SCM_DEBUG_CELL_ACCESSES): Remove default
definition.
* libguile/gc.h: Add comment about cells.
(SCM_VALIDATE_CELL): Remove. I did a search on the internet and I
found no external users.
(SCM_CELL_WORD, SCM_CELL_OBJECT, SCM_SET_CELL_WORD)
(SCM_SET_CELL_OBJECT, SCM_CELL_OBJECT_LOC): Remove SCM_VALIDATE_CELL
uses.
* libguile/gc.c (scm_debug_cell_accesses_p)
(scm_expensive_debug_cell_accesses_p)
(scm_debug_cells_gc_interval, scm_i_expensive_validation_check)
(scm_assert_cell_valid): Remove bindings only available when
SCM_DEBUG_CELL_ACCESSES was 1.
* libguile/list.c (scm_list_n): Remove SCM_VALIDATE_CELL usage.
| Andy Wingo | 2016-11-18 | 1 | -42/+12 |
* | Out-of-memory situations raise exceptions instead of aborting...* libguile/gc.c (scm_oom_fn, scm_init_gc): Install an out-of-memory
handler that raises an unwind-only out-of-memory exception.
(scm_gc_warn_proc, scm_init_gc): Install a warning proc that tries to
print to the current warning port, if the current warning port is a
file port.
(scm_gc_after_nonlocal_exit): New interface. Should be called after a
nonlocal return to potentially collect memory; otherwise allocations
could try to expand again when they should collect.
* libguile/continuations.c (scm_i_make_continuation):
* libguile/eval.c (eval):
* libguile/throw.c (catch):
* libguile/vm.c (scm_call_n): Call scm_gc_after_nonlocal_exit after
nonlocal returns.
* libguile/throw.c (abort_to_prompt, throw_without_pre_unwind): Rework
to avoid allocating memory.
(scm_report_out_of_memory): New interface.
(scm_init_throw): Pre-allocate the arguments for stack-overflow and
out-of-memory errors.
* module/ice-9/boot-9.scm: Add an out-of-memory exception printer.
* module/system/repl/error-handling.scm (call-with-error-handling): Add
out-of-memory to the report-keys set.
* libguile/gc-malloc.c (scm_realloc): Call scm_report_out_of_memory if
realloc fails.
* libguile/error.h:
* libguile/error.c:
* libguile/deprecated.h:
* libguile/deprecated.c (scm_memory_error): Deprecate.
* test-suite/standalone/Makefile.am:
* test-suite/standalone/test-out-of-memory: New test case.
| Andy Wingo | 2014-03-22 | 1 | -1/+2 |
* | Merge commit 'd364a8971828e38e8f9112b711066f4962bb400e'...Conflicts:
libguile/deprecated.h
libguile/gc.c
| Andy Wingo | 2013-11-28 | 1 | -1/+0 |
|\ |
|
| * | Deprecate gc-live-object-stats...* libguile/gc.h:
* libguile/gc.c:
* libguile/deprecated.h:
* libguile/deprecated.c (scm_gc_live_object_stats): Deprecate; it hasn't
worked in the whole 2.0 series.
| Andy Wingo | 2013-11-28 | 1 | -1/+0 |
* | | Merge remote-tracking branch 'origin/stable-2.0'...Conflicts:
GUILE-VERSION
libguile/array-map.c
libguile/fports.h
libguile/gc.h
libguile/inline.h
libguile/ports.c
libguile/ports.h
libguile/print.c
libguile/r6rs-ports.c
libguile/read.c
test-suite/tests/00-socket.test
| Mark H Weaver | 2013-04-14 | 1 | -1/+2 |
|\| |
|
| * | Add 'scm_gc_typed_calloc' macro....* libguile/gc.h (scm_gc_typed_calloc): New macro.
| Mark H Weaver | 2013-04-01 | 1 | -1/+3 |
| * | scm_cell, scm_double_cell, scm_words back to gc.h...* libguile/inline.h:
* libguile/gc.h (scm_cell, scm_double_cell, scm_words): Move
declarations and definitions back here, from inline.h. It's more
natural.
* libguile/inline.c: Include gc.h as well.
| Andy Wingo | 2012-03-08 | 1 | -0/+97 |
| * | simplify inline function infrastructure...* libguile/__scm.h (SCM_C_EXTERN_INLINE): Move this definition here,
from inline.h. We'd like to support inline function definitions in
more header files: not just inline.h.
(SCM_CAN_INLINE, SCM_INLINE, SCM_INLINE_IMPLEMENTATION): New
definitions.
* libguile/gc.h (SCM_GC_MALLOC, SCM_GC_MALLOC_POINTERLESS): Define these
wrappers, which redirect to the GC_MALLOC macros when building Guile,
and the scm_gc_malloc functions otherwise. A step towards getting
BDW-GC out of Guile's API.
* libguile/inline.h: Simplify, using SCM_INLINE,
SCM_INLINE_IMPLEMENTATION, and SCM_IMPLEMENT_INLINES. Also use the
new SCM_GC_MALLOC macros.
| Andy Wingo | 2012-03-08 | 1 | -0/+11 |
* | | Change `scm_words' to accept a 32-bit word number....Fixes <http://bugs.gnu.org/10914>.
Reported by Tobias Brandt <tob.brandt@googlemail.com>.
* libguile/gc.h (scm_words): Change `n_words' to be `scm_t_uint32'.
* libguile/inline.h: Update extraneous declaration.
| Ludovic Courtès | 2012-03-07 | 1 | -3/+4 |
* | | Revert "add SCM_HEAP_OBJECT_BASE"...This reverts commit 47ed8656db8800f3ad20a40eb2c4e9ef3dc891e3.
Conflicts:
libguile/foreign.c
| Andy Wingo | 2012-01-31 | 1 | -7/+5 |
* | | Merge remote-tracking branch 'origin/stable-2.0'...Conflicts:
configure.ac
libguile/fluids.c
libguile/gc.c
libguile/gc.h
libguile/objcodes.c
libguile/procprop.c
libguile/vm.c
module/ice-9/psyntax-pp.scm
module/ice-9/psyntax.scm
| Andy Wingo | 2011-12-01 | 1 | -0/+2 |
|\| |
|
| * | attempt to handle steady-state mallocations better...* libguile/gc-malloc.c (scm_realloc): Call the new
scm_gc_register_allocation() here. If we have to collect, do a
GC_gcollect_and_unmap.
* libguile/gc.c (scm_gc_register_allocation): Add a routine to track
steady-state mallocation, and cause gc to run if there is a high
mallocation rate.
(adjust_gc_frequency): Reset the bytes-until-GC countdown timer.
| Andy Wingo | 2011-11-29 | 1 | -0/+2 |
| * | deprecate direct scm_protects access...* libguile/gc.h:
* libguile/gc.c: Deprecate direct access to scm_protects.
| Andy Wingo | 2011-11-21 | 1 | -2/+4 |
* | | remove public scm_protects export...* libguile/gc.h:
* libguile/gc.c: Remove scm_protects from the API. It is deprecated on
stable-2.0.
| Andy Wingo | 2011-11-24 | 1 | -1/+0 |
* | | add SCM_HEAP_OBJECT_BASE...* libguile/tags.h (SCM_HEAP_OBJECT_BASE): New macro. Given a SCM,
returns a pointer to the start of its memory area on the heap.
* libguile/bytevectors.c:
* libguile/fluids.c:
* libguile/foreign.c:
* libguile/gc.h:
* libguile/guardians.c:
* libguile/numbers.h:
* libguile/ports.c:
* libguile/smob.c:
* libguile/struct.c:
* libguile/weak-set.c:
* libguile/weak-table.c:
* libguile/weak-vector.c: Use it.
| Andy Wingo | 2011-10-24 | 1 | -5/+7 |
* | | add SCM_{PACK,UNPACK}_POINTER...* libguile/tags.h (SCM_UNPACK_POINTER, SCM_PACK_POINTER): New macros.
The old SCM2PTR and PTR2SCM were defined in such a way that
round-tripping through a pointer could lose precision, even in the
case in which you weren't interested in actually dereferencing the
pointer, it was simply that you needed to plumb a SCM through APIs
that take pointers. These new macros are more like SCM_PACK and
SCM_UNPACK, but for pointer types. The bit representation of the
pointer should be the same as the scm_t_bits representation.
* libguile/gc.h (PTR2SCM, SCM2PTR): Remove support for (old) UNICOS
pointers. We are going to try tagging the SCM object itself in the
future, and I don't think that keeping this support is worth its
cost. It probably doesn't work anyway.
* libguile/backtrace.c:
* libguile/bytevectors.c:
* libguile/continuations.c:
* libguile/fluids.c:
* libguile/foreign.c:
* libguile/gc.h:
* libguile/guardians.c:
* libguile/hashtab.c:
* libguile/load.c:
* libguile/numbers.c:
* libguile/ports.c:
* libguile/smob.c:
* libguile/strings.c:
* libguile/symbols.c:
* libguile/vm.c:
* libguile/weak-set.c:
* libguile/weak-table.c:
* libguile/weak-vector.c: Update many sites to use the new macros.
| Andy Wingo | 2011-10-24 | 1 | -19/+6 |
* | | scm_cell, scm_double_cell, scm_words back to gc.h...* libguile/inline.h:
* libguile/gc.h (scm_cell, scm_double_cell, scm_words): Move
declarations and definitions back here, from inline.h. It's more
natural.
* libguile/inline.c: Include gc.h as well.
| Andy Wingo | 2011-05-26 | 1 | -0/+97 |
* | | simplify inline function infrastructure...* libguile/__scm.h (SCM_C_EXTERN_INLINE): Move this definition here,
from inline.h. We'd like to support inline function definitions in
more header files: not just inline.h.
(SCM_CAN_INLINE, SCM_INLINE, SCM_INLINE_IMPLEMENTATION): New
definitions.
* libguile/gc.h (SCM_GC_MALLOC, SCM_GC_MALLOC_POINTERLESS): Define these
wrappers, which redirect to the GC_MALLOC macros when building Guile,
and the scm_gc_malloc functions otherwise. A step towards getting
BDW-GC out of Guile's API.
* libguile/inline.h: Simplify, using SCM_INLINE,
SCM_INLINE_IMPLEMENTATION, and SCM_IMPLEMENT_INLINES. Also use the
new SCM_GC_MALLOC macros.
| Andy Wingo | 2011-05-26 | 1 | -0/+11 |
* | | remove all deprecated code...* libguile/async.c:
* libguile/async.h:
* libguile/debug.h:
* libguile/deprecated.c:
* libguile/deprecated.h:
* libguile/evalext.h:
* libguile/gc-malloc.c:
* libguile/gc.h:
* libguile/gen-scmconfig.c:
* libguile/numbers.c:
* libguile/ports.c:
* libguile/ports.h:
* libguile/procprop.c:
* libguile/procprop.h:
* libguile/read.c:
* libguile/socket.c:
* libguile/srfi-4.h:
* libguile/strings.c:
* libguile/strings.h:
* libguile/tags.h:
* module/ice-9/boot-9.scm:
* module/ice-9/deprecated.scm: Remove all deprecated code. CPP defines
that were not previously issuing warnings were changed so that their
expansions would indicate the replacement forms to use,
e.g. scm_sizet__GONE__REPLACE_WITH__size_t.
The two exceptions were SCM_LISTN, which did not produce warnings
before, and the string-filter argument order stuff.
Drops the initial dirty memory usage of Guile down to 2.8 MB on my
machine, from 4.4 MB.
| Andy Wingo | 2011-05-12 | 1 | -37/+1 |
|/ |
|
* | Fix the visibility of a few of internal symbols....* libguile/gc.h (scm_i_gc): Make internal.
* libguile/posix.h (scm_i_locale_mutex): Likewise.
* libguile/arrays.h (scm_i_tc16_array): Likewise.
* libguile/numbers.c (scm_i_num_less_p): Likewise.
* libguile/discouraged.h (scm_i_init_discouraged): Likewise.
* libguile/continuations.c (scm_i_dummy): Made static.
* libguile/gc.c (scm_i_cell_validation_already_running): Likewise.
* libguile/discouraged.h (scm_i_init_discouraged): Likewise.
| Ludovic Courtès | 2010-05-28 | 1 | -1/+1 |
* | Use GCC's `malloc' attribute for malloc-like routines....* libguile/__scm.h (SCM_MALLOC): New macro.
* libguile/gc.h (scm_malloc, scm_calloc, scm_strdup, scm_strndup,
scm_gc_malloc_pointerless, scm_gc_calloc, scm_gc_malloc,
scm_gc_strdup, scm_gc_strndup): Mark as `SCM_MALLOC'.
| Ludovic Courtès | 2010-05-28 | 1 | -9/+14 |
* | Reinstate `scm_protects', for backward compatibility....Partly reverts e7efe8e793fa51ea898aea4477939c598b3e9fac ("decruftify
scm_sys_protects").
* libguile/gc.c (protects): Rename to...
(scm_protects): ... this.
* libguile/gc.h (scm_protects): Add declaration.
| Ludovic Courtès | 2010-02-13 | 1 | -1/+2 |
* | more boot cleanup...* libguile/bytevectors.c (scm_bootstrap_bytevectors): Remove a call to
scm_gc_protect_object.
* libguile/gc.h:
* libguile/gc.c (scm_init_gc_protect_object): Rename from
scm_init_storage, and just return void. Make the GC boot procs have
internal linkage.
* libguile/init.c: Adapt to the name change.
| Andy Wingo | 2009-12-05 | 1 | -3/+3 |
* | Use `SCM_DEPRECATED' in declarations of deprecated functions/variables....* libguile/deprecated.c (SCM_BUILDING_DEPRECATED_CODE): New macro.
* libguile/async.c (SCM_BUILDING_DEPRECATED_CODE): Likewise.
* libguile/macros.c (SCM_BUILDING_DEPRECATED_CODE): Likewise.
* libguile/async.h, libguile/deprecated.h, libguile/eval.h,
libguile/gc.h, libguile/gc.h, libguile/macros.h, libguile/ports.h,
libguile/srfi-4.h, libguile/strings.h: Change declarations of
deprecated functions and variables to use `SCM_DEPRECATED' instead of
`SCM_API'.
| Ludovic Courtès | 2009-10-02 | 1 | -16/+16 |
* | Merge branch 'master' into boehm-demers-weiser-gc...Conflicts:
libguile/gc_os_dep.c
| Ludovic Courtès | 2009-09-09 | 1 | -1/+1 |
|\ |
|
| * | Make test-case compilation with -DSCM_DEBUG=1 work....* gc.h (scm_i_expensive_validation_check): Declare SCM_API.
| Ken Raeburn | 2009-09-03 | 1 | -1/+1 |
* | | 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.
| Ludovic Courtès | 2009-08-28 | 1 | -22/+0 |
* | | 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.
| Ludovic Courtès | 2009-08-25 | 1 | -9/+0 |
* | | 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
| Ludovic Courtès | 2009-08-18 | 1 | -6/+7 |
|\| |
|
| * | 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/*
)
| Neil Jerram | 2009-06-17 | 1 | -6/+7 |
| * | 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.
| Han-Wen Nienhuys | 2008-09-11 | 1 | -1/+0 |
* | | 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.
| Ludovic Courtès | 2009-03-22 | 1 | -2/+1 |
* | | Expose `GC_dump ()' at the Scheme level....* libguile/gc.h (scm_gc_dump): New declaration.
* libguile/gc.c (scm_gc_dump): New function.
| Ludovic Courtès | 2008-10-23 | 1 | -0/+1 |
* | | 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.
| Ludovic Courtès | 2008-09-18 | 1 | -1/+1 |
* | | Remove GC-related fields from `scm_i_thread'....* libguile/gc.h (scm_i_freelist, scm_i_freelist2): Remove declarations.
* libguile/threads.c (resume): Don't use `t->clear_freelists_p' and
`scm_i_freelist{,2}'.
(scm_enter_guile, scm_leave_guile, guilify_self_1): Don't use
the `heap_mutex' and other fields removed from `scm_i_thread'.
(scm_i_freelist, scm_i_freelist2): Remove.
* libguile/threads.h (scm_i_thread)[heap_mutex, freelist, freelist2,
clear_freelists_p]: Remove.
| Ludovic Courtès | 2008-09-17 | 1 | -2/+0 |
* | | 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
| Ludovic Courtès | 2008-09-10 | 1 | -3/+3 |
|\| |
|
| * | 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.
| Han-Wen Nienhuys | 2008-09-09 | 1 | -3/+10 |
| * | 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.
| Han-Wen Nienhuys | 2008-08-16 | 1 | -2/+0 |
| * | Introduce scm_i_marking to detect when GC mark bits are touched...outside of marking stage.
| Han-Wen Nienhuys | 2008-08-16 | 1 | -0/+2 |
| * | Add `SCM_INTERNAL' macro, use it. | Ludovic Courtès | 2008-05-31 | 1 | -5/+5 |
| * | replace port table with weak hash table. This simplifies...memory management, and fixes freed cells appearing in
port-for-each output.
| Han-Wen Nienhuys | 2007-08-26 | 1 | -1/+0 |
* | | Remove `scm_get_stack_base ()'....* libguile/threads.c: Replace `scm_get_stack_base ()' by
`GC_stackbottom'.
* libguile/gc.h (scm_get_stack_base): Remove declaration.
git-archimport-id: lcourtes@laas.fr--2006-libre/guile-core--boehm-gc--0--patch-7
| Ludovic Courtes | 2008-09-10 | 1 | -2/+1 |
* | | 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
| Ludovic Courtes | 2008-09-10 | 1 | -6/+1 |
* | | Merge commit 'f30e1bdf97ae8b2b2918da585f887a4d3a23a347' into boehm-demers-wei......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
| Ludovic Courtès | 2008-09-10 | 1 | -4/+5 |
|\| |
|
| * | Changes from arch/CVS synchronization | Ludovic Courtès | 2006-11-08 | 1 | -4/+0 |
| * | * configure.in: New check for uca lib (needed for IA64 on HP-UX)....* threads.c (SCM_MARK_BACKING_STORE): Use scm_ia64_ar_bsp() and
scm_ia64_register_backing_store_base() instead of Linux-specific
implementations.
* gc.h (scm_ia64_register_backing_store_base, scm_ia64_ar_bsp):
New declarations.
* gc.c (__libc_ia64_register_backing_store_base): Declaration
removed.
(scm_ia64_register_backing_store_base, scm_ia64_ar_bsp): New, with
implementations for Linux and HP-UX.
* coop-pthreads.c (SCM_MARK_BACKING_STORE): Use scm_ia64_ar_bsp()
and scm_ia64_register_backing_store_base() instead of
Linux-specific implementations.
* continuations.h (__libc_ia64_register_backing_store_base):
Declaration removed.
(scm_t_contregs): New "fresh" field.
* continuations.c (ia64_getcontext): Removed.
(scm_make_continuation): Use continuation fresh field instead of
interpreting getcontext return values (which isn't portable). Use
scm_ia64_ar_bsp() and scm_ia64_register_backing_store_base()
instead of Linux-specific implementations.
(copy_stack_and_call): Use scm_ia64_register_backing_store_base()
instead of Linux-specific implementation.
* _scm.h (__ia64__): Also detect __ia64.
| Neil Jerram | 2006-10-25 | 1 | -0/+5 |
* | | 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
| Ludovic Courtes | 2008-09-10 | 1 | -2/+2 |
* | | 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
| Ludovic Courtes | 2008-09-05 | 1 | -2/+0 |
* | | 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
| Ludovic Courtes | 2008-09-05 | 1 | -0/+2 |
* | | 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
| Ludovic Courtes | 2008-09-05 | 1 | -2/+0 |