Skip to content

7.6.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@ivmai ivmai released this 16 May 18:41
· 3447 commits to master since this release

Changes

  • ABORT_ARGn log details at INFO level (Android)
  • Add 'pragma message' to gc.h to detect inconsistent WIN64/_WIN64 (MS VC)
  • Add API function to calculate total memory in use by all GC blocks
  • Add API function to set/modify GC log file descriptor (Unix)
  • Add alloc_size attribute to GC_generic_malloc
  • Add alt-stack registration support
  • Add assertion for GC_new_kind boolean arguments
  • Add assertion on lock status to GC_alloc_large and its callers
  • Add build scripts for VC 9 (Win32/64)
  • Add build system plumbing for building with -Werror
  • Add incremental GC support for Darwin/arm64
  • Add profiling callback events to indicate start/end of reclaim phase
  • Add support for enumerating the reachable objects in the heap
  • Add toggle-ref support (following Mono GC API)
  • Added instructions to README.md for building from git
  • Adjust code indentation of malloc/calloc/str[n]dup
  • Allow fork() automatic handling on Android with API level 21+
  • Allow specific TLS attributes for GC_thread_key
  • Allow thread local allocations from within pthread TLS destructors
  • Allow to force GC_dump_regularly set on at compilation
  • Altera NIOS2 support
  • Change 'cord' no-argument functions declaration style to ANSI C
  • Check DATASTART is less than DATAEND even assertions off
  • Check for execinfo.h by configure
  • Code refactoring of GC_push_finalizer/thread/typed_structures
  • Code refactoring regarding 'data start' definition for FreeBSD
  • Consistently set type of DATASTART/END to ptr_t (code refactoring)
  • Consistently use int[] type for '_end' symbol (code refactoring)
  • Consistently use outermost parentheses for DATASTART/END, STACKBOTTOM
  • Define GC_LINUX_THREADS, NO_EXECUTE_PERMISSION in configure for NaCl
  • Define ROUNDUP_PAGESIZE, ROUNDUP_GRANULE_SIZE macros (code refactoring)
  • Define public GC_GENERIC_OR_SPECIAL_MALLOC and GC_get_kind_and_size
  • Do no declare kernel_id field of GC_Thread_Rep for 64-bit Android
  • Do not allow SHORT_DBG_HDRS if KEEP_BACK_PTRS or MAKE_BACK_GRAPH
  • Do not warn of missing PT_GNU_RELRO segment when custom DSO filter used
  • Document GC_register_my_thread returned value
  • Dump the block information in CSV format
  • Eliminate redundant *flh check for null in GC_allocobj
  • Enable atomic-uncollectable in operator new in gc_cpp.h
  • Enable build with musl libc
  • Enable gc.h inclusion by client without implicit include windows.h (Win32)
  • Enable huge_test for Win64 (and LLP64 target)
  • Enable thread-local storage for Android Clang
  • Enable thread-local storage usage for GC_malloc/calloc_explicitly_typed
  • Export GC_push_all_eager, GC_push_finalizer_structures
  • Fix 'arg parameter might be clobbered by setjmp' compiler warning
  • Fix assertion in GC_mark_from for non-heap regions
  • Fix compilation for Android clang/arm with bfd linker
  • Fix integer shift undefined behavior in GC_init_explicit_typing
  • Fix missing new-line and redundant trailing dot in WARN messages
  • Fix STACKBOTTOM for Solaris 11/x86
  • Fix tag collision between ENABLE_DISCLAIM and KEEP_BACK_PTRS
  • Fix unchecked fork() result in gctest (Unix, Cygwin)
  • Fix user-defined signals drop by marker threads
  • Fix various typos in comments and documentation
  • FreeBSD/arm support improvement
  • GC_make_descriptor code refactoring (eliminate two local variables)
  • GC_malloc[_atomic] global and thread-local generalization with kind
  • GC_malloc_[atomic_]uncollectable generalization
  • GC_scratch_alloc code refactoring (and WARN message improvement)
  • Group all compact fields of GC_arrays to fit in single page
  • Handle load_segs overflow in register_dynlib_callback gracefully
  • Harmonize OSX/iOS configuration; enable compiling for iPhone simulator
  • Implement event callbacks for profiling (following Mono GC API)
  • Implement the finalization extension API
  • Implement thread suspend/resume API (Linux threads only)
  • Improve documentation for disappearing links in gc.h
  • Make heap growth more conservative after GC_gcollect_and_unmap call
  • Mark fo_head, finalize_now with a single GC_push_all call (refactoring)
  • Move MessageBox invocation code from GC_abort to a separate routine (Win32)
  • NaCl/arm initial support; NaCl runtime fixes for other CPUs
  • New macro (GC_ALWAYS_MULTITHREADED) to set multi-threaded mode implicitly
  • New macro (NO_WINMAIN_ENTRY) to prefer main() instead of WinMain in test
  • New macro (REDIRECT_MALLOC_IN_HEADER) to enable source-level redirection
  • Process all PT_LOAD segments before PT_GNU_RELRO segments (Glibc)
  • Re-implement GC_finalized_malloc using GC_malloc_kind
  • Refactoring of android_thread_kill/pthread_kill calls
  • Refactoring of GC_Xobjfreelist (use single array to keep free lists)
  • Refactoring of thread-local *_freelists (use single array of free lists)
  • Refine description in README how to build from source repository
  • Refine GC_free_space_divisor comment regarding its initial value
  • Reformat code of gc_cpp.cc/h
  • Remove 'opp' local variable in GC_malloc_X
  • Remove 'sig' argument of GC_suspend_handler_inner (code refactoring)
  • Remove code commented out by 'ifdef UNDEFINED'
  • Remove hb_large_block field (use 1 extra bit of hb_flags instead)
  • Remove obsolete BACKING_STORE_ALIGNMENT/DISPLACEMENT macros for Linux/IA64
  • Remove redundant casts in GC_generic_or_special_malloc and similar
  • Remove unsupported FreeBSD/ia64 case from gcconfig.h file
  • Remove unused GC_gcjdebugobjfreelist
  • Rename ATOMIC_UNCOLLECTABLE to GC_ATOMIC_UNCOLLECTABLE
  • Replace non-API occurrences of GC_word to word (code refactoring)
  • Return GC_UNIMPLEMENTED instead of abort in GC_get_stack_base (OS/2)
  • Show WoW64 warning message if running 32-bit on Win64 (enabled by macro)
  • Standalone profiling callback for threads suspend/resume
  • Support (add machine description for) TILE-Gx and TILEPro targets
  • Support build for Android 64-bit (arm64, mips64, x86_64)
  • Support FreeBSD/aarch64, FreeBSD/mips
  • Support iOS7 64-bit (AArch64) and iOS8+ 32/64-bit (Darwin)
  • Support MinGW build in scripts
  • Turn off sigsetjmp workaround for Android/x86 starting from NDK r8e
  • Use magic header on objects to improve disclaim_test
  • Workaround 'sa_sigaction member missing' compiler error (Android/x32)
  • Workaround 'unresolved __tls_get_addr' error for Android NDK Clang
  • Workaround a bug in winpthreads causing parallel marks deadlock (MinGW)
    Also, includes 7.4.4 changes

Distribution Tarball

gc-7.6.0.tar.gz

Backup of BDWGC mailing lists

This is not related to this release actually, just a convenient place to keep the archives of the BDWGC announcements and technical discussions (Dec 2002 - Apr 2017):