Skip to content

7.4.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@ivmai ivmai released this 16 May 19:26
· 3883 commits to master since this release

Changes

  • Add 'bytes reclaimed' counters to public GC_prof_stats_s
  • Add AArch64 (64-bit ARM) target support
  • Add GC_LONG_REFS_NOT_NEEDED ifdefs to exclude long link functionality
  • Add GC_get_prof_stats_unsafe to GC public API
  • Add GC_push_all/conditional() to GC public API
  • Add assertion on number_of_objs to GC_extend_size_map
  • Add assertion to GC_enable() ensuring no counter underflow
  • Add assertion to LOCK definition that lock is not already held
  • Add assertion to LONG_MULT and remove useless assert in PUSH_CONTENTS_HDR
  • Add double-lock assertion to GC_acquire_mark_lock
  • Add manual POSIX fork handling support (Android)
  • Add note about 'pkg-config' solving problem with autoconf 2.68 or older
  • Add public GC_set/get_abort_func to replace default GC_on_abort
  • Add public GC_start_mark_threads() to allow parallel marker in fork child
  • Add public setter and getter for GC_push_other_roots
  • Add support of Android logger
  • Add tests for GC_register/move/unregister_long_link
  • Add thread suspend/resume signals public setters (POSIX threads)
  • Added long weakref support
  • Adjust GC_dont_expand/gc/precollect and GC_print_stats type to match gc.h
  • Adjust README.md title and references to doc .html files in it
  • Adjust build scripts to enable additional test library in staticrootstest
  • Adjust logged messages in start_mark_threads and GC_thr_init
  • Adjust printf format specifiers in GC_print_trace
  • Allow not to rely on __data_start value (Linux)
  • Allow pthread_kill error code logging in GC_suspend/resume (debugging)
  • Allow to compile GC_inner_start_routine aside from extra/gc.c
  • Allow to omit libc atexit() call
  • Avoid LOCK/UNLOCK hard-coding in gc_locks.h for PS3 target
  • Better document GC_warn_proc in gc.h
  • Call GC_on_abort (with NULL argument) on exit(1)
  • Call GC_stats/verbose_log_printf instead of GC_log_printf if print_stats
  • Change policy regarding version numbers ("micro" part instead of "alpha")
  • Changed C99-style designated init of GC_dl_hashtbl struct to use C89-style
  • Check GC_base result in GC_print_all_smashed_proc
  • Check that SIG_SUSPEND and SIG_THR_RESTART are different (Pthreads)
  • Check traceable_allocator.allocate result before dereference in test_cpp
  • Code refactoring of GC_x_printf (move shared code to macro)
  • Convert readme to markdown
  • Default to use libc_stack_end in single-threaded GC on glibc targets
  • Define GC_VSNPRINTF internal macro in misc.c (code refactoring)
  • Define functions in darwin_semaphore.h as inline instead of static
  • Define old_bus_handler static variable only if used (Unix)
  • Detect dladdr() presence by configure
  • Disable find-leak GC_gcollect on GC abnormal EXIT
  • Do not define _setjmp/_longjmp macros in mach_dep.c
  • Do not duplicate android_log_write output to GC log file (Android)
  • Do not include sigcontext.h if NO_SIGCONTEXT_H (Linux)
  • Do not set GC_lock_holder by call_with_alloc_lock if assertions disabled
  • Do not use pthread_getattr_np if NO_PTHREAD_GETATTR_NP specified
  • Elaborate comment on dependencies in autogen.sh
  • Eliminate 'cast from int to pointer' warning in GC_exclude_static_roots
  • Eliminate 'missing exception specification' warning in gc_cpp.cc (Clang)
  • Eliminate 'uninitialized variable use' warning in test_printf (cord)
  • Eliminate 'unused result' compiler warning in main() of test_cpp
  • Eliminate 'unused value' compiler warning in GC_stop_world (Pthreads)
  • Eliminate 'unused variable' compiler warning in start_mark_threads (HP/UX)
  • Eliminate Clang warning for GC_pthread_exit attribute
  • Eliminate GCC warning about uninitialized 'hhdr' in GC_allochblk_nth
  • Eliminate GCC warning in GC_get_main_stack_base (OpenBSD)
  • Eliminate GCC warnings in setjmp_t.c, test_cpp and cord 'de' app
  • Eliminate GC_first_nonempty atomic value reload in GC_mark_local assertion
  • Eliminate SIGBUS-related dead code in GC_write_fault_handler (Linux)
  • Eliminate warning and simplify expression in GC_init_explicit_typing
  • Enable 'force GC at every GC_malloc' debug-related functionality
  • Enable on-demand debug logging in GC_FindTopOfStack (Darwin)
  • Enable prefetch operations by default (GCC 3.0+)
  • Enable staticrootstest for the case of GC shared library build
  • Enable thread-local allocation support for Clang on Cygwin
  • Explicitly specify that Darwin, Linux and Solaris platforms have dladdr
  • Fix ABORT definition for mingw32ce (WinCE)
  • Fix AM_CONFIG_HEADER in configure for autoconf-2.69-1
  • Fix GC_CreateThread and GC_beginthreadex definition for Cygwin
  • Fix GC_INIT_CONF_ROOTS in gc.h for Android
  • Fix GC_INLINE definition to comply with ISO C90 standard (GCC)
  • Fix GC_remove_all_threads_but_me for Android (fork support)
  • Fix debug_register_displacement calls from GC_debug_generic_malloc_inner
  • Fix dyn_load.c compilation for Android 4.3
  • Fix make disclaim_test to link with new GNU ld linking rules
  • Improve GC error printing atomicity in GC_debug_X and GC_print_obj
  • Improve GC output atomicity in GC_print_obj, GC_print_all_errors
  • Improve debug-only messages of add/remove_roots and init_linux_data_start
  • Improve fork test logging in gctest
  • Improve logged messages about heap size and usage
  • Improve logging for Android differentiating messages by log level
  • Improve staticrootstest (add global data to library, add lib w/o GC_INIT)
  • Improve staticrootstest checks (tests)
  • Include "config.h" instead of "private/config.h" on HAVE_CONFIG_H
  • Include proper header file in 'tools' for configuration macros
  • Include pthread_np.h from pthread_stop_world.c on OpenBSD
  • Log error messages to stderr instead of stdout in tests
  • Make GC_generic_malloc_ignore_off_page() public
  • Make GC_mark_lock_holder variable static
  • Make GC_print_trace always thread-safe and remove 'lock' argument
  • Mark GC_started_thread_while_stopped() as GC_INNER
  • Minimize code duplication in GC_mark_and_push
  • Move 'include setjmp.h' from mach_dep.c to gc_priv.h
  • Move GC_OPENBSD_UTHREADS definition to private/gcconfig.h (OpenBSD)
  • Move GC_get_suspend/thr_restart_signal to misc.c for NaCl and OpenBSD
  • Move LOCK/UNLOCK from GC_unregister_disappearing_link_inner outer
  • Port BDWGC to Android/x86
  • Postpone the suspend signal in GC_dirty_init only if used to stop world
  • Prepend '#' symbol to GC number in logged messages
  • Prevent POSIX fork if mprotect_thread is started (Darwin)
  • Prevent abort on GC_err/warn_printf write failure
  • Prevent misleading AC_MSG_ERROR/AS_IF errors reported in configure.ac
  • Put gc_cpp symbols into 'boehmgc' namespace if GC_NAMESPACE defined
  • Recognize GC_DONT_GC macro in gc.h (causes GC_INIT to turn off GC)
  • Recognize GC_SIG_SUSPEND and GC_SIG_THR_RESTART tuning macros in gc.h
  • Redirect WRITE to __android_log_write if GC_ANDROID_LOG (Android)
  • Refine comment of GC_is_heap_ptr and GC_thread_is_registered in gc.h
  • Register dynamic libraries via dl_iterate_phdr on Android and OpenBSD
  • Remove DebugBreak on WriteFile failure (Win32)
  • Remove GC_BUILD definition from build scripts
  • Remove abort on open log failure from GC_write (Win32)
  • Remove configure.ac outdated revision number
  • Remove nested EXPECT in GC_core_finalized_malloc
  • Remove nested always-false ifdef for HPUX and FREEBSD
  • Remove redundant GC_err_printf before abort
  • Remove unused UTHREAD_SP_OFFSET macro (OpenBSD)
  • Rename subthread_create to subthreadcreate_test (Makefile)
  • Replace GC_COND_LOG_PRINTF calls with WARN for allocation failure messages
  • Replace GC_log/err_printf() followed by ABORT with ABORT_ARGn()
  • Replace GC_stats_log_printf with GC_DBG/INFOLOG_PRINTF
  • Replace SIG_SUSPEND/THR_RESTART macros to variables in pthread_stop_world
  • Replace Win32 GC_delete_gc_thread with GC_delete_gc_thread_no_free
  • Replace conditional GC_log_printf calls with GC_COND/VERBOSE_LOG_PRINTF
  • Replace sprintf with defensive snprintf
  • Replace var-args GC_noop with GC_noop6 (to eliminate Clang warning)
  • Simplify LOCK/UNLOCK macro definition for static code analysis tools
  • Specify GC_malloc result is unused in some tests
  • Specify GC_pthread_join result is unused in threadkey_test
  • Specify LT_INIT in configure.ac
  • Start of port to QNX
  • Support rthreads introduced in OpenBSD 5.2+
  • Suppress 'GC_dont_gc deprecated' warning in gc.h if GC_DONT_GC
  • Tag GC malloc routines with alloc_size attribute for Clang 3.2+
  • Test NO_WRAP_MARK_SOME macro to suppress WRAP_MARK_SOME-specific code
  • Turn off GC_LOOP_ON_ABORT functionality if GC compiled with NO_DEBUGGING
  • Turn on world-stop delay logging at debug level by default for Android
  • Use EXPECT in GC_COND/VERBOSE_LOG_PRINTF
  • Use GC_log_printf for logging instead of GC_[err_]printf
  • Use compiler TLS for Android NDK gcc/arm
  • Use memcpy (BCOPY) instead of strcpy (to suppress GCC warning)
  • Use pthread API to operate thread-local data on Linux if no compiler TLS
  • Workaround 'ELF_DATA/EM_ALPHA redefined' warning in Android linker.h
  • Workaround 'unresolved __tls_get_addr' error for Android NDK Clang
    Also, includes 7.2e, 7.2d, 7.2c, 7.2b changes

Distribution Tarball

gc-7.4.0.tar.gz