hboehm [Wed, 11 Mar 2009 23:46:43 +0000 (23:46 +0000)]
2009-03-11 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
* include/private/gc_pmark.h (PUSH_CONTENTS_HDR for
MARK_BIT_PER_OBJ): Add missing backslash before eoln.
hboehm [Sun, 1 Mar 2009 01:52:59 +0000 (01:52 +0000)]
2009-02-28 Hans Boehm <Hans.Boehm@hp.com>
* misc.c (GC_set_warn_proc): Implicitly intialize GC on
non-Cygwin win32.
hboehm [Sun, 1 Mar 2009 01:17:36 +0000 (01:17 +0000)]
2009-02-28 Hans Boehm <Hans.Boehm@hp.com> (Really Petr Krajca)
* configure.ac: Enable thread-local allocation for sparc-linux.
* configure: Regenerate.
hboehm [Sun, 1 Mar 2009 00:43:01 +0000 (00:43 +0000)]
2009-02-28 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidansky)
* alloc.c (GC_try_to_collect): Remove duplicate initialization
check.
* malloc.c (GC_generic_malloc): Remove lw to eliminate single-
threaded warnings.
* mallocx.c (GC_generic_malloc_ignore_off_page): Ditto.
hboehm [Sun, 1 Mar 2009 00:20:14 +0000 (00:20 +0000)]
2009-02-28 Hans Boehm <Hans.Boehm@hp.com> (Mostly Ivan Maidansky)
* allchblk.c, backgraph.c, dbg_mlc.c, dyn_load.c,
finalize.c, include/private/gc_pmark.h, malloc.c, mark.c,
os_dep.c, pthread_stop_world.c, pthread_support.c, reclaim.c,
thread_local_alloc.c.
* misc.s: Refine comment.
2009-02-28 Hans Boehm <Hans.Boehm@hp.com>
* os_dep.c: Define GC_GWW_BUF_LEN more intelligently. Add FIXME
comment.
hboehm [Sat, 28 Feb 2009 23:29:44 +0000 (23:29 +0000)]
2009-02-28 Hans Boehm <Hans.Boehm@hp.com> (With input from Ivan Maidansky)
* win32_threads.c (GC_push_stack_for): Yet another attempt
at the stack_min finding logic. Try to clean up the existing code
while minimizing VirtualQuery calls.
(GC_win32_start_inner): Register thread before GC_printf.
Produce more output with DEBUG_THREADS.
*include/gc.h: Update obsolete comments.
hboehm [Tue, 24 Feb 2009 22:44:52 +0000 (22:44 +0000)]
2009-02-24 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidansky)
* tests/test.c:
(gcj_class_struct2): Use cast instead of l suffix.
Cast GetLastError to int in various places.
Avoid unused result warning from incr/decr macros.
Add cast for fake_gcj_mark_proc.
Cast GC_gc_no to unsigned in printf.
hboehm [Tue, 24 Feb 2009 21:54:25 +0000 (21:54 +0000)]
2009-02-24 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidansky)
* include/gc.h: Fix two typos in comments.
hboehm [Tue, 24 Feb 2009 21:44:44 +0000 (21:44 +0000)]
2009-02-24 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidansky)
* finalize.c: Fix typo in comment.
hboehm [Thu, 4 Dec 2008 01:45:52 +0000 (01:45 +0000)]
2008-12-03 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidansky)
* blacklst.c (GC_print_source_pointer): Don't call GC_print_heap_obj
with lock.
hboehm [Tue, 2 Dec 2008 00:37:17 +0000 (00:37 +0000)]
2008-12-01 Hans Boehm <Hans.Boehm@hp.com>
* reclaim.c: (GC_reclaim_block): Scan even nearly full blocks
if we are checking for leaks.
hboehm [Thu, 13 Nov 2008 01:26:56 +0000 (01:26 +0000)]
2008-11-12 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Ivan Maidansky)
* win32_threads.c: Remove mark lock spinning.
* win32_threads.c, pthread_support.c: Update GC_unlocked_count,
GC_spin_count, and GC_block_count using atomic operations.
* tests/test.c: Declare n_tests as AO_t only if we have threads.
hboehm [Wed, 12 Nov 2008 01:08:51 +0000 (01:08 +0000)]
2008-11-11 Hans Boehm <Hans.Boehm@hp.com>
(Really almost entirely Ivan Maidansky)
* win32_threads.c: Support PARALLEL_MARK. Make printf arg
types agree with format specifiers. Add missing copyright header.
Add STATIC for GC_threads.
* include/private/gcconfig.h: Add FIXME comment.
* tests/test.c (run_ine_test): Replace LOCK/UNLOCK use with
AO_fetch_and_add1_full. Declare n_tests as AO_t.
(WinMain): Dont call GC_use_DllMain.
with PARALLEL_MARK or THREAD_LOCAL_ALLOC.
hboehm [Tue, 11 Nov 2008 00:24:52 +0000 (00:24 +0000)]
2008-11-10 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidansky)
* alloc.c (GC_try_to_collect_inner): Don't print redundant
GC_bytes_allocd and GC_gc_no.
(GC_stopped_mark): Print average world stop time.
* include/private/gc_priv.h (MS_TIME_DIFF): Add cast.
hboehm [Mon, 10 Nov 2008 23:15:32 +0000 (23:15 +0000)]
2008-11-10 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Ivan Maidansky)
* misc.c, doc/README.environment: Add support for
GC_FREE_SPACE_DIVISOR and GC-disable-incremental.
* include/gc.h: Make GC_set_free_space_divisor correspond to
(somewhat unfortunate) reality.
hboehm [Sat, 8 Nov 2008 00:29:55 +0000 (00:29 +0000)]
2008-11-07 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidansky)
(Mostly improves LLP64 support.)
* backgraph.c, checksums.c, dbg_mlc.c, finalize.c, mark.c,
misc.c, reclaim.c: Changed some int and long type to word or size_t
(and vice versa where appropriate)
* gcj_mlc.c, include/private/dbg_mlc.h, include/private/gcconfig.h,
include/private/thread_local_alloc.h, mark.c,
misc.c, thread_local_alloc.c, win32_threads.c: Added intermediate
casts to word type when casting from int to pointer (or pointer
to int, or data pointer to code pointer) - just to remove the
corresponding compiler warning.
* ptr_chck.c (GC_is_visible): cast int const to word type to
prevent left shift overflow.
* os_dep.c: change the type of GC_mem_top_down global var
(containing a flag) to DWORD.
* include/gc_config_macros.h: define GC_SOLARIS_THREADS if GC_THREADS
is defined on SunOS x86_64.
* misc.c (GC_init_size_map): Ifdef out GC_ASSERT as a workaround
for VC++ 2008 amd64 (v15.00.21022.08 for x64) compiler bug
(the compiler gets hung if invoked with -Ox -D
ALL_INTERIOR_POINTERS -D GC_ASSERTIONS)
* backgraph.c: cast GC_gc_no value to unsigned short when
assigned/compared to height_gc_no field of back_edges.
* os_dep.c (GC_remove_protection): Add ARGSUSED.
* win32_threads.c (GC_thread_exit_proc): Remove unused local var.
* mark.c (GC_check_dirty): Move declaration out of func body.
hboehm [Fri, 7 Nov 2008 00:53:21 +0000 (00:53 +0000)]
2008-11-06 Hans Boehm <Hans.Boehm@hp.com>
* doc/gcinterface.html: Improve REDIRECT_MALLOC documentation.
* include/gc.h (GC_register_my_thread): Improve comment.
hboehm [Wed, 5 Nov 2008 01:11:08 +0000 (01:11 +0000)]
2008-11-04 Hans Boehm <Hans.Boehm@hp.com>
* Makefile.direct: Add comment for -DCHECKSUMS.
hboehm [Tue, 28 Oct 2008 00:58:57 +0000 (00:58 +0000)]
2008-10-27 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidansky)
* thread_local_alloc.c, include/private/thread_local_alloc.h:
Fix typos in comments.
* finalize.c: Declare mark_procs and GC_register_finalizer_inner
STATIC.
* malloc.c (GC_free): Move size calculation below assertion.
hboehm [Tue, 28 Oct 2008 00:42:29 +0000 (00:42 +0000)]
2008-10-27 Hans Boehm <Hans.Boehm@hp.com>
* win32_threads.c (GC_get_stack_min, GC_may_be_in_stack):
Add one entry VirtualQuery cache, I_HOLD_LOCK assertions.
(GC_push_stack_for, GC_get_next_stack) : Hopefully fix WINCE support.
2008-10-27 Hans Boehm <Hans.Boehm@hp.com> (Thanks to Klaus Treichel.)
* finalize.c (GC_general_register_disappearing_link): Add
assertion.
* malloc.c (GC_generic_malloc): Round lb to granules, not words.
* mallocx.c (GC_generic_malloc_ignore_off_page): Round lb to
granules, not words.
hboehm [Mon, 27 Oct 2008 22:55:49 +0000 (22:55 +0000)]
2008-10-27 Hans Boehm <Hans.Boehm@hp.com> (Really Rex Dieter and
Petr Krajca)
* mach_dep.c (NO_GETCONTEXT): Define for sparc linux.
* configure.ac: Define mach_dep for sparc-linux.
* configure: Regenerate.
hboehm [Sun, 26 Oct 2008 05:22:45 +0000 (05:22 +0000)]
2008-10-25 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidansky)
* mark_rts.c (GC_approx_sp): Use volatile to avoid common
warning.
hboehm [Sun, 26 Oct 2008 05:16:36 +0000 (05:16 +0000)]
2008-10-25 Hans Boehm <Hans.Boehm@hp.com>
* dyn_load.c (GC_cond_add_roots): Fix GC_get_next_stack argument
order.
hboehm [Sat, 25 Oct 2008 05:03:02 +0000 (05:03 +0000)]
2008-10-24 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
* alloc.c, dbg_mlc.c, dyn_load.c, finalize.c, gcj_mlc.c,
include/gc.h, include/gc_config_macros.h, include/gc_cpp.h,
include/gc_gcj.h, include/gc_mark.h, include/gc_typed.h,
include/javaxfc.h, include/private/gc_locks.h,
include/private/gc_priv.h, malloc.c, mallocx.c, mark.c, mark_rts.c,
misc.c, obj_map.c, os_dep.c, pthread_support.c, ptr_chck.c,
stubborn.c, tests/test.c, thread_local_alloc.c, typd_mlc.c
win32_threads.c: Add GC_CALL and GC_CALLBACK macro invocations.
* test.c: Remove some old K&R code.
hboehm [Sat, 25 Oct 2008 00:13:19 +0000 (00:13 +0000)]
2008-10-24 Hans Boehm <Hans.Boehm@hp.com>
(Partially based loosely on patch from Ivan Maidanski)
* win32_threads.c (GC_may_be_in_stack): New. (GC_Thread_Rep):
Add last_stack_min. (GC_push_stack_for): Use last_stack_min.
(GC_get_next_stack): Add limit argument, use_last_stack_min.
(GC_suspend): make stack_base assignment conditional.
* dyn_load.c (win32 GC_cod_add_roots): Pass limit to
GC_get_next_stack.
* configure_atomic_ops.sh: Remove.
* build_atomic_ops.sh, build_atomic_ops.sh.cygwin, doc/README.win32,
Makefile.direct: Partially support build directories whose path
name contains blanks.
* Makefile.am: Support new files (build_atomic_ops.sh,
build_atomic_ops.sh.cygwin)
* Makefile.in: Regenerate.
hboehm [Wed, 22 Oct 2008 01:06:28 +0000 (01:06 +0000)]
2008-10-21 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
* include/private/gc_locks.h, include/private/gc_pmark.h,
include/private/gc_priv.h, include/private/gcconfig.h,
mach_dep.c, mark_rts.c, misc.c, os_dep.c, pthread_stop_world.c,
pthread_support.c, thread_local_alloc.c, typd_mlc.c, win32_threads.c:
Fix comments.
hboehm [Wed, 22 Oct 2008 00:45:55 +0000 (00:45 +0000)]
2008-10-21 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
* pthread_support.c: Comment out LOCK_STATS.
* include/gc.h: Fix comments.
hboehm [Mon, 20 Oct 2008 23:42:32 +0000 (23:42 +0000)]
2008-10-20 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
* misc.c (GC_init_inner): Enable GC_LOG_FILE on Cygwin.
* include/private/gcconfig.h: Consider USE_MMAP for Cygwin.
* os_dep.c (GC_get_main_stack_base): Use alternate definition
with USE_MMAP.
* include/private/gc_priv.h: Sometimes define SETJMP on Cygwin.
hboehm [Mon, 20 Oct 2008 23:11:27 +0000 (23:11 +0000)]
2008-10-20 Hans Boehm <Hans.Boehm@hp.com>
* doc/README: Make it clearer when Makefile.direct is assumed.
* cord/cord.am: install include/cord.h.
* Makefile.in: Regenerate.
hboehm [Thu, 25 Sep 2008 00:51:23 +0000 (00:51 +0000)]
2008-09-24 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
* win32_threads.c (GC_pthread_join, GC_pthread_start_inner):
Remove unused variables.
* darwin_stop_world.c: Always declare GC_thr_init().
* dbg_mlc.c (GC_debug_free_inner): Dont touch oh_sz if
SHORT_DBG_HDRS is defined.
* include/private/gc_pmark.h (OR_WORD_EXIT_IF_SET, parallel
mark, USE_MARK_BITS version): Refer to correct parameter name.
hboehm [Thu, 25 Sep 2008 00:24:21 +0000 (00:24 +0000)]
2008-09-24 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
* finalize.c (GC_general_register_disappearing_link): Remove
redundant code.
* gcj_mlc.c (GC_init_gcj_malloc): Add cast to signed.
* os_dep.c: (GC_write_fault_handler): Remove remaining
references to deleted variable "code". Remove redundant
FREEBSD definitions.
* include/private/gcconfig.h (GWW_VDB): Define for X86_64 when
defined for X86. (STATIC): Define as "static" with NO_DEBUGGING.
hboehm [Wed, 24 Sep 2008 23:34:47 +0000 (23:34 +0000)]
2008-09-24 Hans Boehm <Hans.Boehm@hp.com>
* include/private/gc_priv.h: Update MAX_HEAP_SECTS.
hboehm [Thu, 11 Sep 2008 01:37:57 +0000 (01:37 +0000)]
2008-09-10 Hans Boehm <Hans.Boehm@hp.com>
* dbg_mlc.c (GC_print_smashed_obj): Increase robustness with
smashed string, (GC_debug_free_inner): Mark as free.
* mallocx.c (GC_malloc_many): Always clear new block if
GC_debugging_started.
* reclaim.c: Move GC_debugging_started from
GC_reclaim_small_nonempty_block() to GC_reclaim_generic(),
which is also called directly.
* doc/README: Fix spelling error. Update license summary.
* include/gc.h (GC_PRE_INCR3, GC_POST_INCR3): add (void **) casts.
* tests/test.c: Don't define GC_DEBUG if already defined.
hboehm [Wed, 27 Aug 2008 22:14:51 +0000 (22:14 +0000)]
2008-08-27 Hans Boehm <Hans.Boehm@hp.com>
* doc/simple_example.html: update --enable-full-debug reference,
Make HTML formatting standards compliant.
* doc/debugging.html, doc/leak.html: Fix HTML formatting bugs.
* doc/gcinterface.html: specify encoding.
hboehm [Wed, 27 Aug 2008 20:40:25 +0000 (20:40 +0000)]
2008-08-27 Hans Boehm <Hans.Boehm@hp.com> (with help from Marco Maggi)
* doc/simple_example.html: Update thread-local allocation
description.
hboehm [Tue, 26 Aug 2008 23:11:47 +0000 (23:11 +0000)]
2008-08-26 Hans Boehm <Hans.Boehm@hp.com> (with help from Marco Maggi)
* configure.ac: Check for gc-debug earlier; replace remaining
full-debug tests.
* configure: Regenerate.
* include/gc.h, ptr_chck.c (GC_pre_incr, GC_post_incr):
Use signed offset type. Use ptr_t internally.
* doc/gcinterface.html: Update LOCAL_MALLOC description.
* doc/README.autoconf, doc/leak.html, doc/README.DGUX386:
Fix full-debug reference.
* include/gc.h: Rewrite GC_..._INCR and friends.
* tests/test.c: Minimally test GC_..._INCR and friends.
hboehm [Thu, 21 Aug 2008 21:06:56 +0000 (21:06 +0000)]
2008-08-21 Hans Boehm <Hans.Boehm@hp.com>
* mark.c: (GC_push_next_marked, GC_push_next_marked_dirty,
GC_push_next_marked_uncollectable): Never invoke GC_push_marked
on free hblk.
* headers.c: Test COUNT_HDR_CACHE_HITS not USE_HDR_CACHE.
(GC_header_cache_miss): Always blacklist pointers for free
hblks. Add assertion and comment.
* pthread_support.c (GC_register_my_thread): Fix #if indentation.
* include/private/gc_hdrs.h: USE_HDR_CACHE is no longer tested.
Delete it.
* include/private/gc_pmark.h: (PUSH_OBJ): Add assertion.
2008-08-21 Hans Boehm <Hans.Boehm@hp.com>
* alloc.c, include/gc_mark.h, Makefile.direct: Improve comments.
hboehm [Fri, 1 Aug 2008 21:55:57 +0000 (21:55 +0000)]
2008-08-01 Hans Boehm <Hans.Boehm@hp.com> (Really Klaus Treichel)
* configure.ac: Set win32_threads on MinGW.
* configure: Regenerate.
hboehm [Sat, 26 Jul 2008 00:51:33 +0000 (00:51 +0000)]
2008-07-25 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Ivan Maidanski)
Ivan's description of the patch follows. Note that a few pieces like
the GC_malloc(0) patch, were not applied since an alternate had been
previously applied. A few differed stylistically from the rest of
the code (mostly casts to void * instead of target type),
or were classified as too minor to bother. Note that
all of Ivan's static declarations which did not correct outright
naming bugs (as a few did), where replaced by STATIC, which is
ignored by default.
- minor bug fixing (for FreeBSD, for THREAD_LOCAL_ALLOC and for
GC_malloc(0));
- addition of missing getter/setter functions for public variables
(may be useful if compiled as Win32 DLL);
- addition of missing GC_API for some exported functions;
- addition of missing "static" declarator for internal functions
and variables (where possible);
- replacement of all remaining K&R-style definitions with ANSI
C ones (__STDC__ macro is not used anymore);
- addition of some Win32 macro definitions (that may be missing in
the standard headers supplied with a compiler) for GWW_VDB mode;
- elimination of most compiler warnings (except for
"uninitialized data" warning);
- several typos correction;
- missing parenthesis addition in macros in some header files of
"libatomic_ops" module.
My highlights based on reading the patch:
* allchblk.c: Remove GC_freehblk_ptr decl.
Make free_list_index_of() static.
* include/gc.h: Use __int64 on win64, define GC_oom_func,
GC_finalizer_notifier_proc, GC_finalizer_notifier_proc,
add getter and setters: GC_get_gc_no, GC_get_parallel,
GC_set_oom_fn, GC_set_finalize_on_demand,
GC_set_java_finalization, GC_set_dont_expand,
GC_set_no_dls, GC_set_max_retries, GC_set_dont_precollect,
GC_set_finalizer_notifier. Always define GC_win32_free_heap.
gc_config_macros.h: Define _REENTRANT after processing
GC_THREADS.
* include/gc_cpp.h: Improve GC_PLACEMENT_DELETE test,
handling of operator new[] for old Windows compilers.
* include/gc_inline.h (GC_MALLOC_FAST_GRANS): Add parentheses
around arguments.
* dbg_mlc.c, malloc.c, misc.c: Add many GC_API specs.
* mark.c (GC_mark_and_push_stack): Fix source argument for
blacklist printing.
* misc.c: Fix log file naming based on environment variable
for Windows. Make GC_set_warn_proc and GC_set_free_space_divisor
just return current value with 0 argument. Add DONT_USER_USER32_DLL.
Add various getters and setters as in gc.h.
* os_dep.c: Remove no longer used GC_disable/enable_signals
implementations. (GC_get_stack_base): Add pthread_attr_destroy
call. No longer set GC_old_bus_handler in DARWIN workaround.
* pthread_support.c: GC_register_my_thread must also
call GC_init_thread_local.
hboehm [Tue, 22 Jul 2008 00:29:00 +0000 (00:29 +0000)]
2008-07-21 Hans Boehm <Hans.Boehm@hp.com>
* Makefile.direct, mach_dep.c: Add support for NO_GETCONTEXT.
* mach_dep.c: Include signal.h.
* gc_priv.h: Factor out INLINE declaration.
hboehm [Thu, 3 Jul 2008 21:46:04 +0000 (21:46 +0000)]
2008-07-03 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Thiemo Seufer)
* include/private/gcconfig.h: Update MIPS/LINUX config.
* doc/gcdescr.html: Fix typo.
* mach_dep.c (GC_with_callee_saves_pushed): Don't rely on getcontext
for MIPS/LINUX.
hboehm [Sat, 31 May 2008 00:40:00 +0000 (00:40 +0000)]
2008-05-30 Hans Boehm <Hans.Boehm@hp.com> (some really dmcmahill)
* configure.ac: SPARC fixes.
* configure: Regenerate.
* thread_local_alloc.c(GC_mark_thread_local_fls_for): Include
size 0, except for gcj.
* doc/gc.man: Expand C++ cautions.
* include/gc_inline.h: Fix comments.
hboehm [Sun, 4 May 2008 01:20:36 +0000 (01:20 +0000)]
2008-05-03 Hans Boehm <Hans.Boehm@hp.com>
* include/gc_version.h, configure.ac, doc/README:
Change to version 7.2alpha1.
* configure: Regenerate.
hboehm [Sun, 4 May 2008 01:07:59 +0000 (01:07 +0000)]
2008-05-03 Hans Boehm <Hans.Boehm@hp.com>
* include/gc_version.h, configure.ac, doc/README:
Change to version 7.1.
* configure: Regenerate.
hboehm [Sun, 4 May 2008 00:48:31 +0000 (00:48 +0000)]
2008-05-03 Hans Boehm <Hans.Boehm@hp.com>
* doc/gcinterface.html: Improve C++ interface documentation.
hboehm [Mon, 10 Mar 2008 16:16:40 +0000 (16:16 +0000)]
2008-03-10 Hans Boehm <Hans.Boehm@hp.com>
* allchblk.c (GC_allochblk): Check for overflow during size
rounding.
* tests/huge_test.c: New.
* Makefile.direct, tests/tests.am: Add huge_test.c
* Makefile.in: Regenerate.
hboehm [Fri, 29 Feb 2008 20:06:36 +0000 (20:06 +0000)]
2008-02-29 Hans Boehm <Hans.Boehm@hp.com>
* pthread_support.c: Fix typo in comment.
* os_dep.c (GC_win32_get_mem): Add heap section only if
allocation succeeded.
hboehm [Thu, 28 Feb 2008 18:05:52 +0000 (18:05 +0000)]
2008-02-28 Hans Boehm <Hans.Boehm@hp.com>
* malloc.c: (free replacement) Fix caller address space check.
hboehm [Tue, 26 Feb 2008 06:09:07 +0000 (06:09 +0000)]
2008-02-25 Hans Boehm <Hans.Boehm@hp.com>
* finalize.c (GC_grow_table): Dereference table in null-check.
hboehm [Sun, 24 Feb 2008 20:25:02 +0000 (20:25 +0000)]
2008-02-24 Hans Boehm <Hans.Boehm@hp.com>
* win32_threads.c (GC_delete_gc_thread, GC_delete_thread):
Consistently call CloseHandle. (GC_suspend): Call
GC_delete_gc_thread.
* tests/test.c: Don't reference GC_print_stats if not exported.
hboehm [Wed, 20 Feb 2008 22:27:57 +0000 (22:27 +0000)]
2008-02-20 Hans Boehm <Hans.Boehm@hp.com>
* tests/test.c (run_one_test): Don't mention pthread_self().
* misc.c: Declare GC_thr_init().
hboehm [Wed, 20 Feb 2008 22:02:46 +0000 (22:02 +0000)]
2008-02-20 Hans Boehm <Hans.Boehm@hp.com>
* allchblk.c (add_to_fl): disable assertions with USE_MUNMAP,
and refine assertions to handle huge unmergable blocks.
(GC_allochblk_nth): Add comment.
hboehm [Wed, 20 Feb 2008 20:17:20 +0000 (20:17 +0000)]
2008-02-20 Hans Boehm <Hans.Boehm@hp.com>
* include/private/gcconfig.h: Add misssing FREEBSD macro
consistency test.
hboehm [Wed, 20 Feb 2008 18:48:42 +0000 (18:48 +0000)]
2008-02-20 Hans Boehm <Hans.Boehm@hp.com>
* allchblk.c (GC_enough_large_bytes_left): No longer take
parameters; return free list index bound.
(GC_merge_unmapped): Don't access nexthdr until after null test.
(Fixes bug in 1/29/08 check-in.) (GC_allochblk): Calculate
when splitting is allowable only once here, not when considering each
block. (GC_allchblk_nth): Accept new may_split parameter.
Avoid some redundant tests for exact size matches.
* alloc.c (GC_should_collect): Cache min_bytes_allocd.
(GC_maybe_gc): Make locking assertion testable.
* mark_rts.c: Fix indentation.
* pthread_stop_world.c: Replace old GC_err_printf1 reference.
* tests/test.c: Remove (void) casts. Optionally print some
timing information.
hboehm [Sat, 16 Feb 2008 06:07:00 +0000 (06:07 +0000)]
2008-02-15 Hans Boehm <Hans.Boehm@hp.com>
* windows-untested/gc.def: Remove CreateThread line.
* windows-untested/README: New file.
* win32_threads.c (GC_use_DllMain): Force collector initialization.
(GC_init_parallel): Reformat comment.
* include/gc.h (GC_use_DllMain): Clarify usage rules in comment.
* mark.c (GC_mark_from): Slightly simplify GC_DS_PER_OBJECT code.
* include/gc_cpp.h: Add matching placement delete overloads
everywhere.
* include/private/gc_locks.h (NO_THREAD): Add cast.
* include/private/gcconfig.h: Add test for __HP_aCC.
* configure.ac, tests/tests.am: Avoid libgccpp on HP/UX.
* Makefile.in, configure: Regenerate.
hboehm [Tue, 12 Feb 2008 00:16:56 +0000 (00:16 +0000)]
2008-02-11 Hans Boehm <Hans.Boehm@hp.com> (partly David Leonard)
* doc/README.win32: Fix typo.
* configure.ac: Fix printing of enable-shared result.
* configure: Regenerate.
hboehm [Sun, 10 Feb 2008 00:49:33 +0000 (00:49 +0000)]
2008-02-08 Hans Boehm <Hans.Boehm@hp.com>
* misc.c (GC_init_inner): Assert !GC_need_to_lock only when
defined. (GC_call_with_stack_base): Add GC_API.
* os_dep.c (GC_get_stack_base): Add GC_API.
* win32_threads.c: (GC_register_my_thread, GC_unregister_my_thread):
Add GC_API.
* include/gc.h: Add GC_API annotations.
* include/private/gc_locks.h: Define UNCOND_LOCK etc. also for
PCR.
* include/private/gc_pmark.h: Fix comments.
hboehm [Thu, 7 Feb 2008 00:58:28 +0000 (00:58 +0000)]
2008-02-06 Hans Boehm <Hans.Boehm@hp.com> (mostly from Henning Makholm)
* include/private/gc_priv.h, mark_rts.c, typd_mlc.c:
Add GC_push_typed_structures() to push GC_ext_descriptors.
hboehm [Thu, 31 Jan 2008 22:17:18 +0000 (22:17 +0000)]
2008-01-31 Hans Boehm <Hans.Boehm@hp.com> (mostly from Andreas Tobler)
* tests/test.c: Call GC_INIT for DARWIN; test system type using
gcconfig.h-defined macros.
hboehm [Wed, 30 Jan 2008 01:37:16 +0000 (01:37 +0000)]
2008-01-29 Hans Boehm <Hans.Boehm@hp.com>
* allchblk.c (GC_merge_unmapped, GC_freehblk): Refuse to create
blocks large enough that their size, when interpreted as a signed
value, would be negative.
* include/private/gc_priv.h: Comment hb_sz range limit.
hboehm [Tue, 29 Jan 2008 19:24:58 +0000 (19:24 +0000)]
2008-01-29 Hans Boehm <Hans.Boehm@hp.com> (with help from Manuel Serrano)
* mark.c (GC_push_next_marked): correct comment.
* Makefile.direct: document NO_PROC_STAT.
* include/private/gcconfig.h: Accomodate NO_PROC_STAT.
hboehm [Fri, 11 Jan 2008 01:58:20 +0000 (01:58 +0000)]
2008-01-10 Hans Boehm <Hans.Boehm@hp.com>
* include/gc_version.h, configure.ac, doc/README:
Change to version 7.1alpha3.
* configure: Regenerate.
hboehm [Fri, 11 Jan 2008 01:45:51 +0000 (01:45 +0000)]
2008-01-10 Hans Boehm <Hans.Boehm@hp.com>
* include/gc_version.h, configure.ac, doc/README:
Change to version 7.1alpha2.
* configure: Regenerate.
hboehm [Fri, 11 Jan 2008 00:04:28 +0000 (00:04 +0000)]
2008-01-10 Hans Boehm <Hans.Boehm@hp.com>
* Makefile.am: Mention atomic_ops.c and atomic_ops_sysdeps.S
again. Refer to build directory as ".".
* Makefile.in: Regenerate.
hboehm [Thu, 10 Jan 2008 21:47:52 +0000 (21:47 +0000)]
2008-01-10 Hans Boehm <Hans.Boehm@hp.com>
* configure.ac: Ignore --enable-parallel-mark on Darwin for now.
* configure: Regenerate.
* darwin_stop_world.c: Add FIXME comment for parallel marker.
hboehm [Wed, 9 Jan 2008 19:13:51 +0000 (19:13 +0000)]
2008-01-09 Hans Boehm <Hans.Boehm@hp.com>
* include/private/gc_priv.h: Update MAX_ROOT_SETS
and LOG_PHT_ENTRIES to handle larger heaps.
hboehm [Tue, 8 Jan 2008 06:07:39 +0000 (06:07 +0000)]
2008-01-07 Hans Boehm <Hans.Boehm@hp.com>
* include/private/gc_priv.h: Update MAX_ROOT_SETS
and LOG_PHT_ENTRIES to handle larger heaps.
hboehm [Thu, 3 Jan 2008 23:05:59 +0000 (23:05 +0000)]
2007-01-03 Hans Boehm <Hans.Boehm@hp.com>
* include/gc.h (GC_INIT,GC_init): Update comments.
hboehm [Thu, 3 Jan 2008 21:56:19 +0000 (21:56 +0000)]
2007-01-03 Hans Boehm <Hans.Boehm@hp.com> (based on a patch from
John Bowman, and an ancient patch from Fergus Henderson)
* allchblk.c, alloc.c, include/private/gc_priv.h:
Track GC_bytes_dropped and use in GC triggering decisions.
* alloc.c (min_bytes_allocd): Weight atomic blocks less.
hboehm [Thu, 3 Jan 2008 01:21:05 +0000 (01:21 +0000)]
2007-01-02 Hans Boehm <Hans.Boehm@hp.com>
* alloc.c (GC_add_to_heap): Call GC_install_header(p) AFTER
adjusting p.
hboehm [Sun, 23 Dec 2007 22:08:07 +0000 (22:08 +0000)]
2007-12-23 Hans Boehm <Hans.Boehm@hp.com>
* Makefile.am: Add NT_X64_THREADS_MAKEFILE.
hboehm [Sun, 23 Dec 2007 22:00:43 +0000 (22:00 +0000)]
2007-12-23 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Friedrich Dominicus)
* NT_X64_STATIC_THREADS_MAKEFILE: Clean up obsolete comment.
* alloc.c: Add declaration for GC_add_current_malloc_heap.
* win32_threads.c (GC_beginthreadex): Clean up error
return code.
* doc/README.win64, NT_X64_THREADS_MAKEFILE, Makefile.direct:
Add NT_X64_THREADS_MAKEFILE.
hboehm [Sat, 22 Dec 2007 01:32:35 +0000 (01:32 +0000)]
2007-12-21 Hans Boehm <Hans.Boehm@hp.com>
* include/include.am: Adjust for version.h rename.
* Makefile.in: Regenerate.
hboehm [Sat, 22 Dec 2007 01:05:43 +0000 (01:05 +0000)]
2007-12-21 Hans Boehm <Hans.Boehm@hp.com>
* alloc.c: Define GC_version instead of in version.h.
* version.h: Remove.
* include/gc_version.h: Move most of version.h here.
* include/gc.h: Include gc_version.h.
* gcname.c, add_gc_prefix.c: include gc.h instead of version.h.
* Makefile.direct, Makefile.dj, Makefile.am: Adjust for
version.h rename.
2007-12-21 Hans Boehm <Hans.Boehm@hp.com> (Really mostly russ sludge dot net)
* configure.ac: Put libatomic_ops links in build directory.
* configure: Regenerate.
* Makefile.am: Dont mention atomic_ops.c and atomic_ops_sysdeps.S
as nodist sources.
hboehm [Fri, 21 Dec 2007 02:07:20 +0000 (02:07 +0000)]
2007-12-20 Hans Boehm <Hans.Boehm@hp.com>
* include/gc.h, doc/README.macros: Add GC_NO_THREAD_REDIRECTS,
GC_NO_THREAD_DECLS, don't test explicitly for GC_SOLARIS_THREADS.
hboehm [Fri, 21 Dec 2007 01:40:38 +0000 (01:40 +0000)]
2007-12-20 Hans Boehm <Hans.Boehm@hp.com>
* alloc.c: Deal correctly with address wrapping for
GC_greatest_plausible_heap_addr and GC_least_plausible_heap_addr.
* finalize.c, include/gc.h (GC_register_disappearing_link,
GC_register_finalizer_inner): Improve out-of-memory handling.
* include/private/gc_pmark.h: Fix comment spelling.
hboehm [Wed, 19 Dec 2007 01:51:39 +0000 (01:51 +0000)]
2007-12-18 Hans Boehm <Hans.Boehm@hp.com> (really mainly Peter Wang)
* include/gc_inline.h, include/gc_tiny_fl.h: cleanups to make usable in other
contexts.
2007-12-18 Hans Boehm <Hans.Boehm@hp.com> (really Radek Polak)
* include/gc.h: Don't define GC_HAVE_BUILTIN_BACKTRACE for uclibc.
hboehm [Tue, 18 Dec 2007 23:58:11 +0000 (23:58 +0000)]
2007-12-18 Hans Boehm <Hans.Boehm@hp.com>
* gc_cpp.cc: Don't include gc_cpp.h from local directory.
2007-12-18 Hans Boehm <Hans.Boehm@hp.com> (really Adam Megacz)
* allchblk.c, configure.ac (add --enable-munmap)
* configure: Regenerate.
a_tobler [Mon, 10 Dec 2007 18:49:55 +0000 (18:49 +0000)]
2007-12-10 Andreas Tobler <a.tobler@schweiz.org>
* dyn_load.c (GC_dyld_image_add): Remove ifdef clause and use the macro
GC_GETSECTBYNAME instead.
* include/private/gc_priv.h: Define GC_GETSECTBYNAME according to the
architecture (Darwin).
hboehm [Thu, 25 Oct 2007 00:41:06 +0000 (00:41 +0000)]
2007-10-24 Hans Boehm <Hans.Boehm@hp.com>
* reclaim.c (GC_bytes_found): Expand comment.
* thread_local_alloc.c (GC_malloc_atomic, GC_gcj_malloc): Pass
granules, not bytes, to GC_FAST_MALLOC_GRANS.
* include/gc.h: Never include gc_local_alloc.h.
* tests/test.c: Add size zero allocation tests.
hboehm [Wed, 24 Oct 2007 00:38:41 +0000 (00:38 +0000)]
2007-10-23 Hans Boehm <Hans.Boehm@hp.com>
* malloc.c: Update GC_large_allocd_bytes on explicit deallocation.
* allchblk.c: Sanity check GC_max_large_allocd_bytes.
hboehm [Wed, 24 Oct 2007 00:35:54 +0000 (00:35 +0000)]
2007-10-23 Hans Boehm <Hans.Boehm@hp.com> (Really Manuel Serrano)
* Makefile.direct: Invoke $(MAKE) instead of make.
hboehm [Wed, 24 Oct 2007 00:31:46 +0000 (00:31 +0000)]
2007-10-23 Hans Boehm <Hans.Boehm@hp.com>
* doc/scale.html: Reflect gc7 thread local allocation behavior.
hboehm [Wed, 24 Oct 2007 00:28:33 +0000 (00:28 +0000)]
2007-10-23 Hans Boehm <Hans.Boehm@hp.com> (really Petter Urkedal)
* include/extra/gc.h, include/extra/gc_cpp.h: New.
* include/include.am: Install gc.h and gc_cpp.h in $(prefix)/include
again.
* Makefile.in: Regenerate.
hboehm [Wed, 15 Aug 2007 21:50:29 +0000 (21:50 +0000)]
2007-08-15 Hans Boehm <Hans.Boehm@hp.com> (really Samuel Thibault)
* pthread_support.c (GC_thr_init): Use sysconf(_SC_NPROCESSORS_ONLN)
for HURD.
hboehm [Tue, 14 Aug 2007 20:57:26 +0000 (20:57 +0000)]
2007-08-14 Hans Boehm <Hans.Boehm@hp.com> (really David Daney)
* include/private/gcconfig.h: Add Linux/mips-64 support.
hboehm [Tue, 14 Aug 2007 20:33:52 +0000 (20:33 +0000)]
2007-08-14 Hans Boehm <Hans.Boehm@hp.com> (really mostly Samuel Thibault)
* dbg_mlc.c: Use random() on all glibc systems.
* mach_dep.c (GC_with_callee_saves_pushed): Don't use getcontext() on
HURD. Add comment.
* pthread_stop_world.c (GC_suspend_handler, GC_stop_init): Accomodate
systems without SA_SIGINFO.
hboehm [Tue, 14 Aug 2007 19:48:22 +0000 (19:48 +0000)]
2007-08-14 Hans Boehm <Hans.Boehm@hp.com> (partly really Henrik Theiling)
* include/gc.h (GC_PTR_STORE): Fix non-DEBUG parentheses.
* tests/test.c (run_one_test): Add GC_PTR_STORE test.
No longer test for RS6000.
hboehm [Sat, 4 Aug 2007 06:26:29 +0000 (06:26 +0000)]
2007-08-03 Hans Boehm <Hans.Boehm@hp.com>
* alloc.c, backgraph.c, headers.c, include/private/gc_priv.h:
Maintain GC_our_memory and GC_n_memory.
* dbg_mlc.c (GC_print_smashed_obj): Improve message.
(GC_print_all_smashed_proc): Pass client object address instead of
base.
* dyn_load.c (sort_heap_sects): New. (GC_register_map_entries):
Register sections that are contiguous and merged with our heap.
* malloc.c, os_dep.c (GC_text_mapping): Check for just base name
of libraries.
* malloc.c (calloc): Check for special callers even with
USE_PROC_FOR_LIBRARIES. Move assertion. Add rudimentary
malloc/free tracing.
* misc.c: No longer call GC_init_lib_bounds explicitly.
* thread_local_alloc.c (GC_malloc, GC_malloc_atomic): Always
initialize on demand.
* tests/test.c: Call GC_INIT only when required.
hboehm [Sat, 4 Aug 2007 05:59:28 +0000 (05:59 +0000)]
2007-08-03 Hans Boehm <Hans.Boehm@hp.com>
* Makefile.direct: Remove comment fragment.
* tests/tests.am: Add smashtest.
* Makefile.in: Regenerate.
* configure.ac: Define GC_USE_DLOPEN_WRAP with redirect-malloc.
* configure: Regenerate.
* pthread_support.c: Fix comment spelling.
* include/private/gcconfig.h: Define USE_PROC_FOR_LIBRARIES with
GC_LINUX_THREADS and REDIRECT_MALLOC.
* tests/smash_test.c: Initial check-in.
* obj_map.c: Print log entry to correct file.
* include/private/thread_local_alloc.h: Add TlsAlloc error check.
hboehm [Mon, 23 Jul 2007 21:01:46 +0000 (21:01 +0000)]
2007-07-23 Hans Boehm <Hans.Boehm@hp.com>
* alloc.c (GC_stopped_mark): Call GC_add_current_malloc_heap()
while world is still running.
* os_dep.c (GC_is_heap_base): Don't call GC_add_current_malloc_heap()
with world stopped.
* include/gc.h (GC_INIT for cygwin): Always call GC_add_roots.
* misc.c (GC_init/GC_init_inner): Perform all work in
GC_init_inner.
* Makefile.direct: Expand -DUSE_MUNMAP comment.
2007-07-23 Hans Boehm <Hans.Boehm@hp.com> (really Jim Marshall)
* include/gc.h: Define uintptr_t explicitly for VC++6.
* msvc_dbg.c (GetModuleBase): Revert to strcat if strcat_s doesn't
exist.
hboehm [Mon, 2 Jul 2007 23:09:59 +0000 (23:09 +0000)]
2007-07-02 Hans Boehm <Hans.Boehm@hp.com>
* configure: Regenerate, for real this time.
hboehm [Mon, 2 Jul 2007 23:08:21 +0000 (23:08 +0000)]
2007-07-02 Hans Boehm <Hans.Boehm@hp.com>
* version.h, configure.ac, doc/README: Change to version 7.1alpha1.
* configure: Regenerate.
hboehm [Mon, 2 Jul 2007 22:59:50 +0000 (22:59 +0000)]
2007-07-02 Hans Boehm <Hans.Boehm@hp.com>
* version.h, configure.ac, doc/README: Change to version 7.0.
* configure: Regenerate.
hboehm [Mon, 2 Jul 2007 22:01:11 +0000 (22:01 +0000)]
2007-07-02 Hans Boehm <Hans.Boehm@hp.com>
* include/gc_config_macros.h: Also check for IA64 when setting
GC_HPUX_THREADS.
* mallocx.c: Change my_bytes_allocd to signed_word.
* include/gc_pthread_redirects.h: Remove obsolete Solaris threads
(as opposed to pthreads) support.
hboehm [Mon, 2 Jul 2007 17:17:46 +0000 (17:17 +0000)]
2007-07-02 Hans Boehm <Hans.Boehm@hp.com>
* mach_dep.c (GC_with_callee_saves_pushed): Don't use getcontext()
on ARM/Linux. Check getcontext() return value.
hboehm [Sat, 30 Jun 2007 05:49:31 +0000 (05:49 +0000)]
2007-06-29 Hans Boehm <Hans.Boehm@hp.com>
* backgraph.c (per_object_func): Make argument types consistent.
(GC_traverse_back_graph): Mark GC_deepest_obj.
hboehm [Fri, 29 Jun 2007 19:39:27 +0000 (19:39 +0000)]
2007-06-29 Hans Boehm <Hans.Boehm@hp.com>
* finalize.c (GC_finalize): Change dl_size and fo_size to size_t.
* os_dep.c (GC_win32_get_mem): Add GC_mem_top_down option.
hboehm [Fri, 29 Jun 2007 00:16:27 +0000 (00:16 +0000)]
2007-06-28 Hans Boehm <Hans.Boehm@hp.com>
* doc/README.win32, doc/README, README.QUICK: Fix some of the worst
anachronisms.
* dyn_load.c: Partially support cygwin, but don't enable it yet.
hboehm [Thu, 28 Jun 2007 21:23:45 +0000 (21:23 +0000)]
2007-06-28 Hans Boehm <Hans.Boehm@hp.com>
* Makefile.am: Use -no-undefined for libgc.
* Makefile.in: Regenerate.
* Makefile.direct: Document USE_PROC_FOR_LIBRARIES.
* dyn_load.c (GC_register_map_entries): Rename prot_buf to prot
consistently.
* misc.c: Fix some WARN calls. Move GC_is_initialized setting and
GC_thr_init() call.
* os_dep.c: Consistently use WARN where appropriate.
* thread_local_alloc.c: Revert change to GC_WIN32_THREADS test. Instead
remove inappropriate pthread.h include.
* doc/README.linux: Remove some anachronisms.
* libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/powerpc.h (AO_load_acquire): Add
64-bit version.