From: hboehm Date: Wed, 3 Jun 2009 00:17:13 +0000 (+0000) Subject: 2009-06-02 Hans Boehm (Really Ivan Maidanski) X-Git-Tag: gc7_2alpha2~14 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=76946bd3e06a03d01272337c4f945fac4500b394;p=gc 2009-06-02 Hans Boehm (Really Ivan Maidanski) (adding last bit of diff86_cvs) * tests/test.c (check_heap_stats): Avoid unbalanced brackets in ifdef. 2009-05-27 Hans Boehm (Really Ivan Maidanski) (diff26) * win32_threads.c: restructure parallel marking mutex intialization. * win32_threads.c, alloc.c, darwin_stop_world.c, mallocx.c, mark.c, pthread_stop_world.c, pthread_support.c: Add runtime conditions on GC_parallel were appropriate. * pthread_support.c: Condition marker_bsp on ia64. (GC_segment_is_thread_stack): Fix loop upper bound. * reclaim.c: Limit some assertions to PARALLEL_MARK. * pthread_support.c: Don't acquire mark lock for thread-local allocation. * include/private/gc_priv.h: Don't define parallel mark sync support just for THREAD_LOCAL_ALLOC. 2009-05-27 Hans Boehm (Really Ivan Maidanski) (diff39) * include/private/gcconfig.h: refine MINGW32 test. * mark.c: Add win64/gcc tests. 2009-05-27 Hans Boehm (Really Ivan Maidanski) (diff86_cvs, resembling diff28, diff32, diff33, diff38, diff68 partly) * test.c (fork_a_thread, reverse_test, alloc8bytes, tree_test, typed_test, run_one_test, check_heap_stats, main, test): Replace all K&R-style function definitions with ANSI C ones. * trace_test.c (main): Ditto. * test.c (GC_COND_INIT): Define as GC_INIT() also in case of THREAD_LOCAL_ALLOC. * test.c (reverse_test): Call fork_a_thread() only if GC_PTHREADS or GC_WIN32_THREADS; remove fork_a_thread() macros definition. * test.c (reverse_test): Use "volatile" when clearing "b" and "c" local variables (to suppress "assigned value is never used" compiler warning). * test.c (tree_test): Use public GC_noop1() instead of private GC_noop(). * test.c (typed_test): Ditto. * test.c (check_heap_stats): Define and assign value to "late_finalize_count" local variable only if its value is used (if FINALIZE_ON_DEMAND defined). * test.c (main): Remove DJGPP-specific initialization of GC_stackbottom (not needed anymore, handled in gcconfig.h). * trace_test.c: Guard #define GC_DEBUG with #ifndef. * trace_test.c: Include "gc_backptr.h". * trace_test.c (main): Call GC_INIT(). * trace_test.c (main): Add "return 0" statement. 2009-05-25 Hans Boehm (Really Petter Urkedal) * dyn_load.c (GC_register_dynlib_callback): Use new index j instead of i in the inner loop. 2009-05-24 Hans Boehm (Really Ivan Maidanski, diff85) * tests/test.c: Increment n_tests with fetch_and_add when possible, avoiding need to export lock. 2009-05-22 Hans Boehm (Really Ivan Maidanski, diff63,diff65) * include/gc_pthread_redirects.h: - dlfcn.h is included for dlopen() proto before undefining "dlopen" (so, it's possible now to include dlfcn.h after gc.h from user code); - GC_dlopen() proto is added (except for Darwin as it's missing there); - "dlopen" is explicitly undefined (before its redefinition). * include/gc.h: - "process.h" is included besides "windows.h" (for _beginthreadex/_endthreadex); win32 only. - GC_NO_THREAD_DECLS is moved to the right place (before closing "extern C"). * pthread_support.c: Fix out of memory handling for Thread_Reps. * win32_threads.c: Don't include process.h on winCE, improve out of memory handling for thread structures, dont define GC_beginthreadex and GC_endthreadex for winCE. 2009-05-22 Hans Boehm (Really Ivan Maidanski, diff71) * tests/test.c: Change gcj vtable decriptor type from size_t to GC_word. 2009-05-22 Hans Boehm * gcj_mlc.c: Add comment. * tests/test.c: Change NTEST to NTHREADS. Fork 5 threads by default. Run reverse_test a second time in each thread.Add comments. Dont rely on AO_fetch_and_add. 2009-05-22 Hans Boehm (Largely from Ludovic Cortes) * dyn_load.c (GC_register_dynlib_callback, GC_register_dynamic_libraries_dl_iterate_phdr): Add support for GNU_PT_RELRO relocations. 2009-05-22 Hans Boehm (Really Ivan Maidanski, diff61) * Makefile, Makefile.direct: GC_SOLARIS_PTHREADS was replaced by GC_SOLARIS_THREADS. * include/gc.h: Improve finalizer documentation. * mips_sgi_mach_dep.s: Replace _MIPS_SIM_ABI32 with _ABIO32. * pthread_stop_world.c, Makefile.dj: Fix typos. 2009-05-21 Hans Boehm * win32_threads.c (GC_new_thread): Make first_thread visible to the whole file. (UNPROTECT): New macro. (GC_push_stack_for, GC_suspend, GC_start_world): unprotect thread structures before writing. (GC_suspend): Acquire GC_fault_handler_lock before suspending thread. * os_dep.c: export GC_fault_handler_lock. (GC_remove_protection): Check if already unprotected. 2009-05-20 Hans Boehm (really Ivan Maidanski) * doc/README.win32: Add OpenWatcom warning. * include/private/gcconfig.h: Really check it in. 2009-05-19 Hans Boehm (Mostly Ivan Maidanski, Dave Korn) * os_dep.c (GC_get_stack_base, windows): Replace with Dave Korn's code from gcc version. * os_dep.c: make gc compilable (optionally) for Cygwin with GetWriteWatch-based virtual dirty bit implementation ("os_dep.c" file). * os_dep.c: Make non-win32 GC_write_fault_handler STATIC. * mark.c (GC_noop): fix declaration definition mismatch for DMC. * include/private/gcconfig.h: Enable MPROTECT_VDB and GWW_VDB for Watcom (Win32 only). It works. and GWW_VDB. It works. 2009-05-07 Hans Boehm and Mark Sibly * mach_dep.c: Don't use __builtin_unwind_init for register state on PowerPC/Darwin. 2009-04-24 Hans Boehm * doc/gcdescr.html: Improve description of object freelist structure. * include/private/gc_priv.h: Fix comment for _size_map. 2009-03-16 Hans Boehm * os_dep.c (GC_linux_stack_base): Relax sanity test. 2009-03-11 Hans Boehm (Really Ivan Maidanski) * include/private/gc_pmark.h (PUSH_CONTENTS_HDR for MARK_BIT_PER_OBJ): Add missing backslash before eoln. 2009-02-28 Hans Boehm * misc.c (GC_set_warn_proc): Implicitly intialize GC on non-Cygwin win32. 2009-02-28 Hans Boehm (Really Petr Krajca) * configure.ac: Enable thread-local allocation for sparc-linux. * configure: Regenerate. 2009-02-28 Hans Boehm (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. 2009-02-28 Hans Boehm (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.c: Refine comment. 2009-02-28 Hans Boehm * os_dep.c: Define GC_GWW_BUF_LEN more intelligently. Add FIXME comment. 2009-02-28 Hans Boehm (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. 2009-02-24 Hans Boehm (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. 2009-02-24 Hans Boehm (Really Ivan Maidansky) * include/gc.h: Fix two typos in comments. 2009-02-24 Hans Boehm (Really Ivan Maidansky) * finalize.c: Fix typo in comment. 2008-12-03 Hans Boehm (Really Ivan Maidansky) * blacklst.c (GC_print_source_pointer): Don't call GC_print_heap_obj with lock. 2008-12-01 Hans Boehm * reclaim.c: (GC_reclaim_block): Scan even nearly full blocks if we are checking for leaks. 2008-11-12 Hans Boehm (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. 2008-11-11 Hans Boehm (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. 2008-11-10 Hans Boehm (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. 2008-11-10 Hans Boehm (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. 2008-11-07 Hans Boehm (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. 2008-11-06 Hans Boehm * doc/gcinterface.html: Improve REDIRECT_MALLOC documentation. * include/gc.h (GC_register_my_thread): Improve comment. 2008-11-04 Hans Boehm * Makefile.direct: Add comment for -DCHECKSUMS. 2008-10-27 Hans Boehm (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. 2008-10-27 Hans Boehm * 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 (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. 2008-10-27 Hans Boehm (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. 2008-10-25 Hans Boehm (Really Ivan Maidansky) * mark_rts.c (GC_approx_sp): Use volatile to avoid common warning. 2008-10-25 Hans Boehm * dyn_load.c (GC_cond_add_roots): Fix GC_get_next_stack argument order. 2008-10-24 Hans Boehm (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. 2008-10-24 Hans Boehm (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. 2008-10-21 Hans Boehm (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. 2008-10-21 Hans Boehm (Really Ivan Maidanski) * pthread_support.c: Comment out LOCK_STATS. * include/gc.h: Fix comments. 2008-10-20 Hans Boehm (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. 2008-10-20 Hans Boehm * doc/README: Make it clearer when Makefile.direct is assumed. * cord/cord.am: install include/cord.h. * Makefile.in: Regenerate. 2008-09-24 Hans Boehm (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. 2008-09-24 Hans Boehm (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. 2008-09-24 Hans Boehm * include/private/gc_priv.h: Update MAX_HEAP_SECTS. 2008-09-10 Hans Boehm * 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. 2008-08-27 Hans Boehm * 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. 2008-08-27 Hans Boehm (with help from Marco Maggi) * doc/simple_example.html: Update thread-local allocation description. 2008-08-26 Hans Boehm (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. 2008-08-21 Hans Boehm * 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 * alloc.c, include/gc_mark.h, Makefile.direct: Improve comments. 2008-08-01 Hans Boehm (Really Klaus Treichel) * configure.ac: Set win32_threads on MinGW. * configure: Regenerate. 2008-07-25 Hans Boehm (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. 2008-07-21 Hans Boehm * Makefile.direct, mach_dep.c: Add support for NO_GETCONTEXT. * mach_dep.c: Include signal.h. * gc_priv.h: Factor out INLINE declaration. 2008-07-03 Hans Boehm (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. 2008-05-30 Hans Boehm (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. 2008-05-03 Hans Boehm * include/gc_version.h, configure.ac, doc/README: Change to version 7.2alpha1. * configure: Regenerate. [7.1] 2008-05-03 Hans Boehm * include/gc_version.h, configure.ac, doc/README: Change to version 7.1. * configure: Regenerate. 2008-05-03 Hans Boehm * doc/gcinterface.html: Improve C++ interface documentation. 2008-03-10 Hans Boehm * 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. 2008-02-29 Hans Boehm * pthread_support.c: Fix typo in comment. * os_dep.c (GC_win32_get_mem): Add heap section only if allocation succeeded. 2008-02-28 Hans Boehm * malloc.c: (free replacement) Fix caller address space check. 2008-02-25 Hans Boehm * finalize.c (GC_grow_table): Dereference table in null-check. 2008-02-24 Hans Boehm * 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. 2008-02-20 Hans Boehm * tests/test.c (run_one_test): Don't mention pthread_self(). * misc.c: Declare GC_thr_init(). 2008-02-20 Hans Boehm * allchblk.c (add_to_fl): disable assertions with USE_MUNMAP, and refine assertions to handle huge unmergable blocks. (GC_allochblk_nth): Add comment. 2008-02-20 Hans Boehm * include/private/gcconfig.h: Add misssing FREEBSD macro consistency test. 2008-02-20 Hans Boehm * 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. 2008-02-15 Hans Boehm * 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. 2008-02-11 Hans Boehm (partly David Leonard) * doc/README.win32: Fix typo. * configure.ac: Fix printing of enable-shared result. * configure: Regenerate. 2008-02-08 Hans Boehm * 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. 2008-02-06 Hans Boehm (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. 2008-01-31 Hans Boehm (mostly from Andreas Tobler) * tests/test.c: Call GC_INIT for DARWIN; test system type using gcconfig.h-defined macros. 2008-01-29 Hans Boehm * 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. 2008-01-29 Hans Boehm (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. 2008-01-10 Hans Boehm * include/gc_version.h, configure.ac, doc/README: Change to version 7.1alpha3. * configure: Regenerate. [7.1alpha2] 2008-01-10 Hans Boehm * include/gc_version.h, configure.ac, doc/README: Change to version 7.1alpha2. * configure: Regenerate. 2008-01-10 Hans Boehm * Makefile.am: Mention atomic_ops.c and atomic_ops_sysdeps.S again. Refer to build directory as ".". * Makefile.in: Regenerate. 2008-01-10 Hans Boehm * configure.ac: Ignore --enable-parallel-mark on Darwin for now. * configure: Regenerate. * darwin_stop_world.c: Add FIXME comment for parallel marker. 2008-01-09 Hans Boehm * include/private/gc_priv.h: Update MAX_ROOT_SETS and LOG_PHT_ENTRIES to handle larger heaps. 2008-01-03 Hans Boehm * include/gc.h (GC_INIT,GC_init): Update comments. 2008-01-03 Hans Boehm (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. 2008-01-02 Hans Boehm * alloc.c (GC_add_to_heap): Call GC_install_header(p) AFTER adjusting p. 2007-12-23 Hans Boehm * Makefile.am: Add NT_X64_THREADS_MAKEFILE. 2007-12-23 Hans Boehm (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. 2007-12-21 Hans Boehm * 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, include/include.am: Adjust for version.h rename. * Makefile.in: Regenerate. 2007-12-21 Hans Boehm (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. 2007-12-20 Hans Boehm * include/gc.h, doc/README.macros: Add GC_NO_THREAD_REDIRECTS, GC_NO_THREAD_DECLS, don't test explicitly for GC_SOLARIS_THREADS. 2007-12-20 Hans Boehm * 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. 2007-12-18 Hans Boehm (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 (really Radek Polak) * include/gc.h: Don't define GC_HAVE_BUILTIN_BACKTRACE for uclibc. 2007-12-18 Hans Boehm * gc_cpp.cc: Don't include gc_cpp.h from local directory. 2007-12-18 Hans Boehm (really Adam Megacz) * allchblk.c, configure.ac (add --enable-munmap) * configure: Regenerate. 2007-12-10 Andreas Tobler * 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). 2007-10-24 Hans Boehm * 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. 2007-10-23 Hans Boehm * malloc.c: Update GC_large_allocd_bytes on explicit deallocation. * allchblk.c: Sanity check GC_max_large_allocd_bytes. 2007-10-23 Hans Boehm (Really Manuel Serrano) * Makefile.direct: Invoke $(MAKE) instead of make. 2007-10-23 Hans Boehm * doc/scale.html: Reflect gc7 thread local allocation behavior. 2007-10-23 Hans Boehm (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. 2007-08-15 Hans Boehm (really Samuel Thibault) * pthread_support.c (GC_thr_init): Use sysconf(_SC_NPROCESSORS_ONLN) for HURD. 2007-08-14 Hans Boehm (really David Daney) * include/private/gcconfig.h: Add Linux/mips-64 support. 2007-08-14 Hans Boehm (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. 2007-08-14 Hans Boehm (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. 2007-08-03 Hans Boehm * 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. 2007-08-03 Hans Boeh --- diff --git a/ChangeLog b/ChangeLog index 09d1dd25..d3eebe87 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2009-06-02 Hans Boehm (Really Ivan Maidanski) + (adding last bit of diff86_cvs) + * tests/test.c (check_heap_stats): Avoid unbalanced brackets in ifdef. + 2009-05-27 Hans Boehm (Really Ivan Maidanski) (diff26) * win32_threads.c: restructure parallel marking mutex intialization. diff --git a/tests/test.c b/tests/test.c index 385c421b..cb992e62 100644 --- a/tests/test.c +++ b/tests/test.c @@ -1309,12 +1309,13 @@ void check_heap_stats(void) (GC_bytes_allocd + GC_bytes_allocd_before_gc)); (void)GC_printf("Final heap size is %lu bytes\n", (unsigned long)GC_get_heap_size()); - if (GC_bytes_allocd + GC_bytes_allocd_before_gc + if (GC_bytes_allocd + GC_bytes_allocd_before_gc < n_tests * # ifdef VERY_SMALL_CONFIG - < 2700000*n_tests) { + 2700000 # else - < 33500000*n_tests) { + 33500000 # endif + ) { (void)GC_printf("Incorrect execution - missed some allocations\n"); FAIL; }