Skip to content

Releases: ivmai/bdwgc

8.2.4

26 May 18:58
Compare
Choose a tag to compare

Changes

  • Abort with appropriate message if first call of mmap fails with EPERM
  • Adjust CORD_ec comment placement in ec.h
  • Adjust WoW64 workaround to work on UWP/WinRT
  • Adjust naming of Win32/64 and x86/64 words in comments and documentation
  • Avoid potential race between realloc and GC_block_was_dirty
  • Do not double-clear first two words of object in GC_generic_malloc_aligned
  • Do not mention FASTLOCK in comment
  • Do not mix debug and non-debug allocations in disclaim tests
  • Do not prohibit threaded builds with malloc redirection on non-Linux
  • Do not prohibit zero proc argument in GC_register_disclaim_proc
  • Eliminate '&array may not produce intended result' wcc warnings
  • Eliminate 'GC_unmap_end declared but unused' bcc warning in disclaim_bench
  • Eliminate 'ISO C++17 does not allow register specifier' gcc warning
  • Eliminate 'cast signed to bigger unsigned' CSA warning in WARNs, new_thread
  • Eliminate 'n obtained from untrusted source' code defect FP in test_cpp
  • Eliminate 'skipping config since MAXSIG/_NSIG is unknown' cppcheck FP
  • Eliminate data race FP between remove_protection and write_fault_handler
  • Eliminate data race FP reported in need_unreachable_finalization by TSan
  • Ensure 'new' system header is included by gc_cpp.h if GC_INCLUDE_NEW
  • Ensure GC_NO_PTHREAD_SIGMASK defined if no GC_pthread_sigmask prototype
  • Fix 'EMSCRIPTEN macro redefined' compile error
  • Fix 'ISO C90 forbids mixed decl and code' warning in SOFT_VDB dirty_init
  • Fix 'call to undeclared pthread_setname_np' errors in configure and cmake
  • Fix 'failed to create new win32 semaphore' Cygwin fatal error at fork
  • Fix 'operator new is missing throw(bad_alloc)' clang warning in gc_cpp.h
  • Fix 'overflow in conversion from word' g++ warning in GC_init
  • Fix 'unknown option --no-undefined' linker error in cmake script (OS X)
  • Fix 'unresolved _end' linker error when targeting Android bitcode
  • Fix CORD_next() indent inside loop in test_basics() of cordtest
  • Fix DCL_LOCK_STATE placement in GC_set_oom_fn
  • Fix GC_excl_table overrun on overflow in GC_exclude_static_roots
  • Fix GC_thread_is_registered for finished threads
  • Fix GC_unreachable_finalize_mark_proc to ensure its unique address
  • Fix GC_unregister_my_thread call before GC functions usage in gctest
  • Fix IRIX5 defined wrongly on FreeBSD/mips, WinCE/mips, Tandem S-Series
  • Fix allocated objects count increment in alloc8bytes of gctest
  • Fix alt-stack handling in GC_push_all_stacks if stack grows up
  • Fix comparisons to heap boundary in GC_get_back_ptr_info and GC_mark_from
  • Fix data race in GC_heapsize_at_forced_unmap variable
  • Fix description of client promise for IGNORE_OFF_PAGE allocated objects
  • Fix disabling of automatic dynamic libraries registration
  • Fix double initialization of main thread local free lists on Win32
  • Fix gccpp and gctba library names in gcinterface.md
  • Fix infinite loop in disable_gc_for_dlopen and GC_wait_for_gc_completion
  • Fix infinite wait in pthread_join/detach if thread already finished (Win32)
  • Fix joinable threads shutdown on NaCl
  • Fix loop condition over dll_thread_table in GC_lookup_pthread (Win32)
  • Fix missing GC_CALLBACK for GC_waitForSingleObjectInfinite
  • Fix missing extern C for __asan_default_options
  • Fix missing libalphagc.so dependency in Makefile.direct
  • Fix missing lock while updating GC_in_thread_creation in GC_exit_check
  • Fix missing recovery from faults in GC_mark_some on Win64 if MinGW
  • Fix missing result check of pthread_attr_getdetachstate in pthread_create
  • Fix mistyped function name in documentation of REDIRECT_REALLOC
  • Fix negative heap size values reported in WARN
  • Fix null pointer dereference in TRACE_TARGET
  • Fix of GC_bytes_allocd increment in GC_generic_malloc_inner
  • Fix overlapping region assertion in mark_some if malloc redirect on Linux
  • Fix potential SIGSEGV on out-of-memory in gctest
  • Fix signals delivery fail in find-leak mode if init from non-main thread
  • Fix stack top/bottom print order in GC_push_all_stacks if stack grows up
  • Fix store-and-dirty call in GC_CONS
  • Fix unregistering of thread created by intercepted pthread_create on NaCl
  • Fix unused GC_parse_version if no SOFT_VDB and no parallel mark on Linux
  • Fix use of unset errno after pthread_create/sigmask calls
  • Fix various typos in comments and documentation
  • Increment allocated objects count after GC_GCJ_MALLOC() in gctest
  • Invoke GC_oom_fn if GC_make_array_descriptor failed because of no memory
  • Make Emscripten Asyncify feature optional
  • Mention gctba library in README.cmake
  • Prevent 'function should return a value' BCC error in CMake script
  • Provide meaningful error message in case of Emscripten threaded build
  • Reduce local variable scope in resend_lost_signals_retry for cppcheck
  • Remove disable-warning options from WCC_MAKEFILE unrecognized by wcc v2.0
  • Remove false warning of missing libpthread.so on Linux
  • Remove redundant 'ifdef THREADS' around LOCK/UNLOCK in call_with_alloc_lock
  • Remove redundant GC_ATTR_UNUSED for GC_mark_and_push
  • Remove unused GC_old_sig_mask from gc_locks.h
  • Replace WARN in GC_mark_some wrapper back to GC_COND_LOG_PRINTF
  • Specify throw and noexcept for operator new/delete in gc_cpp.h for MS VC
  • Support Hurd/x86_64
  • Support client-defined stack pointer adjustment before thread stack push
  • Suppress 'unreachable code' wcc warning in I_HOLD_LOCK assertion (CMake)
  • Update autotools for release preparation (ac-2.71, am-1.16.5, m4-1.14.19)
  • Update dump function name in GC_DUMP_REGULARLY variable documentation
  • Use emscripten_stack_get_base instead of emscripten_scan_stack
  • Use sbrk() to get OS memory on Emscripten
  • Workaround 'writing into region of size 0' gcc warning in suspend_handler
  • Workaround CSA null pointer dereference FP in invalidate_map of cord/de
  • Workaround a malfunction of soft-dirty bits clearing on Power9

Build status

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

Distribution tarball

gc-8.2.4.tar.gz (see the Assets, md5: 8901a6ed29ac35842420054772ea3441)

8.0.10

26 May 16:17
Compare
Choose a tag to compare

Changes

  • Abort with appropriate message if first call of mmap fails with EPERM
  • Adjust CORD_ec comment placement in ec.h
  • Avoid potential race between realloc and GC_block_was_dirty
  • Do not mix debug and non-debug allocations in disclaim tests
  • Do not prohibit zero proc argument in GC_register_disclaim_proc
  • Eliminate '&array may not produce intended result' wcc warnings
  • Eliminate 'cast signed to bigger unsigned' CSA warning in GC_new_thread
  • Eliminate 'cast signed to bigger unsigned' CSA warning in WARN calls
  • Ensure 'new' system header is included by gc_cpp.h if GC_INCLUDE_NEW
  • Ensure GC_NO_PTHREAD_SIGMASK defined if no GC_pthread_sigmask prototype
  • Fix 'overflow in conversion from word' g++ warning in GC_init
  • Fix CORD_next() indent inside loop in test_basics() of cordtest
  • Fix DCL_LOCK_STATE placement in GC_set_oom_fn
  • Fix GC_excl_table overrun on overflow in GC_exclude_static_roots
  • Fix GC_thread_is_registered for finished threads
  • Fix GC_unregister_my_thread call before GC functions usage in gctest
  • Fix IRIX5 defined wrongly on FreeBSD/mips
  • Fix IRIX5 defined wrongly on Tandem S-Series and WinCE/mips
  • Fix alt-stack handling in GC_push_all_stacks if stack grows up
  • Fix comparisons to heap boundary in GC_get_back_ptr_info and GC_mark_from
  • Fix data race in GC_heapsize_at_forced_unmap variable
  • Fix description of client promise for IGNORE_OFF_PAGE allocated objects
  • Fix disabling of automatic dynamic libraries registration
  • Fix double initialization of main thread local free lists on Win32
  • Fix infinite loop in disable_gc_for_dlopen and GC_wait_for_gc_completion
  • Fix joinable threads shutdown on NaCl
  • Fix loop condition over dll_thread_table in GC_lookup_pthread (Win32)
  • Fix missing GC_CALLBACK for GC_waitForSingleObjectInfinite
  • Fix missing extern C for __asan_default_options
  • Fix missing libalphagc.so dependency in Makefile.direct
  • Fix missing lock while updating GC_in_thread_creation in GC_exit_check
  • Fix missing result check of pthread_attr_getdetachstate in pthread_create
  • Fix null pointer dereference in TRACE_TARGET
  • Fix of GC_bytes_allocd increment in GC_generic_malloc_inner
  • Fix overlapping region assertion in mark_some if malloc redirect on Linux
  • Fix potential SIGSEGV on out-of-memory in gctest
  • Fix store-and-dirty call in GC_CONS
  • Fix typo in comment of GC_Thread_Rep.dummy
  • Fix typos in comments and documentation
  • Fix unregistering of thread created by intercepted pthread_create on NaCl
  • Fix use of unset errno after pthread_create call
  • Fix use of unset errno after pthread_sigmask calls
  • Increment allocated objects count after GC_GCJ_MALLOC() in gctest
  • Invoke GC_oom_fn if GC_make_array_descriptor failed because of no memory
  • Remove redundant 'ifdef THREADS' around LOCK/UNLOCK in call_with_alloc_lock
  • Remove redundant GC_ATTR_UNUSED for GC_mark_and_push
  • Workaround CSA null pointer dereference FP in invalidate_map of cord/de

Build status

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

Distribution tarball

gc-8.0.10.tar.gz (see the Assets, md5: 0aa321694a559db4e9bb4b5cff75493a)

7.6.18

26 May 05:19
Compare
Choose a tag to compare

Changes

  • Adjust CORD_ec comment placement in ec.h
  • Do not mix debug and non-debug allocations in disclaim tests
  • Eliminate 'cast signed to bigger unsigned' CSA warning in WARN calls
  • Ensure GC_NO_PTHREAD_SIGMASK defined if no GC_pthread_sigmask prototype
  • Fix CORD_next() indent inside loop in test_basics() of cordtest
  • Fix DCL_LOCK_STATE placement in GC_set_oom_fn
  • Fix GC_excl_table overrun on overflow in GC_exclude_static_roots
  • Fix GC_thread_is_registered for finished threads
  • Fix GC_unregister_my_thread call before GC functions usage in gctest
  • Fix IRIX5 defined wrongly on FreeBSD/mips
  • Fix IRIX5 defined wrongly on Tandem S-Series and WinCE/mips
  • Fix alt-stack handling in GC_push_all_stacks if stack grows up
  • Fix comparisons to heap boundary in GC_get_back_ptr_info and GC_mark_from
  • Fix data race in GC_heapsize_at_forced_unmap variable
  • Fix disabling of automatic dynamic libraries registration
  • Fix double initialization of main thread local free lists on Win32
  • Fix joinable threads shutdown on NaCl
  • Fix loop condition over dll_thread_table in GC_lookup_pthread (Win32)
  • Fix missing GC_CALLBACK for GC_waitForSingleObjectInfinite
  • Fix missing libalphagc.so dependency in Makefile.direct
  • Fix missing lock while updating GC_in_thread_creation in GC_exit_check
  • Fix missing result check of pthread_attr_getdetachstate in pthread_create
  • Fix null pointer dereference in TRACE_TARGET
  • Fix of GC_bytes_allocd increment in GC_generic_malloc_inner
  • Fix overlapping region assertion in mark_some if malloc redirect on Linux
  • Fix potential SIGSEGV on out-of-memory in gctest
  • Fix typos in comments and documentation
  • Fix unregistering of thread created by intercepted pthread_create on NaCl
  • Fix use of unset errno after pthread_create call
  • Invoke GC_oom_fn if GC_make_array_descriptor failed because of no memory
  • Remove redundant 'ifdef THREADS' around LOCK/UNLOCK in call_with_alloc_lock

Build status

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

Distribution tarball

gc-7.6.18.tar.gz (see the Assets, md5: 329dd8c58125719c51761b7888f3d69c)

7.4.24

25 May 21:39
Compare
Choose a tag to compare

Changes

  • Adjust CORD_ec comment placement in ec.h
  • Do not mix debug and non-debug allocations in disclaim tests
  • Eliminate 'cast signed to bigger unsigned' CSA warning in WARN calls
  • Ensure GC_NO_PTHREAD_SIGMASK defined if no GC_pthread_sigmask prototype
  • Fix CORD_next() indent inside loop in test_basics() of cordtest
  • Fix DCL_LOCK_STATE placement in GC_set_oom_fn
  • Fix GC_excl_table overrun on overflow in GC_exclude_static_roots
  • Fix GC_thread_is_registered for finished threads
  • Fix GC_unregister_my_thread call before GC functions usage in gctest
  • Fix IRIX5 defined wrongly on Tandem S-Series and WinCE/mips
  • Fix comparisons to heap boundary in GC_get_back_ptr_info and GC_mark_from
  • Fix disabling of automatic dynamic libraries registration
  • Fix double initialization of main thread local free lists on Win32
  • Fix joinable threads shutdown on NaCl
  • Fix loop condition over dll_thread_table in GC_lookup_pthread (Win32)
  • Fix missing GC_CALLBACK for GC_waitForSingleObjectInfinite
  • Fix missing libalphagc.so dependency in Makefile.direct
  • Fix missing lock while updating GC_in_thread_creation in GC_exit_check
  • Fix missing result check of pthread_attr_getdetachstate in pthread_create
  • Fix null pointer dereference in TRACE_TARGET
  • Fix of GC_bytes_allocd increment in GC_generic_malloc_inner
  • Fix overlapping region assertion in mark_some if malloc redirect on Linux
  • Fix potential SIGSEGV on out-of-memory in gctest
  • Fix typos in comments and documentation
  • Fix unregistering of thread created by intercepted pthread_create on NaCl
  • Fix use of unset errno after pthread_create call
  • Invoke GC_oom_fn if GC_make_array_descriptor failed because of no memory
  • Remove redundant 'ifdef THREADS' around LOCK/UNLOCK in call_with_alloc_lock

Build status

Travis CI build
AppVeyor CI build

Distribution tarball

gc-7.4.24.tar.gz (see the Assets, md5: d308e0177cba8811234571a35d593d4e)

7.2q

25 May 20:58
Compare
Choose a tag to compare

Changes

  • Fix CORD_next() indent inside loop in test_basics() of cordtest
  • Fix DCL_LOCK_STATE placement in GC_set_oom_fn
  • Fix GC_excl_table overrun on overflow in GC_exclude_static_roots
  • Fix IRIX5 defined wrongly on Tandem S-Series and WinCE/mips
  • Fix comparisons to heap boundary in GC_get_back_ptr_info and GC_mark_from
  • Fix disabling of automatic dynamic libraries registration
  • Fix double initialization of main thread local free lists on Win32
  • Fix joinable threads shutdown on NaCl
  • Fix loop condition over dll_thread_table in GC_lookup_pthread (Win32)
  • Fix missing GC_CALLBACK for GC_waitForSingleObjectInfinite
  • Fix missing libalphagc.so dependency in Makefile.direct
  • Fix missing result check of pthread_attr_getdetachstate in pthread_create
  • Fix overlapping region assertion in mark_some if malloc redirect on Linux
  • Fix potential SIGSEGV on out-of-memory in gctest
  • Fix typos in comments and documentation
  • Fix unregistering of thread created by intercepted pthread_create on NaCl
  • Fix use of unset errno after pthread_create call
  • Invoke GC_oom_fn if GC_make_array_descriptor failed because of no memory

Build status

Travis CI build
AppVeyor CI build

Distribution tarball

gc-7.2q.tar.gz (see the Assets, includes a copy of libatomic_ops-7.2k, md5: 0df0d5999d31b2d664b293a38f798c27)

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)