Skip to content

Releases: ivmai/bdwgc

7.4.14

11 Aug 12:33
Compare
Choose a tag to compare

Changes

  • Cleanup BCC Makefile (remove absolute GC paths, fix del cmd, update clean)
  • Do not call GC_dirty_inner unless GC_incremental
  • Eliminate 'cast between incompatible function types' compiler warning
  • Eliminate 'comparing signed and unsigned values' compiler warnings (bcc)
  • Eliminate 'language extension used' Clang warning in gc.h
  • Eliminate 'possibly incorrect assignment in CORD_vsprintf' compiler warning
  • Eliminate 'switch statement contains no case label' compiler warning
  • Eliminate 'variable might be uninitialized' warning in win32_start_inner
  • Eliminate duplicate clear_mark_bit call when removing disappearing link
  • Fix 'collecting from unknown thread' abort in leak-finding mode
  • Fix compilation by digimars.mak (DMC) and by WCC makefile
  • Fix cords for MANUAL_VDB
  • Fix dependency on gc_cpp source in BCC_MAKEFILE and NT_MAKEFILE
  • Fix gctest in leak-finding mode
  • Fix missing GC_dirty calls for GC-allocated objects used internally
  • Fix missing GC_dirty invocation from debug_end_stubborn_change
  • Fix multi-threaded gctest for the case of NTHREADS is set to zero
  • Fix typos in ChangeLog and generic_malloc
  • Keep pointer to the start of previous entry in remove_specific_after_fork
  • New API function (GC_is_init_called) to check if BDWGC is initialized
  • Remove code duplication in gcj_malloc and malloc_explicitly_typed
  • Remove duplicate local variable in reclaim_block
  • Remove libatomic_ops license information from README
  • Workaround 'dynamic exception specifications deprecated in C++11' warning

Also, includes 7.2l changes

Build status

Travis CI build
AppVeyor CI build

Distribution Tarball

gc-7.4.14.tar.gz (see the Assets above, md5: 693ed1efc25e04a7a1113477800c2033)

7.2l

10 Aug 15:38
Compare
Choose a tag to compare

Changes

  • Fix 'pointer arithmetic with NULL' code defect in print_callers
  • Fix Borland version in documentation to match that in BCC_MAKEFILE
  • Fix comment about inv_sz computation in setup_header
  • Fix comments style in configure.ac and Makefile.am
  • Fix GC_is_valid_displacement and GC_is_visible for non-small objects
  • Fix global operator delete definition for C++14 in gc_cpp
  • Fix infinite restarting of mark_some when a static root disappeared (Linux)
  • Fix large object base computation in PUSH_CONTENTS() if MARK_BIT_PER_OBJ
  • Fix mark stack overflow checking in push_selected
  • Fix MSWIN32 macro redefinition (WCC)
  • Fix potential null dereference in GC_CONS
  • Fix register_dynamic_libraries on Windows 10
  • Fix result computation in n_set_marks
  • Fix return type in GC_set_warn_proc API documentation
  • Fix typo in comment for CORD_ec_flush_buf prototype
  • Fix typos in ChangeLog
  • Fix VirtualQuery call in case of malloc failure (Win32)
  • Install gc.3 man page instead of copying gc.man to doc folder (configure)
  • Perform thread_suspend in loop as it may be interrupted (Darwin)
  • Workaround 'template-id not supported in this context' compiler error (WCC)

Build status

Travis CI build
AppVeyor CI build

Distribution Tarball

gc-7.2l.tar.gz (see the Assets above, includes a copy of libatomic_ops-7.2i, md5: f4850e5c621cf92f14fff183a7abb450)

7.6.6

20 Apr 18:14
Compare
Choose a tag to compare

Changes

  • Define GC_FREEBSD_THREADS and GC_ADD_CALLER macros for kFreeBSD
  • Eliminate 'boolean result used in bitwise operation' cppcheck warning
  • Eliminate 'there is pointer arithmetic with NULL' cppcheck warning
  • Explicitly unblock GC signals on GC initialization
  • Fix 'scope of var can be reduced' cppcheck err in enqueue_all_finalizers
  • Fix 'undefined reference to __builtin_unwind_init' linker error (ArmCC)
  • Fix arguments delimiter in pcr_interface.c (PCR)
  • Fix assertion violation in DllMain of win32_threads
  • Fix comment for debug_generic_malloc_inner[_ignore_off_page]
  • Fix data race during apply_to_each_object(reset_back_edge)
  • Fix dbg_mlc.c/o file name in documentation
  • Fix gctest with musl libc on s390x
  • Fix include gc_gcj.h in thread_local_alloc.c
  • Fix man section number (3)
  • Fix missing GC_generic_malloc_words_small implementation in new_gc_alloc.h
  • Fix missing new-line in ABORT_ARG definition
  • Fix missing SIGBUS handler setup for kFreeBSD
  • Fix null dereference in print_callers on backtrace_symbols failure
  • Fix null pointer dereference in get_private_path_and_zero_file (Symbian)
  • Fix the collector hang when it is configured with --enable-gc-debug
  • Fix thread_suspend fail for threads registered from key destructor (OS X)
  • Fix type of local variables receiving result of PHT_HASH
  • Fix typo in AIX macro name
  • Fix typo in comment in specific.h
  • Fix unbounded heap growth in case of intensive disappearing links usage
  • Remove API symbols renaming in WCC_MAKEFILE
  • Support Haiku/amd64 and Haiku/x86 hosts
  • Support threads for DragonFly in configure
  • Workaround 'address of auto-variable returned' cppcheck error
  • Workaround gctest hang on kFreeBSD (if thread-local allocations are on)

Build status

Travis CI build
AppVeyor CI build
Coveralls status (code coverage)

Distribution Tarball

gc-7.6.6.tar.gz (see the Assets above, md5: c3df4f64f61433f6688ce9257a71fad4)

7.4.12

19 Apr 06:54
Compare
Choose a tag to compare

Changes

  • Define GC_FREEBSD_THREADS and GC_ADD_CALLER macros for kFreeBSD
  • Fix comment for debug_generic_malloc_inner[_ignore_off_page]
  • Fix gctest with musl libc on s390x
  • Fix missing new-line in ABORT_ARG definition
  • Fix null pointer dereference in get_private_path_and_zero_file (Symbian)
  • Fix type of local variables receiving result of PHT_HASH
  • Remove API symbols renaming in WCC_MAKEFILE

Also, includes 7.2k changes

Build status

Travis CI build
AppVeyor CI build

Distribution Tarball

gc-7.4.12.tar.gz (see the Assets above, md5: 542f44ee3f348eb8213406a616ce0263)

7.2k

18 Apr 23:06
Compare
Choose a tag to compare

Changes

  • Fix arguments delimiter in pcr_interface.c (PCR)
  • Fix assertion violation in DllMain of win32_threads
  • Fix data race during apply_to_each_object(reset_back_edge)
  • Fix dbg_mlc.c/o file name in documentation
  • Fix include gc_gcj.h in thread_local_alloc.c
  • Fix man section number (3)
  • Fix missing GC_generic_malloc_words_small implementation in new_gc_alloc.h
  • Fix missing SIGBUS handler setup for kFreeBSD
  • Fix null dereference in print_callers on backtrace_symbols failure
  • Fix the collector hang when it is configured with --enable-gc-debug
  • Fix thread_suspend fail for threads registered from key destructor (OS X)
  • Fix typo in AIX macro name
  • Fix typo in comment in specific.h

Build status

Travis CI build
AppVeyor CI build

Distribution Tarball

gc-7.2k.tar.gz (see the Assets above; includes a copy of libatomic_ops-7.2i, md5: b7fd911c76f5b64d378a9db729b900ed)

7.6.4

26 Jan 13:19
Compare
Choose a tag to compare

Changes

  • Add note of set_free_space_divisor, set_warn_proc ABI change after gc-7.1
  • Change compiler invocation example in gc.man to use dynamic libgc
  • Delete dont_ar_* build intermediate files on make clean (Makefile.direct)
  • Do not declare dl_iterate_phdr as weak for DragonFly
  • Fix 'cords' parallel build in Makefile.direct
  • Fix 'undeclared identifier USRSTACK' compiler error on OpenBSD-6.2
  • Fix error code in abort message if sem_wait failed in start_world (NetBSD)
  • Fix GC allocation mutex in child after a fork
  • Fix global operator delete definition for C++14 in gc_cpp
  • Fix last_reclaimed..gc_no interval comparison to threshold in unmap_old
  • Fix libgc version which was changed in linkage breaking way
  • Fix missing EOLn output in threadlibs tool
  • Fix threadlibs tool to output '-lpthread' for DragonFly
  • Prevent DATASTART redefinition for NaCl
  • Remove obsolete advice about linking with _DYNAMIC=0 (Linux)

Build status

Travis CI build
AppVeyor CI build
Coveralls status (code coverage)

Distribution Tarball

gc-7.6.4.tar.gz (see the Assets above)

7.4.10

23 Jan 15:17
Compare
Choose a tag to compare

Changes

  • Fix error code in abort message if sem_wait failed in start_world (NetBSD)

Also, includes 7.2j changes

Build status

Travis CI build
AppVeyor CI build

Distribution Tarball

gc-7.4.10.tar.gz (see the Assets above)

7.2j

22 Jan 06:26
Compare
Choose a tag to compare

Changes

  • Fix GC allocation mutex in child after a fork
  • Fix last_reclaimed..gc_no interval comparison to threshold in unmap_old
  • Fix libgc version which was changed in linkage breaking way
  • Fix missing EOLn output in threadlibs tool

Build status

Travis CI build
AppVeyor CI build

Distribution Tarball

gc-7.2j.tar.gz (see the Assets above; includes a copy of libatomic_ops-7.2i)

7.6.2

23 Dec 08:49
Compare
Choose a tag to compare
7.6.2 Pre-release
Pre-release

Note

This release is not recommended for the downstream package maintainers (because of libgc version-info incompatible change).

Changes

  • Add assertion that no hb_n_marks underflow occurs
  • Add minimal testing of GC_MALLOC_[ATOMIC_]WORDS and GC_CONS (gctest)
  • Add minimal testing of GC_set_bit (gctest)
  • Add more cases to huge_test to cover sizes close to word-type maximum
  • Add testing of new[]/delete[] (test_cpp)
  • Adjust AO_HAVE_x check to match AO_fetch_and_add primitive variant used
  • Adjust code indentation of calloc_explicitly_typed
  • Align local_mark_stack in help_marker explicitly
  • Allow custom TRACE_ENTRIES value
  • Allow gctest and thread_leak_test with zero NTHREADS
  • Avoid data race in finalized_count (gctest)
  • Code refactoring of divide-by-HBLKSIZE occurrences
  • Code refactoring of huge_test
  • Code refactoring of tests/subthread_create regarding AO add primitive
  • Compile thread_local_alloc only if multi-threaded build (Makefile.am)
  • Delete preprocessor output on make clean (Makefile.direct)
  • Disable implicit multi-threaded mode for Win32 to avoid LOCK crash
  • Do not disable parallel mark for WRAP_MARK_SOME
  • Do not enable mprotect-based incremental mode if unmapping is on (gctest)
  • Do not install documentation if configure --disable-docs (new option)
  • Do not use tkill (Android)
  • Document base and size of objects allocated by finalized_malloc
  • Document configure 'syntax error' issue in README
  • Eliminate 'address of local variable returned' static analyzer warning
  • Eliminate 'array vs singleton' code defect in typed_test (gctest)
  • Eliminate 'assigned value never used' CSA warning in min_bytes_allocd
  • Eliminate 'boolean result used in bitwise op' cppcheck false warning
  • Eliminate 'C-style pointer casting' cppcheck style warnings in test
  • Eliminate 'checking if unsigned variable is <0' cppcheck style warning
  • Eliminate 'class member var with name also defined in parent' warning
  • Eliminate 'comparison is always false' static analyzer warning in finalize
  • Eliminate 'Condition 0==datastart always false' cppcheck warning (dyn_load)
  • Eliminate 'condition is always true' cppcheck style warning
  • Eliminate 'constructor with 1 argument is not explicit' cppcheck warning
  • Eliminate 'CORD_*printf is never used' cppcheck style warnings (cordtest)
  • Eliminate 'dereference of null' CSA false warning in array_mark_proc
  • Eliminate 'function result not used' code defect in GC_mark_local
  • Eliminate 'GC_collecting is set but never used' code defect (Win32)
  • Eliminate 'GC_record_fault is never used' cppcheck style warning
  • Eliminate 'integer shift by a negative amount' code defect in finalize
  • Eliminate 'label not used' cppcheck false warnings in GC_mark_X
  • Eliminate 'memory leak' code defect for scratch-allocated memory
  • Eliminate 'memory leak' code defect in remove_specific
  • Eliminate 'non-null arg compared to null' warning in toggleref_add (GCC)
  • Eliminate 'non-reentrant function strtok called' cppcheck warning (POSIX)
  • Eliminate 'possible integer underflow' code defect (cord-de)
  • Eliminate 'potential overflow' static analyzer warning in test
  • Eliminate 'printf format specifies type void*' GCC pedantic warnings
  • Eliminate 'scope of variable can be reduced' cppcheck warnings
  • Eliminate 'suspicious pointer subtraction' cppcheck warning (gc_cpp)
  • Eliminate 'this statement may fall through' GCC warnings
  • Eliminate 'unnecessary comparison of static strings' cppcheck warning
  • Eliminate 'unsafe vsprintf is deprecated' compiler warning
  • Eliminate 'unused formal parameter' compiler warnings in C++ code (MS VC)
  • Eliminate 'unused variable' compiler warning in remove_all_threads_but_me
  • Eliminate 'use of vulnerable sprintf' code defect in de_win test (cord)
  • Eliminate 'value exceeds maximum object size' GCC warning in huge_test
  • Eliminate 'value of CLOCK_TYPE unknown' cppcheck info message
  • Eliminate 'value of DATASTART2 unknown' cppcheck info messages
  • Eliminate 'value of GC_PTHREAD_EXIT_ATTRIBUTE unknown' cppcheck messages
  • Eliminate 'value of GC_RETURN_ADDR_PARENT unknown' cppcheck info messages
  • Eliminate 'value of NEED_FIXUP_POINTER unknown' cppcheck info messages
  • Eliminate 'write to memory that was const-qualified' code analyzer warning
  • Eliminate all 'scope of variable can be reduced' cppcheck style warnings
  • Eliminate CSA warning about incorrect cast applied to HBLK_OBJS
  • Eliminate CSA warning about narrowing cast in CleanUp of test_cpp
  • Eliminate CSA warning of non-virtual destructor in test_cpp base class
  • Eliminate CSA warning of staticroot that can be a local variable (tests)
  • Eliminate CSA warning of unmodified non-const static var (disclaim_test)
  • Eliminate redundant local variable in register_finalizer
  • Eliminate TSan (Thread Sanitizer) warnings in gctest
  • Eliminate UBSan warning of overflow during descr subtraction in mark_from
  • Eliminate unreachable PROC/DEFAULT_VDB GC_printf calls in gctest main()
  • Eliminate unsigned fl_builder_count underflow in mark_thread
  • Enable GC_is_tmp_root for all platforms
  • Execute more single-threaded GC tests by CMake
  • Expand tabs to spaces in de_win.rc (tests)
  • Export GC_dump_finalization/regions()
  • Export GC_is_tmp_root() and GC_print_trace[_inner]
  • Export GC_print_free_list()
  • Fix '32-bit value shift followed by expansion to 64-bit' code defect
  • Fix 'GC_written_pages never read' code defect (GWW_VDB)
  • Fix 'label cannot be reached' static analyzer warning in disclaim_test
  • Fix 'size of tv is unknown' error in brief_async_signal_safe_sleep (musl)
  • Fix 'syntax error' reported by cppcheck for mach_dep
  • Fix 'unknown type name GC_INNER' compilation error (FreeBSD)
  • Fix 'variable assigned a value that is never used' cppcheck style warnings
  • Fix 'void pointers in calculations: behavior undefined' cppcheck warning
  • Fix assertion violation about disabled cancel in try_to_collect_inner
  • Fix atomic_ops build in Makefile.direct for Solaris
  • Fix Clang static analyzer warning about not found gc_priv.h in extra files
  • Fix compilation error in get_main_stack_base (Emscripten)
  • Fix compilation for winpthreads if HANDLE_FORK
  • Fix compilation if configured with --enable-werror on OS X
  • Fix cord/de build in Makefile.direct (Linux)
  • Fix data race in a list referenced by A.aa (gctest)
  • Fix data race in collectable_count (gctest)
  • Fix data race in do_local_mark when comparing active_count to helper_count
  • Fix data race in GC_suspend/resume_thread
  • Fix data race in last_stop_count access (suspend_handler_inner)
  • Fix data race in make_descriptor when setting explicit_typing_initialized
  • Fix data race in mark_thread when updating mark_no
  • Fix data race when getting object size in explicitly-typed allocators
  • Fix deadlock in GC_suspend_thread
  • Fix gctest failure for Darwin if CPPCHECK is defined
  • Fix lack of barriers to synchronize memory for suspend_handler
  • Fix marking of disclaim-reachable objects in the incremental mode
  • Fix message of VDB implementation used if MPROTECT_VDB+GWW_VDB (gctest)
  • Fix missing started_thread_while_stopped call from mark_some if GCC/Clang
  • Fix null dereference in GC_stack_range_for if not DARWIN_DONT_PARSE_STACK
  • Fix page calculation in checksums
  • Fix parallel build in Makefile.direct
  • Fix test_cpp and c++ parallel build in Makefile.direct
  • Fix typo in comment of GC_mark_some
  • Fix typos in cdescr.html and README.sgi
  • Make GC_INIT optional for clients even if thread-local allocations enabled
  • Match uclinux pattern in configure
  • Move conditional GC_need_to_lock setting to gc_locks.h (refactoring)
  • Move README.QUICK from DOC_FILES to OTHER_FILES in Makefile.direct
  • New API function (GC_is_init_called) to check if BDWGC is initialized
  • New target (check-cpp) in Makefile.direct
  • Prevent abort in register_data_segments for Symbian and Emscripten
  • Prevent multiple 'Caught ACCESS_VIOLATION in marker' per collection
  • Print realloc_count value in gctest
  • Put invariant name in quotes to make mark_state comments clearer
  • Refine configure messages when checking for compiler option support
  • Remove extraneous semicolons after AC_MSG_WARN (configure)
  • Remove page_was_dirty and remove_protection duplicate definitions
  • Remove unnecessary type casts of printf arguments to unsigned long
  • Remove unused ALIGN_DOUBLE, USE_GENERIC_PUSH_REGS macros (TILE-Gx/Pro)
  • Rename 'test' to 'check' target in Makefile.direct
  • Replace deprecated rewind to fseek in cordxtra
  • Report gcc/clang pedantic warnings (configure)
  • Skip thread suspend/resume API testing for Tru64 (OSF1)
  • Support AddressSanitizer (Clang/GCC) and MemorySanitizer (Clang)
  • Support GC_init (and get_stack_base) from non-main thread on FreeBSD/NetBSD
  • Suppress 'tainted string passed to vulnerable operation' false defects
  • Suppress 'taking address of label non-standard' GCC/Clang pedantic warning
  • Test GC initialization from non-main thread on FreeBSD and NetBSD
  • Test GCJ object creation with length-based descriptor (gctest)
  • Update comment in finalized_disclaim to match FINALIZER_CLOSURE_FLAG
  • Update README regarding make cords with Makefile.direct
  • Update README to use autogen.sh on build from the source repository
  • Update shared libraries version info to differentiate against v7.4
  • Use mprotect instead of mmap in GC_unmap() on Cygwin
  • Use same style of include gc.h in documentation
  • Workaround '!GC_page_size is always false' cppcheck style warning
  • Workaround '#error' cppcheck error messages
  • Workaround '32-bit value shift by >31 bits is undefined' cppcheck warnings
  • Workaround 'array compared to 0', 'untrusted loop bound' false defects
  • Workaround 'bad address arithmetic' static analysis tool false positive
  • Workaround 'checking if unsigned value is negative' cppcheck warning
  • Workaround 'checking unsigned value is negative' code defect in ...
Read more

7.4.8

22 Dec 18:15
Compare
Choose a tag to compare
7.4.8 Pre-release
Pre-release

Note

This release is not recommended for the downstream package maintainers (because of libgc version-info incompatible change).

Changes

  • Eliminate 'this statement may fall through' GCC warnings
  • Eliminate 'value exceeds maximum object size' GCC warning in huge_test
  • Fix data race in make_descriptor when setting explicit_typing_initialized
  • Fix marking of disclaim-reachable objects in the incremental mode
  • Update comment in finalized_disclaim to match FINALIZER_CLOSURE_FLAG
    Also, includes 7.2i changes

Build status

Travis CI build
AppVeyor CI build

Distribution Tarball

gc-7.4.8.tar.gz (see the Assets above)