Skip to content

Releases: ivmai/bdwgc

8.2.2

26 Aug 18:45
Compare
Choose a tag to compare

Changes

  • Abort if no progress with thread suspend/resume signals resending
  • Add CMake option to force libatomic_ops headers usage
  • Add _PROP suffix to CORD/GC[CPP]_VERSION variables in CMake script
  • Allow not to bypass pthread_cancel hardening in pthread_start
  • Allow to start marker threads in child of single-threaded client
  • Avoid potential race in GC_init_real_syms after GC_allow_register_threads
  • Avoid potential signal loss before sigsuspend in suspend_handler if TSan
  • Define SUNOS5SIGS macro for kFreeBSD
  • Distribute gc_gcj.h and some other headers in single-obj-compilation
  • Do not assert that GC is initialized at DLL_THREAD_DETACH (Win32)
  • Do not call SET_HDR() to remove forwarding counts if none exists in hblk
  • Do not call mprotect/mmap to GC_unmap/remap (Linux)
  • Do not count unmapped regions if GC_unmap is madvise-based (Linux)
  • Do not define NEED_FIND_LIMIT in case of OpenBSD user threads
  • Do not fail tests if pthread_create returns resource unavailable error
  • Do not name GCC intrinsics as C11 ones
  • Do not probe to find main data root start if dl_iterate_phdr exists
  • Do not send signal to thread which is suspended manually
  • Do not use usleep between signals resend if ThreadSanitizer
  • Eliminate '-pedantic is not option that controls warnings' GCC-6.3 message
  • Eliminate '/GS can not protect parameters' MS VC warning in msvc_dbg
  • Eliminate 'R_AARCH64_ABS64 used with TLS symbol' linker warning (clang)
  • Eliminate 'buffer overflow detected' FP error in realloc_test
  • Eliminate 'extension used' clang warning in sparc_mach_dep.S (configure)
  • Eliminate 'function/data pointer conversion in expression' MSVC warning
  • Eliminate 'implicit decl of _setjmp' gcc warning if -std=c11 on Cygwin
  • Eliminate 'layout of aggregates has changed in GCC 5' warning in test_cpp
  • Eliminate 'new_l may be used uninitialized' gcc warning in os_dep (Cygwin)
  • Eliminate 'old_gc_no is initialized but not referenced' MS VC false warning
  • Eliminate 'possible loss of data' compiler warning in GC_envfile_getenv
  • Eliminate 'potentially uninitialized local variable tc' warning (MSVC)
  • Eliminate 'skipping config since MAX_HEAP_SECTS is unknown' cppcheck FP
  • Eliminate 'unused but set variable' gcc warnings in cpptest
  • Eliminate 'value exceeds maximum size' warnings in debug_malloc, huge_test
  • Eliminate 'writing into region of size 0' gcc FP warning in realloc
  • Eliminate ASan stack-buffer-underflow FP in GC_mark_and_push_stack (E2K)
  • Eliminate code defect about incorrect size of allocated object (leaktest)
  • Eliminate data race reported by TSan in GC_have_errors
  • Eliminate division-by-zero FP warning in GC_ASSERT in reclaim_block
  • Eliminate stringop-overflow gcc-12 warning in CORD__next
  • Ensure typed objects descriptor is never located in the first word
  • Fix 'GC_greatest_stack_base_below is defined but not used' warning (IA64)
  • Fix 'GC_text_mapping not used' GCC warning if redirect malloc w/o threads
  • Fix 'ISO C forbids conversion of function pointer to object' warning
  • Fix 'undeclared getpagesize' compiler warning on AIX and OSF1
  • Fix 'undefined reference to __data_start' linker error on Linux/aarch64
  • Fix 'unresolved __imp__wsprintfA' linker error in msvc_dbg.c (MSVC)
  • Fix 'unresolved symbol GetModuleHandle' error in win32_threads.c (UWP)
  • Fix (workaround) stack overflow in gctest on Alpine Linux/s390x
  • Fix GC_ATTR_NO_SANITIZE_THREAD definition for GCC
  • Fix GC_allocate_ml incorrect cleanup in GC_deinit if pthreads (MinGW)
  • Fix GC_dirty() argument in GC_malloc_explicitly_typed_ignore_off_page
  • Fix GC_make_descriptor for zero length argument
  • Fix GC_suspend_thread if called before thread destructor
  • Fix GC_unmapped_bytes update in GC_unmap for Sony PS/3
  • Fix SIGSEGV caused by dropped stack access from child process in gctest
  • Fix SUNOS5SIGS documentation to match macro definition in gcconfig.h
  • Fix abort in Win32 DllMain if PARALLEL_MARK
  • Fix abort when GC_repeat_read returns zero
  • Fix assertion about built-in AO_test_and_set_acquire on sparc64 (gcc-12)
  • Fix assertion violation in GC_allow_register_threads on Windows
  • Fix assertion violation of GC_thread_key alignment if pthread-based TLS
  • Fix comment in GC_init regarding GC_init_parallel call
  • Fix context saving when GC_suspend_thread(self)
  • Fix data race in fail_proc1 of gctest
  • Fix hang in GC_free if GC_PREFER_MPROTECT_VDB (Mingw64)
  • Fix hang in select() called from suspend signal handler if TSan
  • Fix hang on sem_wait in GC_suspend_thread if thread was resumed recently
  • Fix hb_obj_kind type in documentation (ASCII diagram) describing hblkhdr
  • Fix incremental mode enabling in gctest if TEST_MANUAL_VDB
  • Fix linking of tests in case of finalization is off
  • Fix lock assertion violation in GC_find_limit if always multi-threaded
  • Fix memory return to OS in GC_unmap
  • Fix missing lock when GC_generate_random_valid_address is called
  • Fix missing write() declaration if CONSOLE_LOG (Watcom)
  • Fix nodist_libgc_la_SOURCES value in Makefile.am for Solaris/sparc
  • Fix oldProc initialization in gc_cleanup and eliminate related warnings
  • Fix parallel_initialized assertion violation in initsecondarythread (Win32)
  • Fix potential race if start_mark_threads called from threads in child
  • Fix propagation of out-of-memory occurred in GC_make_sequence_descriptor
  • Fix pthread_setname_np and dladdr detection by CMake
  • Fix race between calloc_explicitly_typed and push_complex_descriptor
  • Fix typos in comments and debugging.md
  • Fix undefined stack_base on UWP/arm64 (llvm-mingw)
  • Force GC_with_callee_saves_pushed in suspend_handler if NO_SA_SIGACTION
  • Link with rt library to get clock_gettime where necessary
  • Make finalizer_closure pointer read/write atomic in malloc and callback
  • Move platform-specific sleep call to GC_usleep (refactoring)
  • Pass -lrt linker option in CMake script on HP/UX, NetBSD
  • Prevent (fix) parallel custom mark procs run in single-threaded clients
  • Prevent changing of GC_markers_m1 value while collection in progress
  • Refer to Makefile.direct instead of deleted Makefile file in README
  • Relax assertion of hb_n_marks in reclaim_block if more than two markers
  • Remove IF_IA64 macro in pthread_stop_world (refactoring)
  • Remove checking of RS6000 completely
  • Remove duplicate check of MSWIN_XBOX1 in os_dep.c
  • Remove duplicate include gc_tiny_fl.h in gc_priv.h
  • Remove non-working check of M68K in gctest
  • Remove useless TSan W/A about read of mark_lock_holder for Windows
  • Replace RAISE_SIGNAL macro with a static function (refactoring)
  • Replace SSH cloning with HTTPS one in README
  • Retry pthread_kill if EAGAIN (Linux)
  • Revert "Check real-symbols are already initialized in pthread_join/detach"
  • Revert "Remove nested always-false ifdef for HPUX and FREEBSD"
  • Revert addition of msvc_dbg.h in include.am
  • Set default build type to RelWithDebInfo (CMake)
  • Start configure help messages with a lower case letter
  • Support 'z' format modifier by CORD_vsprintf
  • Support Elbrus 2000 (Linux/e2k)
  • Support GCC MCF thread model (mcfgthreads) in configure (MinGW)
  • Support GC_remove_roots on Win32
  • Support OpenBSD/riscv64
  • Support build using Makefile.direct on Linux/sparc
  • Support space-separated flags in CFLAGS_EXTRA passed to CMake
  • Update README.win32 about default build configuration (configure, cmake)
  • Update documentation of GC_RATE and MAX_PRIOR_ATTEMPTS
  • Use SIGRTMIN+6 as suspend signal if sigrt-signals on OpenBSD
  • Use SIGUSR1/2 on FreeBSD/arm64
  • Use compiler TLS on NetBSD only if at least gcc-4.4 or clang-3.9
  • Workaround 'info is not assigned' cppcheck FP if assertions on (OS X)
  • Workaround SIG_SUSPEND delivery to thread inside mutex_lock fail if TSan
  • Workaround TSan FP about race between generic_malloc and array_mark_proc
  • Workaround TSan FP in acquire_mark_lock called from fork_prepare_proc
  • Workaround TSan FP warning in finalized_malloc, push_unconditionally
  • Workaround TSan FP warning in fork_prepare_proc
  • Workaround TSan FP warning in push_marked1/2/4, ptr_store_and_dirty
  • Workaround Thread Sanitizer (TSan) FP warning in is_valid_displacement
  • Workaround call stack size exceeded in gctest (Wasm)
  • Workaround crash in FreeBSD rand() by avoiding its concurrent usage
  • Workaround gctest hang if test compiled as C++ code by MSVC (CMake)
  • Workaround msvc_dbg.c build failure on arm[64] (MSVC)

Build status

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

Distribution Tarball

gc-8.2.2.tar.gz (see the Assets, md5: 787177b1b15aa19ffa0d61d8f508b69d)

8.0.8

26 Aug 17:26
Compare
Choose a tag to compare

Changes

  • Avoid potential race in GC_init_real_syms after GC_allow_register_threads
  • Define SUNOS5SIGS macro for kFreeBSD
  • Distribute gc_disclaim.h in single-obj-compilation
  • Do not assert that GC is initialized at DLL_THREAD_DETACH (Win32)
  • Do not name GCC intrinsics as C11 ones
  • Do not send signal to thread which is suspended manually
  • Eliminate 'buffer overflow detected' FP error in realloc_test
  • Eliminate 'extension used' clang warning in sparc_mach_dep.S (configure)
  • Eliminate 'function/data pointer conversion in expression' MSVC warning
  • Eliminate 'implicit decl of _setjmp' gcc warning if -std=c11 on Cygwin
  • Eliminate 'new_l may be used uninitialized' gcc warning in os_dep (Cygwin)
  • Eliminate 'old_gc_no is initialized but not referenced' MS VC false warning
  • Eliminate 'possible loss of data' compiler warning in GC_envfile_getenv
  • Eliminate 'value exceeds maximum size' warnings in debug_malloc, huge_test
  • Eliminate 'writing into region of size 0' gcc FP warning in realloc
  • Eliminate division-by-zero FP warning in GC_ASSERT in reclaim_block
  • Eliminate stringop-overflow gcc-12 warning in CORD__next
  • Ensure typed objects descriptor is never located in the first word
  • Fix 'GC_greatest_stack_base_below is defined but not used' warning (IA64)
  • Fix 'GC_text_mapping not used' GCC warning if redirect malloc w/o threads
  • Fix 'ISO C forbids conversion of function pointer to object' warning
  • Fix 'undeclared getpagesize' compiler warning on AIX and OSF1
  • Fix 'undefined reference to __data_start' linker error on Linux/aarch64
  • Fix GC_allocate_ml incorrect cleanup in GC_deinit if pthreads (MinGW)
  • Fix GC_dirty() argument in GC_malloc_explicitly_typed_ignore_off_page
  • Fix GC_make_descriptor for zero length argument
  • Fix GC_suspend_thread if called before thread destructor
  • Fix GC_unmapped_bytes update in GC_unmap for Sony PS/3
  • Fix SIGSEGV caused by dropped stack access from child process in gctest
  • Fix SUNOS5SIGS documentation to match macro definition in gcconfig.h
  • Fix abort in Win32 DllMain if PARALLEL_MARK
  • Fix assertion about built-in AO_test_and_set_acquire on sparc64 (gcc-12)
  • Fix assertion violation in GC_allow_register_threads on Windows
  • Fix assertion violation of GC_thread_key alignment if pthread-based TLS
  • Fix context saving when GC_suspend_thread(self)
  • Fix data race in fail_proc1 of gctest
  • Fix get_maps failure when GC_repeat_read returns zero
  • Fix hang in GC_free if GC_PREFER_MPROTECT_VDB (Mingw64)
  • Fix hang in select() called from suspend signal handler if TSan
  • Fix hang on sem_wait in GC_suspend_thread if thread was resumed recently
  • Fix hb_obj_kind type in documentation (ASCII diagram) describing hblkhdr
  • Fix incremental mode enabling in gctest if TEST_MANUAL_VDB
  • Fix lock assertion violation in GC_find_limit if always multi-threaded
  • Fix missing lock when GC_generate_random_valid_address is called
  • Fix nodist_libgc_la_SOURCES value in Makefile.am for Solaris/sparc
  • Fix oldProc initialization in gc_cleanup and eliminate related warnings
  • Fix parallel_initialized assertion violation in initsecondarythread (Win32)
  • Fix potential race if start_mark_threads called from threads in child
  • Fix propagation of out-of-memory occurred in GC_make_sequence_descriptor
  • Fix race between calloc_explicitly_typed and push_complex_descriptor
  • Fix stack overflow in gctest on Alpine Linux/s390x
  • Fix typo in debugging.html
  • Fix typos in comments of .c files and gc.h
  • Fix undefined stack_base on UWP/arm64 (llvm-mingw)
  • Make finalizer_closure pointer read/write atomic in malloc and callback
  • Prevent (fix) parallel custom mark procs run in single-threaded clients
  • Prevent changing of GC_markers_m1 value while collection in progress
  • Refer to Makefile.direct instead of deleted Makefile file in README
  • Relax assertion of hb_n_marks in reclaim_block if more than two markers
  • Remove checking of RS6000 completely
  • Remove duplicate check of MSWIN_XBOX1 in os_dep.c
  • Remove non-working check of M68K in gctest
  • Remove useless TSan W/A about read of mark_lock_holder for Windows
  • Replace SSH cloning with HTTPS one in README
  • Revert "Remove nested always-false ifdef for HPUX and FREEBSD"
  • Revert addition of msvc_dbg.h in include.am
  • Support 'z' format modifier by CORD_vsprintf
  • Update documentation of GC_RATE and MAX_PRIOR_ATTEMPTS
  • Use SIGRTMIN+6 as suspend signal if sigrt-signals on OpenBSD
  • Workaround TSan FP about race between generic_malloc and array_mark_proc
  • Workaround TSan FP warning in finalized_malloc, push_unconditionally
  • Workaround TSan FP warning in push_marked1/2/4, ptr_store_and_dirty
  • Workaround Thread Sanitizer (TSan) FP warning in is_valid_displacement
  • Workaround crash in FreeBSD rand() by avoiding its concurrent usage (tests)

Build status

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

Distribution Tarball

gc-8.0.8.tar.gz (see the Assets, md5: bf60aa2263b71bea24cc2b5d83f059f1)

7.6.16

25 Aug 22:26
Compare
Choose a tag to compare

Changes

  • Avoid potential race in GC_init_real_syms after GC_allow_register_threads
  • Define SUNOS5SIGS macro for kFreeBSD
  • Do not assert that GC is initialized at DLL_THREAD_DETACH (Win32)
  • Do not send signal to thread which is suspended manually
  • Eliminate 'new_l may be used uninitialized' gcc warning in os_dep (Cygwin)
  • Eliminate 'old_gc_no is initialized but not referenced' MS VC false warning
  • Eliminate 'possible loss of data' compiler warning in GC_envfile_getenv
  • Ensure typed objects descriptor is never located in the first word
  • Fix 'GC_greatest_stack_base_below is defined but not used' warning (IA64)
  • Fix 'undeclared getpagesize' compiler warning on AIX and OSF1
  • Fix 'undefined reference to __data_start' linker error on Linux/aarch64
  • Fix GC_dirty() argument in GC_malloc_explicitly_typed_ignore_off_page
  • Fix GC_make_descriptor for zero length argument
  • Fix GC_suspend_thread if called before thread destructor
  • Fix SIGSEGV caused by dropped stack access from child process in gctest
  • Fix SUNOS5SIGS documentation to match macro definition in gcconfig.h
  • Fix abort in Win32 DllMain if PARALLEL_MARK
  • Fix assertion violation in GC_allow_register_threads on Windows
  • Fix assertion violation of GC_thread_key alignment if pthread-based TLS
  • Fix comment in GC_init regarding GC_init_parallel call
  • Fix context saving when GC_suspend_thread(self)
  • Fix data race in fail_proc1 of gctest
  • Fix get_maps failure when GC_repeat_read returns zero
  • Fix hang on sem_wait in GC_suspend_thread if thread was resumed recently
  • Fix hb_obj_kind type in documentation (ASCII diagram) describing hblkhdr
  • Fix lock assertion violation in GC_find_limit if always multi-threaded
  • Fix missing lock when GC_generate_random_valid_address is called
  • Fix nodist_libgc_la_SOURCES value in Makefile.am for Solaris/sparc
  • Fix oldProc initialization in gc_cleanup and eliminate related warnings
  • Fix parallel_initialized assertion violation in initsecondarythread (Win32)
  • Fix potential race if start_mark_threads called from threads in child
  • Fix propagation of out-of-memory occurred in GC_make_sequence_descriptor
  • Fix race between calloc_explicitly_typed and push_complex_descriptor
  • Fix stack overflow in gctest on Alpine Linux/s390x
  • Fix typos in comments of .c files, gc.h and a typo in debugging.html
  • Make finalizer_closure pointer read/write atomic in malloc and callback
  • Prevent changing of GC_markers_m1 value while collection in progress
  • Refer to Makefile.direct instead of deleted Makefile file in README
  • Remove checking of RS6000 completely
  • Remove non-working check of M68K in gctest
  • Replace SSH cloning with HTTPS one in README
  • Revert "Remove nested always-false ifdef for HPUX and FREEBSD"
  • Revert addition of msvc_dbg.h in include.am
  • Use SIGRTMIN+6 as suspend signal if sigrt-signals on OpenBSD
  • Workaround Thread Sanitizer (TSan) FP warning in is_valid_displacement
  • Workaround crash in FreeBSD rand() by avoiding its concurrent usage

Build status

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

Distribution Tarball

gc-7.6.16.tar.gz (see the Assets, md5: 74fb76b6bccf0874cec65b794535a7dd)

7.4.22

25 Aug 21:43
Compare
Choose a tag to compare

Changes

  • Eliminate 'new_l may be used uninitialized' gcc warning in os_dep (Cygwin)
  • Eliminate 'possible loss of data' compiler warning in GC_envfile_getenv
  • Fix 'undeclared getpagesize' compiler warning on AIX and OSF1
  • Fix GC_dirty() argument in GC_malloc_explicitly_typed_ignore_off_page
  • Fix SIGSEGV caused by dropped stack access from child process in gctest
  • Fix abort in Win32 DllMain if PARALLEL_MARK
  • Fix assertion violation of GC_thread_key alignment if pthread-based TLS
  • Fix comment in GC_init regarding GC_init_parallel call
  • Fix stack overflow in gctest on Alpine Linux/s390x
  • Revert "Remove nested always-false ifdef for HPUX and FREEBSD"
  • Use SIGRTMIN+6 as suspend signal if sigrt-signals on OpenBSD
  • Workaround crash in FreeBSD rand() by avoiding its concurrent usage
  • Avoid potential race in GC_init_real_syms after GC_allow_register_threads
  • Define SUNOS5SIGS macro for kFreeBSD
  • Do not assert that GC is initialized at DLL_THREAD_DETACH (Win32)
  • Ensure typed objects descriptor is never located in the first word
  • Fix GC_make_descriptor for zero length argument
  • Fix SUNOS5SIGS documentation to match macro definition in gcconfig.h
  • Fix assertion violation in GC_allow_register_threads on Windows
  • Fix get_maps failure when GC_repeat_read returns zero
  • Fix hb_obj_kind type in documentation (ASCII diagram) describing hblkhdr
  • Fix missing lock when GC_generate_random_valid_address is called
  • Fix nodist_libgc_la_SOURCES value in Makefile.am for Solaris/sparc
  • Fix oldProc initialization in gc_cleanup and eliminate related warnings
  • Fix parallel_initialized assertion violation in initsecondarythread (Win32)
  • Fix propagation of out-of-memory occurred in GC_make_sequence_descriptor
  • Fix race between calloc_explicitly_typed and push_complex_descriptor
  • Fix typos in comments of .c files, gc.h and a typo in debugging.html
  • Refer to Makefile.direct instead of deleted Makefile file in README
  • Remove checking of RS6000 completely
  • Remove non-working check of M68K in gctest
  • Revert addition of msvc_dbg.h in include.am

Build status

Travis CI build
AppVeyor CI build

Distribution Tarball

gc-7.4.22.tar.gz (see the Assets, md5: 79d577f205422115b1e842d0a636a4a9)

7.2p

25 Aug 21:24
Compare
Choose a tag to compare

Changes

  • Avoid potential race in GC_init_real_syms after GC_allow_register_threads
  • Define SUNOS5SIGS macro for kFreeBSD
  • Do not assert that GC is initialized at DLL_THREAD_DETACH (Win32)
  • Ensure typed objects descriptor is never located in the first word
  • Fix GC_make_descriptor for zero length argument
  • Fix SUNOS5SIGS documentation to match macro definition in gcconfig.h
  • Fix assertion violation in GC_allow_register_threads on Windows
  • Fix get_maps failure when GC_repeat_read returns zero
  • Fix hb_obj_kind type in documentation (ASCII diagram) describing hblkhdr
  • Fix missing lock when GC_generate_random_valid_address is called
  • Fix nodist_libgc_la_SOURCES value in Makefile.am for Solaris/sparc
  • Fix oldProc initialization in gc_cleanup and eliminate related warnings
  • Fix parallel_initialized assertion violation in initsecondarythread (Win32)
  • Fix propagation of out-of-memory occurred in GC_make_sequence_descriptor
  • Fix race between calloc_explicitly_typed and push_complex_descriptor
  • Fix typos in comments of .c files, gc.h and a typo in debugging.html
  • Refer to Makefile.direct instead of deleted Makefile file in README
  • Remove checking of RS6000 completely
  • Remove non-working check of M68K in gctest
  • Revert addition of msvc_dbg.h in include.am

Build status

Travis CI build
AppVeyor CI build

Distribution Tarball

gc-7.2p.tar.gz (see the Assets, includes a copy of libatomic_ops-7.2k, md5: 997549d5e07157b4867a2397bdb1e423)

8.2.0

29 Sep 19:23
Compare
Choose a tag to compare
8.2.0 Pre-release
Pre-release

Changes

  • Add API for accessing incremental GC time limit with nanosecond precision
  • Add API function to force start of incremental collection
  • Add GC_ prefix to scan_ptr and some other static variables (refactoring)
  • Add GC_get/set_disable_automatic_collection API
  • Add I_HOLD_LOCK assertion to expand_hp_inner and related functions
  • Add assertion on free-list argument and result of GC_new_kind
  • Add assertion that GC is initialized to base incremental_protection_needs
  • Add assertions that GC_page_size is initialized
  • Add cordtest, staticrootstest, test_cpp, tracetest, disclaim tests (CMake)
  • Add debug messages on thread suspend/resume (Win32)
  • Add dummy testing of GC_incr_bytes_allocd/freed
  • Add table of contents in gcdescr.md
  • Add testing of GC_CALLOC/MALLOC_EXPLICITLY_TYPED (gctest)
  • Adjust formatting of numbered lists in README.md to match other .md files
  • Adjust highlighting of API prototypes in gcinterface.md
  • Adjust macro def/usage for AVR32, CRIS, NETBSD, OPENBSD, SH4 in gcconfig.h
  • Adjust printf calls in gctest check_heap_stats so that each has new-line
  • Allow incremental GC on Cygwin
  • Allow memory unmapping in case of MPROTECT_VDB
  • Allow to disable GWW or mprotect-based VDB at build
  • Allow to disable Glibc FPU exception mask and TSX workarounds (Linux)
  • Allow to disable __builtin_return_address(1) usage (x86 and x64)
  • Allow to specify custom value of LOG_PHT_ENTRIES
  • Always abort on failure to access /proc/self/maps (Linux)
  • Always define default_push_other_roots (code refactoring)
  • Avoid gcc stringop-overflow warning for intended overflow in smashtest
  • Avoid initial 3ms pause on world stop/start with GC_retry_signals (Linux)
  • Build cord.lib by Makefile.direct, NT_MAKEFILE, OS2_MAKEFILE, WCC_MAKEFILE
  • Build gc as a shared multi-threaded library by default (CMake)
  • Build gccpp library by Makefile.direct, NT_MAKEFILE and WCC_MAKEFILE
  • Build gctba library
  • Build shared libraries by default (WCC_MAKEFILE)
  • Change CLOCK_TYPE to timespec for Nintendo Switch (code refactoring)
  • Change EMSCRIPTEN macro for internal use to no-underscore format
  • Change log_size fields of finalizer to unsigned type (code refactoring)
  • Change type of toggleref_array_size/capacity to size_t (code refactoring)
  • Check leak of objects allocated by CRT malloc in gctest (MS VC)
  • Check real-symbols are already initialized in pthread_join/detach
  • Collapse multiple includes of windows.h (code refactoring)
  • Comments reformatting in mark.c to properly delimit sentences
  • Compile de test GUI app with resources (CMake)
  • Compile gc.c unless building static libraries (NT_MAKEFILE, WCC_MAKEFILE)
  • Compile msvc_dbg.c by CMake script (MS VC)
  • Declare API function and print amount of memory obtained from OS
  • Define GC_win32_free_heap API function for all Windows targets
  • Define STATIC macro to static by default
  • Depend number of fork_a_thread calls on NTHREADS (gctest)
  • Detect dladdr() presence in CMake script
  • Detect presence of execinfo.h system header in CMake script
  • Detect presence of getcontext and dl_iterate_phdr in CMake script
  • Detect sigsetjmp() availability in CMake script
  • Disable Clang/GCC aliasing optimization in CMake script by default
  • Do not build tests by default (Makefile.direct and other Makefiles)
  • Do not build the tests by default (CMake)
  • Do not call GC_push_conditional unless PROC_VDB
  • Do not call add_to_our_memory with null pointer (refactoring)
  • Do not compile pthread_*.c files in Cygwin or MSYS (CMake)
  • Do not define GC_write_cs for Xbox One target
  • Do not define HAVE_NO_FORK for all Unix-like systems
  • Do not hard-code CMAKE_DL_LIBS value and install paths (CMake)
  • Do not hard-code finalizable objects limit which triggers GC
  • Do not update scratch_last_end_ptr unless used by reg dynamic libraries
  • Document GC_incr_bytes_allocd/freed API function
  • Eliminate '(long)size<=0 is always false' cppcheck FP
  • Eliminate 'Consecutive return is unnecessary' cppcheck style warning
  • Eliminate 'accessing GC_dont_gc without lock' in GC_init code defect FP
  • Eliminate 'bytes_freed access w/o lock in incr_bytes_free' code defect FP
  • Eliminate 'checking if unsigned i < 0' cppcheck FP in is_heap_base
  • Eliminate 'hash_val value is never used' cppcheck false positive
  • Eliminate 'passing tainted var maps_buf to tainted sink' code defect FP
  • Eliminate 'retry_cnt is assigned value but never used' cppcheck FP
  • Eliminate 'stop variable is always 0' compiler warning in print_callers
  • Eliminate 'struct member os_callback is never used' cppcheck warning
  • Eliminate 't->flags not atomically updated' code defect FP
  • Eliminate 'tmpl might be accessed at non-zero index' cppcheck error
  • Eliminate GCC warning of unsafe __builtin_return_address(1)
  • Eliminate code duplication in reclaim_clear and disclaim_and_reclaim
  • Eliminate double lock code defect false positive in generic_lock
  • Eliminate memory leak reported in add_current_malloc_heap at exit (Win32)
  • Emscripten single-threaded support (detect stack base, push registers)
  • Enable CMake-based build for Borland and Watcom compilers
  • Enable compilation without C runtime (Win32)
  • Enable fork testing in single-thread builds (Unix-like)
  • Enable mprotect-based incremental GC for Linux/arm and Linux/aarch64
  • Enable true incremental collection even if parallel marker is on
  • Enable use of __builtin_unwind_init() if clang-8 or later
  • Ensure ELFSIZE is defined in dyn_load.c for OpenBSD (code refactoring)
  • Ensure add_to_heap_inner arguments are valid (refactoring)
  • Ensure all getters and setters are run at least once by gctest (pthreads)
  • Export CMake targets with namespace BDWgc
  • Fix 'const obj must be initialized if not extern' error in gc_alloc_ptrs.h
  • Fix ./libgc.la dependency on FreeBSD (Automake)
  • Fix HOST determination in CMake script
  • Fix copyright message in de_win.rc, gc_cpp.cc, ec.h and specific.h
  • Fix missing OS_TYPE definition for some targets
  • Fix mmap(PROT_NONE) failure if RLIMIT_AS value is low (Linux)
  • Generate cordtest and de executable files in GC base folder
  • Generate pkg-config metadata file (CMake)
  • Get rid of some non-ELF ifdefs (code refactoring)
  • Handle potential incomplete buffer read in GC_linux_main_stack_base
  • Implement GET_TIME for Nintendo Switch
  • Increase NTHREADS value in tests if code coverage analysis
  • Install docs and man page if enable_docs (CMake)
  • Install gc_gcj.h and gc_pthread_redirects.h only if appropriate
  • Log abort message details even if not print_stats (unless SMALL_CONFIG)
  • Mark buffer returned by get_maps as const (code refactoring)
  • Move C++ GC_ATTR_EXPLICIT and GC_NOEXCEPT definition to gc_config_macros.h
  • Move GC state non-pointer variables into GC_arrays (code refactoring)
  • Move GC state pointer variables into GC_arrays
  • Move GC_scratch_recycle_inner() to alloc.c (refactoring)
  • Move GC_throw_bad_alloc definition to new C++ file
  • Move QNX and Emscripten macro definitions to proper place in gcconfig.h
  • Move definition of GC_n_mark_procs and GC_n_kinds from mark.c to misc.c
  • New API (GC_set_markers_count) to control number of parallel markers
  • New API function to clear GC exclusion table
  • New API function to get size of object debug header
  • New API standalone functions to acquire and release the allocator lock
  • New CMake option (disable_gc_debug) to remove debugging code
  • New CMake option (disable_handle_fork) to disable fork handling completely
  • New macro (CONSOLE_LOG) to enable logging to console on Win32
  • New macro (GCTEST_PRINT_VERBOSE) to enable verbose logging in test.c only
  • New macro (NO_MSGBOX_ON_ERROR) to avoid message box on GC abort (Win32)
  • OpenBSD does not use ELF_CLASS (code refactoring)
  • Pass -D GC_DLL -fvisibility=hidden if default configure build is requested
  • Pass -no-undefined linker flag if building shared libraries (CMake)
  • Print pid of child processes if verbose logging (gctest)
  • Read environment variables from a file on WinCE (CMake script)
  • Reduce stack-allocated buffer in get_nprocs from 4KB to 1.7KB
  • Refine flags field comment in pthread_support.h
  • Reflect result of VDB selection at runtime in incremental_protection_needs
  • Reformat code of GC_push_roots
  • Reformat gc.man (wrap long lines)
  • Reformatting and code refactoring of CMake script
  • Remove 'current users' section from overview.md
  • Remove 'distributed ports', 'scalable versions' sections from overview.md
  • Remove AC_MSG_RESULT for THREADDLLIBS (dgux386)
  • Remove Borland-specific Makefile and gc.mak script
  • Remove GC_eobjfreelist variable in typd_mlc.c (code refactoring)
  • Remove GC_gcj_malloc_initialized variable (code refactoring)
  • Remove Linux-specific commands for building cord/de from Makefile.direct
  • Remove Win32 main_thread static variable if threads discovery is disabled
  • Remove code duplication between GC_unmap and GC_unmap_gap (refactoring)
  • Remove code duplication between PROTECT and UNPROTECT macros (refactoring)
  • Remove commented out assignment of gc_use_mmap in configure (refactoring)
  • Remove dash characters comprising prefix of some verbose logs (gctest)
  • Remove dependency on user32.dll import library from static libgc (Win32)
  • Remove documentation specific to particular old BDWGC releases
  • Remove duplicate Linux-related macro definitions in gcconfig.h
  • Remove duplicate macro definitions in gcconfig.h except for Linux
  • Remove gcmt-dll generation, rename libgc-lib.a to libgc.a (CMake)
  • Remove goto statement in print_callers (code refactoring)
  • Remove limit on number of heap sections
  • Remove new_gc_alloc.h file
  • Remove redundant GC_with_callee_saves_pushed call in multi-threaded builds
  • Remove redundant check of GC_free argument in register_finalizer
  • Remove redundant type casts in backgraph HEIGHT_UNKNOWN/IN_PROGRESS
  • Remove unused GC_prev_heap_addr (refactoring)
  • R...
Read more

8.0.6

28 Sep 20:48
Compare
Choose a tag to compare

Changes

  • Add loop to handle abort error like in suspend logic on Darwin
  • Add support of OpenBSD/aarch64
  • Add threading libraries to bdw-gc.pc
  • Allocate start_info struct on the stack in GC_pthread_create
  • Allow GC_PAUSE_TIME_TARGET environment variable values smaller than 5 ms
  • Avoid compiler warning about unused d in GC_CALLOC/MALLOC_EXPLICITLY_TYPED
  • Avoid gcc stringop-overflow warning for intended overflow in smashtest
  • Check _MSVC_LANG macro in addition to __cplusplus (MS VC)
  • Compile C++ code with exception handling enabled in NT_MAKEFILE
  • Define OS_TYPE and DATAEND for UWP targets
  • Disable mprotect-based incremental GC if /proc roots are used (Linux)
  • Do not report 'Incremental GC incompatible' warning more than once
  • Do not use Manual VDB mode if C malloc is redirected
  • Do not use iOS private symbols
  • Eliminate 'GC_non_gc_bytes is deprecated' warning in new_gc_alloc.h
  • Eliminate 'GC_old_bus_handler defined but not used' compiler warning
  • Eliminate 'cast between incompatible func types' warnings for FARPROC vars
  • Eliminate 'comparing signed and unsigned values' BCC warning in cordtest
  • Eliminate 'gc_pthread_redirects.h should contain header guard' code defect
  • Eliminate 'implicit declaration of sbrk' gcc warning if -std=c11 on Cygwin
  • Eliminate 'possible loss of data' BCC and MS VC warnings
  • Eliminate 'static GC_sysinfo definition has incomplete type' Clang warning
  • Eliminate 'unused function' compiler warnings (GC_add_map_entry, GC_lock)
  • Eliminate 'while clause does not guard' GCC warning in GC_parse_map_entry
  • Enable sbrk-to-mmap fallback on major supported Unix-like platforms
  • Ensure process is running on one CPU core if AO ops are emulated with locks
  • Explicitly zero-initialize trace_buf (fix trace_buf initialization)
  • Fix 'ACCESS_VIOLATION in marker' GC warning on Win32 async thread start
  • Fix 'GC_generic_malloc must be available' GCC error in new_gc_alloc.h
  • Fix 'ISO C++17 does not allow dynamic exception spec' clang-8 error
  • Fix 'Wrong __data_start/_end pair' if -Bsymbolic-functions used (Linux)
  • Fix 'condition pred!=NULL is always true' compiler warning
  • Fix 'external linkage required for var because of dllimport' error on MinGW
  • Fix 'ulong undefined' compilation error on AIX
  • Fix 'undefined reference to __data_start' linker error on RISC-V
  • Fix 'use of undeclared BUS_PAGE_FAULT' compilation error on FreeBSD 12
  • Fix 'write to GC log failed' error (Cygwin)
  • Fix 'wrong finalization data' gctest failure on Windows
  • Fix CMake build on macOS Catalina
  • Fix GC_OPENBSD_THREADS definition (OpenBSD/hppa)
  • Fix GC_proc_fd value in child process at fork (Solaris)
  • Fix GC_with_callee_saves_pushed for Android NDK r23 (clang-12)
  • Fix MPROTECT_VDB definition for single-threaded GC builds
  • Fix OS_TYPE and USE_MMAP_ANON definitions for Cygwin/x64
  • Fix STACKBOTTOM on 32-bit HP/UX 11.11
  • Fix abort in GC_printf when gctest is built as WinMain executable (Cygwin)
  • Fix assertion violation in register_dynlib_callback on Android
  • Fix build for OS X (CMake)
  • Fix building of shared library with C++ support on MinGW
  • Fix compiling by Makefile.direct on OpenBSD/UltraSparc
  • Fix configure message about 'AIX gcc optimization fix'
  • Fix cordtest build in SMakefile.amiga
  • Fix data race regarding *rlh value in generic_malloc_many
  • Fix first_thread stack_base initialization if custom GC_stackbottom (Win32)
  • Fix gc_allocator.h compilation by Clang
  • Fix gc_cflags variable name in configure (HP/UX)
  • Fix handling of areas smaller than page size in GC_scratch_recycle
  • Fix incorrect markup formatting in documentation
  • Fix misaligned tlfs passed to AO_load on m68k
  • Fix missing GC_quiet declaration in pcr_interface.c
  • Fix missing gc_dlopen.c and specific.c in CMake script
  • Fix missing scratch_last_end_ptr update (Irix)
  • Fix mmap() failures on AIX, HP/UX and Haiku
  • Fix overflow of scratch_free_ptr value
  • Fix page_was_[ever_]dirty() for static roots (Solaris)
  • Fix printf format specifier in simple_example.md
  • Fix save_callers for multi-threaded case if built-in backtrace unavailable
  • Fix subexpression widening in memhash() of disclaim_weakmap_test
  • Fix test_cpp failure caused by arbitrary link order (Win32)
  • Fix test_cpp failure when gc_cpp resides in a dll (Borland, Watcom)
  • Fix various typos mostly in documentation files
  • Fix word size, data start and alignment for OpenBSD/mips64(el)
  • Include <alloca.h> when using alloca on AIX
  • Limit number of unmapped regions (Linux and DragonFly)
  • New macro to avoid system-wide new/delete inlining in gc_cpp.h (Win32)
  • Prevent GetThreadContext failure (Windows)
  • Prevent WARN of incompatible incremental GC if default or manual VDB
  • Reduce a time period between GetExitCodeThread and SuspendThread (Win32)
  • Refactoring of WoW64 workaround (Win32)
  • Refine GC_INIT documentation about its multiple invocation
  • Refine GC_parallel documentation in gc.h
  • Refine do_blocking() documentation in gc.h
  • Remove a misleading comment about Solaris in gc.h
  • Remove cord .h files from list of non-installed headers (Automake)
  • Remove dead part of condition to define NEED_FIND_LIMIT in gc_priv.h
  • Remove gcmt-lib generation by CMake
  • Support MSYS builds by CMake and configure
  • Update documentation about the incremental collector support
  • Use HEURISTIC2 on OpenBSD when single-threaded
  • Use pstat_getprocvm to determine main stack bottom on HP-UX
  • Workaround 'expression is only useful for its side effects' WCC warning
  • Workaround clang-3.8/s390x bug when processing __builtin_frame_address
  • Workaround fread fail after enable_incremental if malloc redirected (Linux)

Build status

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

Distribution Tarball

gc-8.0.6.tar.gz (see the Assets above, md5: 4878e629f482600f2060f30853c7b415)

7.6.14

28 Sep 19:37
Compare
Choose a tag to compare

Changes

  • Add loop to handle abort error like in suspend logic on Darwin
  • Add support of OpenBSD/aarch64
  • Add threading libraries to bdw-gc.pc
  • Disable mprotect-based incremental GC if /proc roots are used (Linux)
  • Do not use iOS private symbols
  • Eliminate 'GC_old_bus_handler defined but not used' compiler warning
  • Eliminate 'comparing signed and unsigned values' BCC warning in cordtest
  • Eliminate 'possible loss of data' BCC and MS VC warnings
  • Eliminate 'static GC_sysinfo definition has incomplete type' Clang warning
  • Eliminate 'unused function GC_add_map_entry' compiler warning
  • Eliminate 'while clause does not guard' GCC warning in GC_parse_map_entry
  • Explicitly zero-initialize trace_buf (fix trace_buf initialization)
  • Fix 'ACCESS_VIOLATION in marker' GC warning on Win32 async thread start
  • Fix 'GC_generic_malloc must be available' GCC error in new_gc_alloc.h
  • Fix 'ulong undefined' compilation error on AIX
  • Fix 'undefined reference to __data_start' linker error on RISC-V
  • Fix 'write to GC log failed' error
  • Fix GC_proc_fd value in child process at fork (Solaris)
  • Fix MPROTECT_VDB definition for single-threaded GC builds
  • Fix OS_TYPE and USE_MMAP_ANON definitions for Cygwin/x64
  • Fix STACKBOTTOM on 32-bit HP/UX 11.11
  • Fix abort in GC_printf when gctest is built as WinMain executable (Cygwin)
  • Fix assertion violation in register_dynlib_callback on Android
  • Fix compiling by Makefile.direct on OpenBSD/UltraSparc
  • Fix configure message about 'AIX gcc optimization fix'
  • Fix cordtest build in SMakefile.amiga
  • Fix data race regarding *rlh value in generic_malloc_many
  • Fix first_thread stack_base initialization if custom GC_stackbottom (Win32)
  • Fix gc_allocator.h compilation by Clang
  • Fix gc_cflags variable name in configure (HP/UX)
  • Fix handling of areas smaller than page size in GC_scratch_recycle
  • Fix incorrect define GC_OPENBSD_THREADS on sparc64
  • Fix misaligned tlfs passed to AO_load on m68k
  • Fix missing GC_quiet declaration in pcr_interface.c
  • Fix missing gc_dlopen.c in CMake script
  • Fix missing scratch_last_end_ptr update (Irix)
  • Fix overflow of scratch_free_ptr value
  • Fix page_was_[ever_]dirty() for static roots (Solaris)
  • Fix printf format specifier in simple_example.html
  • Fix save_callers for multi-threaded case if built-in backtrace unavailable
  • Fix test_cpp failure caused by arbitrary link order (Win32)
  • Fix test_cpp failure when gc_cpp resides in a dll (Borland, Watcom)
  • Fix various typos mostly in documentation files
  • Fix word size, data start and alignment for OpenBSD/mips64(el)
  • Prevent GetThreadContext failure (Windows)
  • Prevent WARN of incompatible incremental GC if default or manual VDB
  • Reduce a time period between GetExitCodeThread and SuspendThread (Win32)
  • Refactoring of WoW64 workaround (Win32)
  • Remove a misleading comment about Solaris in gc.h
  • Workaround 'expression is only useful for its side effects' WCC warning
  • Workaround fread fail after enable_incremental if malloc redirected (Linux)

Build status

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

Distribution Tarball

gc-7.6.14.tar.gz (see the Assets above, md5: ac08ee4a73d69dac6ce1d725d20a2008)

7.4.20

28 Sep 18:57
Compare
Choose a tag to compare

Changes

  • Add loop to handle abort error like in suspend logic on Darwin
  • Disable mprotect-based incremental GC if /proc roots are used (Linux)
  • Do not hold GC_fault_handler_lock when in Sleep (Windows)
  • Eliminate 'static GC_sysinfo definition has incomplete type' Clang warning
  • Eliminate 'unused function GC_add_map_entry' compiler warning
  • Eliminate 'while clause does not guard' GCC warning in GC_parse_map_entry
  • Explicitly zero-initialize trace_buf (fix trace_buf initialization)
  • Fix 'ACCESS_VIOLATION in marker' GC warning on Win32 async thread start
  • Fix 'GC_generic_malloc must be available' GCC error in new_gc_alloc.h
  • Fix 'expected function body after declarator' clang error in gc_cpp.cc
  • Fix 'write to GC log failed' error
  • Fix GC_proc_fd value in child process at fork (Solaris)
  • Fix OS_TYPE and USE_MMAP_ANON definitions for Cygwin/x64
  • Fix abort in GC_printf when gctest is built as WinMain executable (Cygwin)
  • Fix assertion violation in register_dynlib_callback on Android
  • Fix configure message about 'AIX gcc optimization fix'
  • Fix cordtest build in SMakefile.amiga
  • Fix data race regarding *rlh value in generic_malloc_many
  • Fix first_thread stack_base initialization if custom GC_stackbottom (Win32)
  • Fix fread failure after enable_incremental if malloc is redirected (Linux)
  • Fix gc_cflags variable name in configure (HP/UX)
  • Fix handling of areas smaller than page size on recycle scratch area
  • Fix incorrect define GC_OPENBSD_THREADS on sparc64
  • Fix misaligned tlfs passed to AO_load on m68k
  • Fix missing GC_quiet declaration in pcr_interface.c
  • Fix missing gc_dlopen.c in CMake script
  • Fix missing scratch_last_end_ptr update (Irix)
  • Fix overflow of scratch_free_ptr value
  • Fix page_was_[ever_]dirty() for static roots (Solaris)
  • Fix printf format specifier in simple_example.html
  • Fix save_callers for multi-threaded case if built-in backtrace unavailable
  • Fix various typos in comments and documentation files
  • Fix word size, data start and alignment for OpenBSD/mips64(el)
  • Prevent GetThreadContext failure (Windows)
  • Prevent WARN of incompatible incremental GC if default or manual VDB
  • Reduce a time period between GetExitCodeThread and SuspendThread (Win32)
  • Refactoring of WoW64 workaround (Win32)
  • Remove a misleading comment about Solaris in gc.h

Build status

Travis CI build
AppVeyor CI build

Distribution Tarball

gc-7.4.20.tar.gz (see the Assets above, md5: c84a52a6fdb38adb55e6394681f46651)

7.2o

28 Sep 08:08
Compare
Choose a tag to compare

Changes

  • Add loop to handle abort error like in suspend logic on Darwin
  • Disable mprotect-based incremental GC if /proc roots are used (Linux)
  • Explicitly zero-initialize trace_buf (fix trace_buf initialization)
  • Fix 'ACCESS_VIOLATION in marker' GC warning on Win32 async thread start
  • Fix 'GC_generic_malloc must be available' GCC error in new_gc_alloc.h
  • Fix 'expected function body after declarator' clang error in gc_cpp.cc
  • Fix 'write to GC log failed' error
  • Fix GC_proc_fd value in child process at fork (Solaris)
  • Fix assertion violation in register_dynlib_callback on Android
  • Fix configure message about 'AIX gcc optimization fix'
  • Fix data race regarding *rlh value in generic_malloc_many
  • Fix first_thread stack_base initialization if custom GC_stackbottom (Win32)
  • Fix fread failure after enable_incremental if malloc is redirected (Linux)
  • Fix gc_cflags variable name in configure (HP/UX)
  • Fix handling of areas smaller than page size on recycle scratch area
  • Fix incorrect define GC_OPENBSD_THREADS on sparc64
  • Fix misaligned tlfs passed to AO_load on m68k
  • Fix missing GC_quiet declaration in pcr_interface.c
  • Fix missing gc_dlopen.c in CMake script
  • Fix missing scratch_last_end_ptr update (Irix)
  • Fix overflow of scratch_free_ptr value
  • Fix page_was_[ever_]dirty() for static roots (Solaris)
  • Fix printf format specifier in simple_example.html
  • Fix save_callers for multi-threaded case if built-in backtrace unavailable
  • Fix various typos in comments and documentation files
  • Fix word size, data start and alignment for OpenBSD/mips64(el)
  • Prevent WARN of incompatible incremental GC if default or manual VDB
  • Reduce a time period between GetExitCodeThread and SuspendThread (Win32)
  • Remove a misleading comment about Solaris in gc.h

Build status

Travis CI build
AppVeyor CI build

Distribution Tarball

gc-7.2o.tar.gz (see the Assets above, includes a copy of libatomic_ops-7.2j, md5: f86c1b25c21cb0855deafe5756e4dc8d)