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.
hboehm [Sun, 24 Jun 2007 02:19:31 +0000 (02:19 +0000)]
2007-06-23 Hans Boehm <Hans.Boehm@hp.com>
* alloc.c: Also use GC_check_tls on non-Linux systems.
* mallocx.c (GC_reclaim_generic): Remove bogus declaration.
* include/private/gc_priv.h (GC_reclaim_generic): Declare correctly
with prototype.
hboehm [Tue, 19 Jun 2007 18:27:41 +0000 (18:27 +0000)]
2007-06-19 Hans Boehm <Hans.Boehm@hp.com>
* alloc.c (GC_adj_bytes_allocd): Avoid (long) casts, fix comment.
(GC_print_heap_sects): Use size_t instead of unsigned long.
* thread_local_alloc.c (GC_lookup_thread): Define in the correct
context.
* win32_threads.c, include/gc_config_macros.h: The last of Romano
Paolo Tenca's patch. Move stdint.h include to gc_config_macros.h.
* include/gc_inline.h: Avoid gc_priv.h dependencies.
* tests/test.c (check_heap_stats): Replace unsigned long with size_t.
hboehm [Wed, 13 Jun 2007 05:16:27 +0000 (05:16 +0000)]
2007-06-12 Hans Boehm <Hans.Boehm@hp.com>
* aclocal.m4: Regenerate to update date.
hboehm [Sun, 10 Jun 2007 18:03:30 +0000 (18:03 +0000)]
2007-06-10 Hans Boehm <Hans.Boehm@hp.com>
* NT_X64_STATIC_THREADS_MAKEFILE: Replace obsolete -debugtype:cv.
* mark_rts.c (GC_push_roots): Fix kind type.
hboehm [Thu, 7 Jun 2007 04:35:18 +0000 (04:35 +0000)]
2007-06-06 Hans Boehm <Hans.Boehm@hp.com>
* doc/README.win64: New file.
* doc/doc.am, Makefile.direct: Add README.win64.
* Makefile.in: Regenerate.
hboehm [Thu, 7 Jun 2007 02:53:32 +0000 (02:53 +0000)]
2007-06-06 Hans Boehm <Hans.Boehm@hp.com>
* Makefile.am, Makefile.direct: Add NT_X64_STATIC_THREADS_MAKEFILE.
* Makefile.in: Regenerate.
* NT_X64_STATIC_THREADS_MAKEFILE: Fix warning flags.
* allochblk.c, alloc.c, blacklst.c, dbg_malc.c, dyn_load.c,
finalize.c, headers.c, mach_dep.c, malloc.c, mark.c, misc.c,
obj_map.c, os_dep.c, ptr_chck.c, reclaim.c, typd_mlc.c,
win32_threads.c, cord/de_win.c, include/gc_mark.h,
include/private/gc_hdrs.h, include/private/gc_pmark.h,
include/private/gc_priv.h, tests/test_cpp.cc:
Replace old style function declarations. Clean up integral types.
Remove register declarations. The change in malloc.c and the
"int descr" declaration in mark.c are the most likely to have
been real bugs outside of win64.
* msvc_dbg.c: Disable on win64.
* win32_threads.c: Add AMD64 support.
* include/gc.h: no backtrace on AMD64 for now.
hboehm [Wed, 6 Jun 2007 20:04:43 +0000 (20:04 +0000)]
2007-06-06 Hans Boehm <Hans.Boehm@hp.com>
* msvc_dbg.c(GetModuleBase): Replace strcat with strcat_s.
hboehm [Wed, 6 Jun 2007 19:58:55 +0000 (19:58 +0000)]
2007-06-06 Hans Boehm <Hans.Boehm@hp.com>
* include/gc.h: (GC_word, GC_signed_word): Fix win64 definitions.
Don't include windows.h in an extern "C" context.
* include/private/gcconfig.h: Fix win64/X86_64 configuration.
* tests/test.c: Eliminate more old style function definitions.
Cleanup pointer and integer casts for win64.
* tests/test_cpp.cc: Don't include gc_priv.h.
* NT_STATIC_THREADS_MAKEFILE: Restrict suffixes for VC++ 2005.
* NT_X64_STATIC_THREADS_MAKEFILE: New.
hboehm [Wed, 6 Jun 2007 19:49:20 +0000 (19:49 +0000)]
2007-06-06 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Romano Paolo Tenca)
* include/gc.h: (GC_word, GC_signed_word): Fix win64 definitions.
Don't include windows.h in an extern "C" context.
* include/private/gcconfig.h: Fix win64/X86_64 configuration.
* tests/test.c: Eliminate more old style function definitions.
Cleanup pointer and integer casts for win64.
* tests/test_cpp.cc: Don't include gc_priv.h.
* NT_STATIC_THREADS_MAKEFILE: Restrict suffixes for VC++ 2005.
* NT_X64_STATIC_THREADS_MAKEFILE: New.
hboehm [Wed, 6 Jun 2007 19:29:05 +0000 (19:29 +0000)]
2007-06-06 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Romano Paolo Tenca)
* win32_threads.c: Separate out DEBUG_WIN32_PTHREADS_STACK. Ignore
FINISHED threads for suspension. (GC_pthread_join): Add
pthread_self() cast. (GC_pthread_start_inner): Execute cleanup
handler when popping it.
* include/private/gc_locks.h: Inline THREAD_EQUAL for
GC_WIN32_PTHREADS. Define USE_PTHREAD_LOCKS only if we have
pthreads.
hboehm [Thu, 24 May 2007 05:18:06 +0000 (05:18 +0000)]
2007-05-23 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Romano Paolo Tenca)
* gc_dlopen.c, thread_local_alloc.c, threadlibs.c, win32_threads.c,
tests/test.c: Accomodate GC_WIN32_PTHREADS.
* include/gc.h: Don't include windows.h for GC_WIN32_PTHREADS.
* include/gc_config_macros.h: Define both PTHREADS and
GC_WIN32_THREADS.
* include/private/gc_locks.h: Nonstandard definitions of
NUMERIC_THREAD_ID for GC_WIN32_PTHREADS.
* doc/README.win32, Makefile.direct: Include documentation
for GC_WIN32_PTHREADS.
* Makefile.direct: Remove some anachronisms in the documentation.
hboehm [Thu, 24 May 2007 00:23:26 +0000 (00:23 +0000)]
2007-05-23 Hans Boehm <Hans.Boehm@hp.com>
* Makefile.am: Move includes to bottom. Add better library
dependencies. Increment library version. Remove "SUBDIRS += .".
* cord/cord.am, tests/tests.am: Add better library dependencies.
Remove now unnecessary dependencies.
* Makefile.in: Regenerate.
* include/gc.h (GC_begin_thread_ex, GC_endthreadex, GC_ExitThread):
Move to define on all Windows platforms. (_beginthread): define
to generate error if used.
hboehm [Tue, 22 May 2007 19:38:13 +0000 (19:38 +0000)]
2007-05-22 Hans Boehm <Hans.Boehm@hp.com>
* include/private/gc_locks.h: Format to 80 columns.
hboehm [Tue, 22 May 2007 19:35:54 +0000 (19:35 +0000)]
2007-05-22 Hans Boehm <Hans.Boehm@hp.com>
* malloc.c(GC_free): Ignore bad frees on MSWIN32 with REDIRECT_MALLOC.
* NT_MAKEFILE: msvc_dbg.h is in include/private. Don't use cvars
rc.
* misc.c (WIN32 GC_write): Define GC_need_to_lock in single-threaded
case.
* win32_threads.c: Test for __MINGW32__ in addition to _MINGW_VER.
(GC_CreateThread, GC_beginthreadex): Deallocate args even if we fail.
* include/gc.h: Add GC_reachable_here(). (GC_WinMain): Add GC_API.
(GC_beginthreadex, GC_endthreadex, GC_ExitThread): Declare.
* tests/test.c: Add GC_reachable_here() call.
hboehm [Mon, 21 May 2007 23:30:47 +0000 (23:30 +0000)]
2007-05-21 Hans Boehm <Hans.Boehm@hp.com>
* alloc.c (GC_try_to_collect): Call GC_init if necessary.
* tests/thread_leak_test.c: Don't unconditionally define
GC_LINUX_THREADS.
a_tobler [Mon, 21 May 2007 20:27:12 +0000 (20:27 +0000)]
2007-05-21 Andreas Tobler <a.tobler@schweiz.org>
* Makefile.am: Remove extra_ldflags_libgc definition.
* Makefile.in: Regenerate.
hboehm [Fri, 18 May 2007 04:49:15 +0000 (04:49 +0000)]
2007-05-17 Hans Boehm <Hans.Boehm@hp.com>
* ChangeLog: Fix spelling.
hboehm [Fri, 18 May 2007 04:44:44 +0000 (04:44 +0000)]
2007-05-17 Hans Boehm <Hans.Boehm@hp.com>
* src/atomic_ops/sysdeps/gcc/hppa.h (AO_test_and_set_full):
Add cast for return.
2007-05-17 Hans Boehm <Hans.Boehm@hp.com>
* include/private/gc_priv.h: Define AO_REQUIRE_CAS.
hboehm [Wed, 16 May 2007 23:28:32 +0000 (23:28 +0000)]
2007-05-16 Hans Boehm <Hans.Boehm@hp.com>
* finalize.c (GC_unreachable_finalize_mark_proc): Don't return void
value.
hboehm [Tue, 15 May 2007 19:46:56 +0000 (19:46 +0000)]
2007-05-15 Hans Boehm <Hans.Boehm@hp.com>
* configure.ac, version.h, doc/README: Change version to 7.0alpha10.
* configure: Regenerate.
hboehm [Tue, 15 May 2007 19:30:33 +0000 (19:30 +0000)]
2007-05-15 Hans Boehm <Hans.Boehm@hp.com>
* configure.ac, version.h, doc/README: Change version to 7.0alpha9.
* configure: Regenerate.
hboehm [Tue, 15 May 2007 18:59:21 +0000 (18:59 +0000)]
2007-05-15 Hans Boehm <Hans.Boehm@hp.com>
* Makefile.am: Include NT_STSTIC_THREADS_MAKEFILE in dist.
* Makefile.in: Regenerate.
* include/private/gc_locks.h: GC_compare_and_exchange, GC_atomic_add:
remove. NUMERIC_THREAD_ID, THREAD_EQUAL: New. GC_lock_holder: now
unsigned long. I_DONT_HOLD_LOCK, I_HOLD_LOCK: Update.
* pthread_stop_world.c, pthread_support.c, win32_threads.c: Use
NUMERIC_THREAD_ID, THREAD_EQUAL.
* include/private/gcconfig.h: GENERIC_COMPARE_AND_SWAP: Remove.
* include/private/thread_local_alloc.h: Don't USE_COMPILER_TLS on
ARM.
hboehm [Tue, 15 May 2007 18:57:47 +0000 (18:57 +0000)]
2007-05-15 Hans Boehm <Hans.Boehm@hp.com>
* Makefile.am: Include NT_STSTIC_THREADS_MAKEFILE in dist.
* Makefile.in: Regenerate.
* include/private/gc_locks.h: GC_compare_and_exchange, GC_atomic_add:
remove. NUMERIC_THREAD_ID, THREAD_EQUAL: New. GC_lock_holder: now
unsigned long. I_DONT_HOLD_LOCK, I_HOLD_LOCK: Update.
* pthread_stop_world.c, pthread_support.c, win32_threads.c: Use
NUMERIC_THREAD_ID, THREAD_EQUAL.
* include/private/gcconfig.h: GENERIC_COMPARE_AND_SWAP: Remove.
* include/private/thread_local_alloc.h: Don't USE_COMPILER_TLS on
ARM.
* libatomic_ops-1.2/doc/README.txt: Update to reflect C++
standardization effort.
hboehm [Fri, 11 May 2007 21:55:38 +0000 (21:55 +0000)]
2007-05-11 Hans Boehm <Hans.Boehm@hp.com>
* dbg_mlc.c, include/gc.h, finalize.c: Merge Alexandre Oliva's
GC_debug_register_finalizer_unreachable() patch from gcc tree.
* thread_local_alloc.c (GC_malloc, GC_malloc_atomic): Add assertions
to check GC has been initialized.
hboehm [Fri, 11 May 2007 00:30:36 +0000 (00:30 +0000)]
2007-05-10 Hans Boehm <Hans.Boehm@hp.com>
* include/gc_cpp.h: Documentation updates.
* include/gc_config_macros.h: Don't check for __ppc__ to set
DARWIN_THREADS.
* Makefile.am: Include configure_atomic_ops.sh in dist.
* Makefile.in: Regenerate.
hboehm [Tue, 8 May 2007 22:30:15 +0000 (22:30 +0000)]
2007-05-08 Hans Boehm <Hans.Boehm@hp.com>
* Makefile.am: Dont distribute copied atomic_ops files. Include
libatomic_ops with "make dist".
* Makefile.in: Regenerate.
* configure: Regenerate.
* configure.ac: Enable THREAD_LOCAL_ALLOC for Cygwin with threads.
* win32_threads.c: Report error for Cygwin + GC_DLL.
hboehm [Tue, 8 May 2007 19:22:39 +0000 (19:22 +0000)]
2007-05-08 Hans Boehm <Hans.Boehm@hp.com>
* Makefile.direct: Update THREAD_LOCAL_ALLOC documentation.
* cord/de_win.c: Rename and move AboutBox. Call GC_INIT. Remove
MakeProcInstance anachronism.
* doc/README.macros: Officially remove elif prohibition.
Remove documentation for defunct SRC_M3 support.
* include/gc.h: Remove more SRC_M3 references.
* include/private/gcconfig.h: Remove still more SRC_M3 references.
GC_SOLARIS_THREADS no longer needs to be checked separately.
hboehm [Tue, 8 May 2007 18:27:08 +0000 (18:27 +0000)]
2007-05-08 Hans Boehm <Hans.Boehm@hp.com>
* thread_local_alloc.c, include/private/thread_local_alloc.h:
Spell __declspec correctly.
* NT_STATIC_THREADS_MAKEFILE: Enable thread-local allocation.
hboehm [Tue, 8 May 2007 00:08:51 +0000 (00:08 +0000)]
2007-05-07 Hans Boehm <Hans.Boehm@hp.com>
* doc/README.win32: Adjust GC_win32_dll_threads rules again.
hboehm [Mon, 7 May 2007 23:23:50 +0000 (23:23 +0000)]
2007-05-07 Hans Boehm <Hans.Boehm@hp.com>
* mark.c (GC_mark_some wrapper): Restructure for readability, handle
GC_started_thread_while_stopped.
* misc.c (Win32 GC_write): Lock GC_write_cs only if needed.
* win32_threads.c: (client_has_run): remove,
GC_started_thread_while_stopped, GC_attached_thread: add.
(GC_push_all_stacks): Add verbose output.
(DllMain): Avoid initializing collector or the like.
Never update both thread tables.
* doc/README.win32: Adjust GC_win32_dll_threads rules.