Age | Commit message (Collapse) | Author | Files | Lines |
|
== [8.2.2] 2022-08-26 ==
* 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)
|
|
== [8.2.0] 2021-09-29 ==
* 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)
* Remove unused STACK_GRAN macro definitions (code refactoring)
* Remove unused sparc_sunos4_mach_dep.s file
* Remove useless empty statements after block ones (refactoring)
* Remove weakobj_free_list variable in disclaim_weakmap_test (refactoring)
* Rename READ to PROC_READ in os_dep.c (code refactoring)
* Rename cord/cord test executable to de (CMake)
* Rename ext_descr to typed_ext_descr_t (code refactoring)
* Rename gc64.dll to gc.dll and gc[64]_dll.lib to gc.lib in NT_MAKEFILE
* Rename gc68060.lib to gc.lib, cord/cord68060.lib to cord.lib in SMakefile
* Rename make_as_lib option to enable_static in NT_MAKEFILE and WCC_MAKEFILE
* Rename nothreads option to disable_threads in NT_MAKEFILE
* Repeat run_one_test NTHREADS times by gctest if single-threaded
* Replace "msecs" with "ms" in all comments and messages
* Replace 'stack base' with 'stack bottom' in the documentation
* Replace SN_TARGET_ORBIS to PLATFORM_* and GC_NO_* macros
* Replace _M_AMD64 macro with _M_X64 (code refactoring)
* Replace find_limit_openbsd to find_limit_with_bound (OpenBSD 5.2+)
* Replace obsolete AC_HELP_STRING with AS_HELP_STRING (refactoring)
* Replace push_one calls with push_many_regs one for Win32 thread context
* Report memory region bounds and errno on GC_unmap/remap failure
* Report presence of process fork testing (gctest)
* Report time with a nanosecond precision where available
* Retry suspend/resume signals on all platforms by default
* Run tree and typed tests in child process (gctest)
* Set GC_collecting hint for GC_collect_a_little_inner calls (pthreads)
* Set name of GC marker threads
* Set so-version for installed shared libraries (CMake)
* Simplify logged message in scratch_recycle
* Simplify loops of collect_a_little/stopped_mark invoking mark_some
* Support -fvisibility=hidden option in CMake script
* Support CFLAGS_EXTRA to pass extra user-defined compiler flags (CMake)
* Support FreeBSD/RISC-V, Linux/arc, LoongArch, OpenBSD/powerpc64
* Support header files installation (CMake)
* Support most configure options in CMake script
* Suppress warnings in test_tinyfl() of gctest reported by Watcom C complier
* Take nanoseconds into account when updating full_gc_total_time
* Turn off C++ API by default, export it in gccpp library (CMake)
* Turn on automatic fork() handling by default on Android
* Update README.cmake regarding Unix, C++ and tests
* Update libgc.so version info to differentiate against v8.0.x
* Update the ASCII diagrams describing the tree structure for pointer lookups
* Update the documentation to match the current GC implementation
* Upgrade cmake_minimum_required(version) to 3.1
* Use CreateThread without GC_ prefix in gctest (code refactoring)
* Use KB/MB/GB abbreviations uniformly across entire documentation
* Use USE_MMAP_ANON when USE_MMAP is configured on OpenBSD
* Use a specific Emscripten allocator for Tiny
* Use atomic primitives for Sony PlayStation Portable 2 and PS4
* Use better precision Windows timers
* Use clock_gettime() instead of clock() on Cygwin and Linux
* Use compiler TLS on FreeBSD and NetBSD
* Use mprotect-based VDB on PowerPC and S390 (Linux)
* Use soft dirty bits on Linux (i386, powerpc, s390, x86_64)
* Workaround 'condition result<=0 is always false' cppcheck FP in get_maps
* Workaround 'push_regs configured incorrectly' error (GCC-11)
* Workaround 'same value in both branches of ternary operator' cppcheck FP
* Workaround various cppcheck false positives
|
|
== [8.0.6] 2021-09-28 ==
* 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)
|
|
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
Could not be committed due to merge conflict:
devel/py-traitlets/distinfo
The following distfiles were unfetchable (note: some may be only fetched
conditionally):
./devel/pvs/distinfo pvs-3.2-solaris.tgz
./devel/eclipse/distinfo eclipse-sourceBuild-srcIncluded-3.0.1.zip
|
|
|
|
== [8.0.4] 2019-03-02 ==
* Avoid a full GC when growing finalizer tables if in incremental mode
* Avoid potential race in hb_sz access between realloc and reclaim_block
* Avoid test.o rebuild on tests folder timestamp change (Makefile.direct)
* Avoid unexpected heap growth in gctest caused by GC_disable
* Ensure result of every variant of MS_TIME_DIFF has unsigned long type
* Fix 'duplicate symbol' error for tests using multiple static libs (OS X)
* Fix 'undefined reference to __data_start' linker error (Android/aarch64)
* Fix 'unexpected mark stack overflow' abort in push_all_stack
* Fix 'wrong __data_start/_end pair' error on Android
* Fix BSD_TIME variant of MS_TIME_DIFF for the case of a.tv_usec < b.tv_usec
* Fix GetThreadContext stale register values use if WoW64 (Win32)
* Fix invalid initializer of CLOCK_TYPE variables if BSD_TIME
* Fix thread_info() count argument value (OS X)
* Support de_win.c compilation by Makefile.direct (cord/de)
|
|
== [8.0.2] 2018-12-23 ==
* Abort with appropriate message if executable pages cannot be allocated
* Add initial testing of GC_enable/disable, MALLOC[_ATOMIC]_IGNORE_OFF_PAGE
* Add paths to filenames mentioned in the copyright section in README
* Add test using disclaim notifiers to implement a weak map
* Adjust #error messages format
* Allow to force executable pages allocation in gctest
* Avoid potential 'macro redefinition' errors for config.h macros
* Call real pthread_sigmask instead of its wrapper in start_mark_threads
* Check result of pthread_mutex_unlock in specific.c
* Default to a single-threaded build for Nintendo, Orbis, Sony PSP targets
* Default to non-executable memory allocation across all make scripts
* Define GC_ATOMIC_UNCOLLECTABLE and JAVA_FINALIZATION in all make scripts
* Do not prevent GC from looking at environment variables (BCC_MAKEFILE)
* Do not use 'ifndef AO_CLEAR' in mark, pthread_support and gctest
* Do not use spin locks if AO test-and-set is emulated (pthreads)
* Document HANDLE_FORK macro optional usage in Makefile.direct
* Document assertion in the setters that used to return old value
* Eliminate 'assigned value never used' compiler warning in test_cpp WinMain
* Eliminate 'casting signed to bigger unsigned int' CSA warning
* Eliminate 'different const qualifiers' MS VC warnings in cordbscs
* Eliminate 'function is never used' cppcheck warning for calloc/realloc
* Eliminate 'non-virtual destructor for class with inheritors' CSA warning
* Eliminate 'pointer targets differ in signedness' compiler warning (Win32)
* Eliminate 'struct member is never used' cppcheck warnings in os_dep
* Eliminate 'uninitialized var' cppcheck false positive in mach_dep, os_dep
* Eliminate 'unreferenced formal parameter' compiler warning in msvc_dbg
* Eliminate redundant check in backwards_height
* Fix 'USE_MUNMAP macro redefinition' error for NaCl
* Fix 'collecting from unknown thread' abort in leak-finding mode for Win32
* Fix 'mprotect remapping failed' abort on NetBSD with PaX enabled
* Fix 'too wide non-owner permissions are set for resource' code defect
* Fix GC_VSNPRINTF in cordprnt for DJGPP and MS VC for WinCE
* Fix GC_register_disclaim_proc for leak-finding mode
* Fix a deadlock in write_fault_handler if AO_or is emulated
* Fix comment typo in CMakeLists.txt
* Fix concurrent bitmap update in GC_dirty
* Fix deadlocks in write and suspend handlers if AO test-and-set is emulated
* Fix executable memory allocation in GC_unix_get_mem
* Fix hbp overflow in GC_install_counts
* Fix linkage with a system libatomic_ops shared library
* Fix lock assertion violation in get_index if GC_ALWAYS_MULTITHREADED
* Fix marking of finalizer closure object
* Fix marks and hb_n_marks consistency when disclaim returns true
* Fix memory allocation on GCF (Linux/x64)
* Fix missing curses.h in cord/de when compiling manually (MS VC, MinGW)
* Fix test_cpp assertion violation in find-leak mode
* Fix tests linkage with internal atomic_ops.o
* Fix unneeded end_stubborn_change/ptr_store_and_dirty in disclaim_test
* Guard against potential buffer overflow in CORD_next and CORD_pos_fetch
* New macro to suppress printing of leaked objects
* Pass -Wall -Wextra -Wpedantic to g++ if supported (configure)
* Prefix internal durango_get_mem symbol with 'GC_'
* Prevent double inclusion of javaxfc.h and private/specific.h
* Print relevant message in tests not appropriate for leak detection mode
* Reduce scope of local variables in GC_remove_all_threads_but_me
* Refine HIDE_POINTER documentation for the case of the leak-finding mode
* Refine documentation in gc_disclaim.h
* Remove extra USE_MMAP definition for Interix
* Remove redundant header double-inclusion checks in the private headers
* Remove strlen calls with a constant string argument in msvc_dbg
* Specify register_disclaim_proc and finalized_malloc argument as non-null
* Support UWP/arm64 target
* Test marking of finalizer closure object in disclaim_test
* Turn off leak detection mode explicitly in cord/de
* Turn off parallel marker, thread-local allocation if used AO ops emulated
* Turn on gcj functionality in BCC, DMC, NT, OS/2, WCC makefiles
* Turn on memory unmapping in BCC/DMC/NT/WCC makefiles and Makefile.direct
* Update NO_EXECUTE_PERMISSION documentation
* Update documentation about arm64 ABI in gcconfig.h
* Use AO_or in async_set_pht_entry_from_index if available
* Use GC_WORD_MAX macro across all C source files
* Use macro to operate on a flag residing in GC_stop_count
* Use standalone private macro to guard against ptr_t redefinition
* Workaround '#error' cppcheck messages in backgraph and private headers
* Workaround 'AST broken' syntax error reported by cppcheck in GC_mark_some
* Workaround 'GC_dump function is never used' cppcheck warning
* Workaround 'local address assignment to a global variable' CSA warning
* Workaround 'local variable end shadows outer symbol' cppcheck warnings
* Workaround 'local variable obj_displ shadows outer symbol' cppcheck warning
* Workaround 'nonlocal var will use ptr to local var' cppcheck false positive
* Workaround 'pointer addition with NULL pointer' cppcheck error in msvc_dbg
* Workaround 'potential non-terminated string' false positive in cordbscs
* Workaround 'value of _MAX_PATH is unknown' cppcheck warning
* Workaround cppcheck warnings regarding CLOCKS_PER_SEC, REDIRECT_REALLOC
|
|
Fix PaX mprotect on NetBSD using upstream patch by Ivan Maidanski
from https://github.com/ivmai/bdwgc/issues/255
|
|
== [8.0.0] 2018-09-05 ==
* Accept Android platform by both CMake and configure
* Access finalize_now atomically to avoid TSan warning without no-sanitize
* Acknowledge thread restart from suspend_handler (NetBSD)
* Add a sanity check that load_acquire and store_release are available
* Add AO primitives implementation to GC based on C11 atomic intrinsic
* Add assertion for suspend_ack_sem in start_world
* Add assertion to allocobj that live unmarked object cannot be reclaimed
* Add assertions about held lock when accessing all_bottom_indices
* Add assertions to ensure ADD_CALL_CHAIN is called holding the lock
* Add assertions to finalize and threads support for MANUAL_VDB needs
* Add basic calculation of the total full-collection time
* Add check that gc_cpp operator delete is called (test_cpp)
* Add debug logging to new_thread about GC_threads hash table collisions
* Add GC prefix to _MSVC_DBG_H macro
* Add initial RISC-V support
* Add Makefile target to run all tests without test-driver
* Add test_atomic_ops to perform minimal testing of used atomic primitives
* Add two-argument alloc_size attribute to calloc_explicitly_typed (GCC)
* Align IRIX/OSF1_THREADS definition in gc_config_macros.h with gcconfig.h
* Allocate non-executable memory by default (CMake)
* Allow compilation of PROC_VDB code on Linux host (GC_NO_SYS_FAULT_H)
* Allow configure --with-libatomic-ops=none to use GCC atomic intrinsics
* Allow custom N_LOCAL_ITERS and ENTRIES_TO_GET values
* Allow disabling of dynamic loading in CMake script and configure
* Allow disabling of main static data registration in CMake and configure
* Allow disabling of threads discovery in CMake script and configure
* Allow gc_assertions enabling in CMake script
* Allow gc_debug, redirect_malloc, large_config options in CMake script
* Allow GC_NETBSD_THREADS_WORKAROUND macro manual definition
* Allow mmap enabling in CMake script and configure
* Allow passing -D DEFAULT_VDB to CFLAGS
* Allow subthreadcreate_test to be compiled with zero NTHREADS
* Allow to turn on spin locking even if thread-local allocations are used
* Always include gc_atomic_ops.h unless threads are disabled
* Avoid 'Unexpected heap growth' in 64-bit multi-threaded gctest if n_tests=1
* Avoid duplication of code handling pthreads case in configure
* Avoid potential data race during apply_to_each_object(reset_back_edge)
* Avoid potential data race during GC_dump execution
* Avoid potential race between malloc_kind and mark_thread_local_fls_for
* Avoid potential race between realloc and clear_hdr_marks/reclaim_generic
* Avoid potential race in print_static_roots called by dyld_image_add/remove
* Avoid potential race in SET_MARK_BIT_EXIT_IF_SET if parallel marking
* Avoid potential race when accessing size_map table
* Avoid potential race when storing oh_back_ptr during parallel marking
* Avoid SIGSEGV during GC_INIT on some Android devices
* Build only shared libraries by default (configure)
* Change pointer arguments of push_all[_eager]/conditional API to void* type
* Change type of hb_sz field (of hblkhdr) from size_t to word
* Check consistency of descr, adjust, clear arguments of GC_new_kind
* Check that GC_WIN32_PTHREADS is not specified for Cygwin
* Check thread_local is initialized before accessing thread_key
* Collapse multiple BCOPY_EXISTS macro definitions
* Collapse multiple NT_*_MAKEFILE scripts into a single NT_MAKEFILE
* Collapse multiple page_was_dirty, remove_protection, read_dirty definitions
* Compile checksums.c only if --enable-checksums is given (configure)
* Consistently define WIN32_LEAN_AND_MEAN/NOSERVICE before include windows.h
* Convert .html files to Markdown format
* Convert code of .c files to valid C++ code
* Decide between memory unmapping and mprotect-based dirty bits at runtime
* Declare t local variable in the block where the variable is used
* Define ABORT() using _CrtDbgBreak (if available) on Windows host
* Define CLANG/GNUC_PREREQ macros to check gcc/clang minimum version
* Define DYNAMIC_LOADING for Darwin unless IGNORE_DYNAMIC_LOADING
* Define GC_ASSERT(x) as C assert(x) for external clients of gc_inline.h
* Define GC_PREFETCH_FOR_WRITE to __builtin_prefetch in gc_inline.h (GCC)
* Define GC_THREADS instead of GC_x_THREADS in Makefiles
* Define macro to specify the environment file name extension (Win32/WinCE)
* Define static resend_lost_signals(), restart_all() in pthread_stop_world
* Detect sigsetjmp() availability by configure
* Determine whether to use compiler TLS for kFreeBSD at compile time
* Do not call BCOPY and BZERO if size is zero
* Do not call sem_getvalue in stop_world if one thread exists
* Do not call set_handle_fork(1) in gctest if pthread_atfork not supported
* Do not compile pcr_interface.c and real_malloc.c except by PCR-Makefile
* Do not declare dl_iterate_phdr as weak for kFreeBSD
* Do not include windows.h when compiling gc_cpp.cc
* Do not install gc_allocator.h, gc_disclaim.h unless the features enabled
* Do not merge dynamic root with the existing static one in add_roots_inner
* Do not print n_rescuing_pages value if incremental collections disabled
* Do not push cpsr and frame pointer on Darwin/arm and Darwin/arm64
* Do not rebuild_root_index unless remove_root_at_pos is called
* Do not specify version info for test libraries (Automake)
* Do not use alternate thread library on Solaris
* Do not use asm in GC_pause
* Do not use PKG_CHECK_MODULES in configure
* Do not use system clock consistently if NO_CLOCK
* Do not use x86 asm in PUSH_CONTENTS_HDR for NaCl
* Document GC_BUILTIN_ATOMIC macro (and gc_atomic_ops private header file)
* Document STACK_NOT_SCANNED macro in gcconfig.h (Emscripten)
* Eliminate 'comparison is always false' code defect in get_maps
* Eliminate 'GC_DEBUG redefined' compiler warning in smashtest
* Eliminate 'potential unsafe sign check of a bitwise operation' code defect
* Enable alternative finalization interface (DISCLAIM) in all makefiles
* Enable compilation for Cygwin with MPROTECT_VDB
* Enable handle-fork and memory unmapping by default
* Enable mprotect-based incremental GC for Win64 (GCC)
* Expose API to control rate and max prior attempts of collect_a_little
* Expose API to control the minimum bytes allocated before a GC occurs
* Fix 'comparison of 255 with expr of type bool' error in gc_atomic_ops.h
* Fix 'doc' files installation folder
* Fix build of cord tests as C++ files (Makefile.direct)
* Fix comment typos in backgraph.c, de.c, gcconfig.h
* Fix delete operator redirection if gc_cpp is built as .dll (Cygwin, MinGW)
* Fix start_world not resuming all threads on Darwin
* Fix test_cpp failure in case GC_DEBUG is defined
* Group common defines for POSIX platforms in configure and CMake scripts
* Guard against USE_PTHREAD_LOCKS and USE_SPIN_LOCK are both defined
* Handle pthread restart signals loss if retry_signals
* Hide value stored to thread-specific entries for a test purpose
* Implement FindTopOfStack(0) for ARM and AArch64 (Darwin)
* Implement memory unmapping for Sony PS/3
* Imply configure --single-obj-compilation if --disable-static
* Include malloc.c in extra/gc.c after include gc_inline.h
* Increase MAX_HEAP_SECTS (10 times) for large-config
* Initial single-threaded support of Interix subsystem
* Initial support of Nintendo, Orbis, Sony PSP2, WinRT, Xbox One
* Initial support of TIZEN platform
* Install gc.3 man page instead of copying gc.man to doc folder (configure)
* Make extend_size_map() static (code refactoring)
* Make subthreadcreate test compilable even without libatomic_ops
* Match GC_FAST_MALLOC_GRANS formal and actual arguments where possible
* Move de_win compiled resource files to cord/tests
* Move pcr_interface.c, real_malloc.c to 'extra' folder
* New API function (GC_dump_named) to produce named dumps
* New API function (GC_is_incremental_mode)
* New API function (get_expl_freed_bytes_since_gc)
* New API function (get_size_map_at) to get content of size_map table
* New API to stop and start the GC world externally
* New API to turn on manual VDB at runtime
* New field (expl_freed_bytes_since_gc) in public prof_stats_s
* New macro ALWAYS_SMALL_CLEAR_STACK to avoid clearing large stack sections
* New public API (PTR_STORE_AND_DIRTY) to simplify store-and-dirty operation
* Pass CFLAGS_FOR_PIC value to CFLAGS in Makefile.direct
* Print time passed since GC initialization in GC_dump
* Public API (GC_deinit) to allow Win32 critical sections deletion
* Reduce probability of collision in threads hashtable for 64-bit targets
* Reduce the default MUNMAP_THRESHOLD value to 2 for Sony PS/3
* Refactoring of USE_MMAP/USE_MMAP_ANON pairs definition in gcconfig.h
* Reformat code and comments in gc_allocator.h
* Remove 'dist' target from Makefile.direct
* Remove a redundant check of __cplusplus in Symbian-specific .cpp files
* Remove Android-specific code in gcconfig.h for M68K
* Remove C++ WeakPointer and CleanUp API which lacks implementation
* Remove DGUX_THREADS macro which duplicates GC_DGUX386_THREADS (configure)
* Remove done_init static variable from fnlz_mlc.c
* Remove duplicate definition of ALIGNMENT macro for OpenBSD/arm
* Remove duplicated sample code in leak.md
* Remove EMX_MAKEFILE (add EMX support to Makefile.direct)
* Remove GC code fragment (which already merged) from README.Mac
* Remove GC_GNU_THREADS macro (HURD)
* Remove GENERAL_MALLOC internal macro
* Remove HIGH_BIT macro duplicating SIGNB
* Remove lint-specific code
* Remove Makefile KandRtest target (that supported K&R C compiler)
* Remove MIN_WORDS macro from gc_priv.h
* Remove multi-line macros (FOR_EACH_PRED, ITERATE_DL_HASHTBL_*, PUSH_OBJ)
* Remove name of optional arguments of operator new and new[] in gc_cpp.h
* Remove notes that K&R C compiler is unsupported
* Remove PUSH_CONTENTS_HDR multi-line macro
* Remove redundant check that clear_fl_marks argument is non-null
* Remove redundant THREADS macro checks in alloc.c and gc_priv.h
* Remove stubborn objects allocation code completely, remove stubborn.c
* Remove unnecessary argument casts in add_roots_inner calls
* Remove unnecessary type casts in n_set_marks
* Remove unused USE_GENERIC macro definition and description
* Remove version info in 'de' cord test application
* Replace GC_MALLOC(sizeof T) with GC_NEW(T) in tests
* Replace GC_NO_RETRY_SIGNALS environment variable with GC_RETRY_SIGNALS=0
* Replace some FIXME items with TODO ones
* Run command passed to if_not_there directly from Makefile.direct
* Same type casts for GC_PTR_STORE arguments regardless of GC_DEBUG
* Skip grungy_pages update when mark state invalid to speedup read_dirty
* Skip typed_test in gctest if NO_TYPED_TEST macro is defined
* Support configure --disable-thread-local-alloc option (similar for CMake)
* Support enable_checksums option in CMake script
* Support Haiku multi-threaded build by CMake
* Support threads for DragonFly in configure
* Turn on 'atomic uncollectable' functionality by default (CMake)
* Turn on GC assertions in NT_MAKEFILE for debug builds
* Turn on gcj, disclaim and java finalization by default (CMake)
* Turn on incremental collection in gctest also if DEFAULT_VDB or MANUAL_VDB
* Turn on incremental mode in cordtest and cord/de
* Turn on incremental mode in disclaim_test, test_cpp and staticroots test
* Turn on parallel marker by default for all multi-threaded builds
* Update GC compilation and usage notes for Win32
* Update shared libraries version info to differentiate against v7.6
* Update top_index entry pointer only when the entry is constructed fully
* Use __builtin_expect in SIZET_SAT_ADD macro
* Use __declspec(allocator) for malloc-like prototypes (MS VS 2015+)
* Use __int64 instead of 'long long' in LONG_MULT if appropriate
* Use __thread keyword for Android NDK r12b+ Clang (arm)
* Use atomic allocation for leafs in reverse_test (gctest)
* Use atomic load/store for the concurrently accessed variables in GC_lock
* Use C11 static_assert if available
* Use compiler atomic intrinsics by default if available (configure)
* Use EXPECT FALSE for mark_from code documented as executed rarely
* Use heap-allocated memory for local mark stack of non-marker thread
* Use HOST_ANDROID define instead of PLATFORM_ANDROID
* Use include gc.h with the angle brackets in the man page synopsis
* Use longjmp in fault_handler_openbsd if siglongjmp unavailable (OpenBSD)
* Use MARK_BIT_PER_GRANULE instead of MARK_BIT_PER_OBJ where appropriate
* Use noexcept specifier in gc_allocator and gc_cpp if C++11
* Use same macro (NTHREADS) across all tests to specify number of threads
* Use sigsetjmp() in setjmp_t tool if available
* Use thread-local allocations for all multi-threaded builds
* Use THREAD_EQUAL consistently to compare pthread_t values
* Workaround 'bad pointer arithmetic' false waring in check_annotated_obj
* Workaround Clang optimizer bug crashing clear_stack_inner on OS X 10.8
* Workaround Thread Sanitizer (TSan) false positive warnings
|
|
== [7.6.8] 2018-08-12 ==
* Add cpu, make_as_lib, nothreads options to NT_MAKEFILE
* Add NetBSD/aarch64 and initial RISC-V support
* Adjust formatting of configure help messages and config.h comments
* Avoid multiple 'getcontext failed' warnings if getcontext is broken
* Cleanup BCC Makefile (remove absolute GC paths, fix del cmd, update clean)
* Collapse multiple NT_*_MAKEFILE scripts into a single NT_MAKEFILE
* Do not call GC_dirty_inner unless GC_incremental
* Do not use NULL in gc_inline.h
* Eliminate 'cast between incompatible function types' compiler warning
* Eliminate 'comparing signed and unsigned values' compiler warnings (bcc)
* Eliminate 'condition is always true' cppcheck warning in init_gcj_malloc
* Eliminate 'declaration of var hides global declaration' compiler warning
* Eliminate 'language extension used' Clang warning in gc.h
* Eliminate 'possibly incorrect assignment in CORD_vsprintf' compiler warning
* Eliminate 'ptr arithmetic with NULL' cppcheck warning in alloc_mark_stack
* Eliminate 'scope of var can be reduced' cppcheck warning in pthread_join
* Eliminate 'switch statement contains no case label' compiler warning
* Eliminate 'variable might be uninitialized' warning in win32_start_inner
* Eliminate duplicate clear_mark_bit call when removing disappearing link
* Fast fail on invalid CPU parameter passed to NT_MAKEFILE
* Fix 'collecting from unknown thread' abort in leak-finding mode
* Fix 'pointer arithmetic with NULL' code defect in print_callers
* Fix Borland version in documentation to match that in BCC_MAKEFILE
* Fix comment about inv_sz computation in setup_header
* Fix comments style in configure.ac and Makefile.am
* Fix compilation by digimars.mak (DMC)
* Fix compilation by WCC makefile
* Fix compilation of darwin_stop_world for iOS 8+
* Fix cords for MANUAL_VDB
* Fix dependency on gc_cpp source in BCC_MAKEFILE and NT_MAKEFILE
* Fix GC_is_valid_displacement and GC_is_visible for non-small objects
* Fix gctest in leak-finding mode
* Fix infinite restarting of mark_some when a static root disappeared (Linux)
* Fix large object base computation in PUSH_CONTENTS() if MARK_BIT_PER_OBJ
* Fix mark stack overflow checking in push_selected
* Fix missing GC_dirty calls for GC-allocated objects used internally
* Fix missing GC_dirty invocation from debug_end_stubborn_change
* Fix MSWIN32 macro redefinition (WCC)
* Fix multi-threaded gctest for the case of NTHREADS is set to zero
* Fix new and delete operators definition for DigitalMars compiler
* Fix NT_MAKEFILE for VS 2017
* Fix potential null dereference in GC_CONS
* Fix register_dynamic_libraries on Windows 10
* Fix result computation in n_set_marks
* Fix return type in GC_set_warn_proc API documentation
* Fix tests for GC compiled with MANUAL_VDB
* Fix the build for Emscripten
* Fix typo in comment for CORD_ec_flush_buf prototype
* Fix typos in ChangeLog and generic_malloc
* Fix UNTESTED for multi-threaded API functions in gctest
* Fix VirtualQuery call in case of malloc failure (Win32)
* Install gc.3 man page instead of copying gc.man to doc folder (configure)
* Keep pointer to the start of previous entry in remove_specific_after_fork
* Move de_win compiled resource files to cord/tests
* Never return null by C++ GC allocators and gc_cpp operator new
* Perform thread_suspend in loop as it may be interrupted (Darwin)
* Really abort if failed to read /proc for library registration (Linux)
* Remove code duplication in gcj_malloc and malloc_explicitly_typed
* Remove duplicate local variable in reclaim_block
* Remove information how to send bugs from README.cords file
* Remove libatomic_ops license information
* Remove unused USE_GENERIC macro definition and description
* Suppress 'functions containing switch are not expanded inline' bcc warning
* Suppress 'non-member operator new/delete may not be inline' VC++ warning
* Turn on incremental collection in gctest also if MANUAL_VDB
* Update copyright information in alloc.c, gc.c/h and the documentation
* Update EXTRA_DIST in Makefile, Win32/64 docs after NT_*_MAKEFILE removal
* Update NT_MAKEFILE usage information in README files for Win32 and Win64
* Workaround 'class C does not have a copy constructor' cppcheck warning
* Workaround 'function nested_sp is never used' cppcheck style warning
* Workaround 'opposite expression on both sides of &' cppcheck style warning
* Workaround 'template-id not supported in this context' compiler error (WCC)
== [7.6.6] 2018-04-20 ==
* Define GC_FREEBSD_THREADS and GC_ADD_CALLER macros for kFreeBSD
* Eliminate 'boolean result used in bitwise operation' cppcheck warning
* Eliminate 'there is pointer arithmetic with NULL' cppcheck warning
* Explicitly unblock GC signals on GC initialization
* Fix 'scope of var can be reduced' cppcheck err in enqueue_all_finalizers
* Fix 'undefined reference to __builtin_unwind_init' linker error (ArmCC)
* Fix arguments delimiter in pcr_interface.c (PCR)
* Fix assertion violation in DllMain of win32_threads
* Fix comment for debug_generic_malloc_inner[_ignore_off_page]
* Fix data race during apply_to_each_object(reset_back_edge)
* Fix dbg_mlc.c/o file name in documentation
* Fix gctest with musl libc on s390x
* Fix include gc_gcj.h in thread_local_alloc.c
* Fix man section number (3)
* Fix missing GC_generic_malloc_words_small implementation in new_gc_alloc.h
* Fix missing new-line in ABORT_ARG<n> definition
* Fix missing SIGBUS handler setup for kFreeBSD
* Fix null dereference in print_callers on backtrace_symbols failure
* Fix null pointer dereference in get_private_path_and_zero_file (Symbian)
* Fix the collector hang when it is configured with --enable-gc-debug
* Fix thread_suspend fail for threads registered from key destructor (OS X)
* Fix type of local variables receiving result of PHT_HASH
* Fix typo in AIX macro name
* Fix typo in comment in specific.h
* Fix unbounded heap growth in case of intensive disappearing links usage
* Remove API symbols renaming in WCC_MAKEFILE
* Support Haiku/amd64 and Haiku/x86 hosts
* Support threads for DragonFly in configure
* Workaround 'address of auto-variable returned' cppcheck error
* Workaround gctest hang on kFreeBSD (if thread-local allocations are on)
|
|
Readd patch written by <jmcneill> to support for aarch64.
|
|
== [7.6.4] 2018-01-26 ==
* Add note of set_free_space_divisor, set_warn_proc ABI change after gc-7.1
* Change compiler invocation example in gc.man to use dynamic libgc
* Delete dont_ar_* build intermediate files on make clean (Makefile.direct)
* Do not declare dl_iterate_phdr as weak for DragonFly
* Fix 'cords' parallel build in Makefile.direct
* Fix 'undeclared identifier USRSTACK' compiler error on OpenBSD-6.2
* Fix error code in abort message if sem_wait failed in start_world (NetBSD)
* Fix GC allocation mutex in child after a fork
* Fix global operator delete definition for C++14 in gc_cpp
* Fix last_reclaimed..gc_no interval comparison to threshold in unmap_old
* Fix libgc version which was changed in linkage breaking way
* Fix missing EOLn output in threadlibs tool
* Fix threadlibs tool to output '-lpthread' for DragonFly
* Prevent DATASTART redefinition for NaCl
* Remove obsolete advice about linking with _DYNAMIC=0 (Linux)
|
|
In 7.6.2, upstream intentionally but badly-advised bumped their
library major version number. In 7.6.4, they'll undo that change.
Instead of bumping twice in pkgsrc, follow their lead and get the
change in now.
See https://github.com/ivmai/bdwgc/issues/197
Bump PKGREVISION.
|
|
== [7.6.2] 2017-12-23 ==
* Add assertion that no hb_n_marks underflow occurs
* Add minimal testing of GC_MALLOC_[ATOMIC_]WORDS and GC_CONS (gctest)
* Add minimal testing of GC_set_bit (gctest)
* Add more cases to huge_test to cover sizes close to word-type maximum
* Add testing of new[]/delete[] (test_cpp)
* Adjust AO_HAVE_x check to match AO_fetch_and_add primitive variant used
* Adjust code indentation of calloc_explicitly_typed
* Align local_mark_stack in help_marker explicitly
* Allow custom TRACE_ENTRIES value
* Allow gctest and thread_leak_test with zero NTHREADS
* Avoid data race in finalized_count (gctest)
* Code refactoring of divide-by-HBLKSIZE occurrences
* Code refactoring of huge_test
* Code refactoring of tests/subthread_create regarding AO add primitive
* Compile thread_local_alloc only if multi-threaded build (Makefile.am)
* Delete preprocessor output on make clean (Makefile.direct)
* Disable implicit multi-threaded mode for Win32 to avoid LOCK crash
* Do not disable parallel mark for WRAP_MARK_SOME
* Do not enable mprotect-based incremental mode if unmapping is on (gctest)
* Do not install documentation if configure --disable-docs (new option)
* Do not use tkill (Android)
* Document base and size of objects allocated by finalized_malloc
* Document configure 'syntax error' issue in README
* Eliminate 'address of local variable returned' static analyzer warning
* Eliminate 'array vs singleton' code defect in typed_test (gctest)
* Eliminate 'assigned value never used' CSA warning in min_bytes_allocd
* Eliminate 'boolean result used in bitwise op' cppcheck false warning
* Eliminate 'C-style pointer casting' cppcheck style warnings in test
* Eliminate 'checking if unsigned variable is <0' cppcheck style warning
* Eliminate 'class member var with name also defined in parent' warning
* Eliminate 'comparison is always false' static analyzer warning in finalize
* Eliminate 'Condition 0==datastart always false' cppcheck warning (dyn_load)
* Eliminate 'condition is always true' cppcheck style warning
* Eliminate 'constructor with 1 argument is not explicit' cppcheck warning
* Eliminate 'CORD_*printf is never used' cppcheck style warnings (cordtest)
* Eliminate 'dereference of null' CSA false warning in array_mark_proc
* Eliminate 'function result not used' code defect in GC_mark_local
* Eliminate 'GC_collecting is set but never used' code defect (Win32)
* Eliminate 'GC_record_fault is never used' cppcheck style warning
* Eliminate 'integer shift by a negative amount' code defect in finalize
* Eliminate 'label not used' cppcheck false warnings in GC_mark_X
* Eliminate 'memory leak' code defect for scratch-allocated memory
* Eliminate 'memory leak' code defect in remove_specific
* Eliminate 'non-null arg compared to null' warning in toggleref_add (GCC)
* Eliminate 'non-reentrant function strtok called' cppcheck warning (POSIX)
* Eliminate 'possible integer underflow' code defect (cord-de)
* Eliminate 'potential overflow' static analyzer warning in test
* Eliminate 'printf format specifies type void*' GCC pedantic warnings
* Eliminate 'scope of variable can be reduced' cppcheck warnings
* Eliminate 'suspicious pointer subtraction' cppcheck warning (gc_cpp)
* Eliminate 'this statement may fall through' GCC warnings
* Eliminate 'unnecessary comparison of static strings' cppcheck warning
* Eliminate 'unsafe vsprintf is deprecated' compiler warning
* Eliminate 'unused formal parameter' compiler warnings in C++ code (MS VC)
* Eliminate 'unused variable' compiler warning in remove_all_threads_but_me
* Eliminate 'use of vulnerable sprintf' code defect in de_win test (cord)
* Eliminate 'value exceeds maximum object size' GCC warning in huge_test
* Eliminate 'value of CLOCK_TYPE unknown' cppcheck info message
* Eliminate 'value of DATASTART2 unknown' cppcheck info messages
* Eliminate 'value of GC_PTHREAD_EXIT_ATTRIBUTE unknown' cppcheck messages
* Eliminate 'value of GC_RETURN_ADDR_PARENT unknown' cppcheck info messages
* Eliminate 'value of NEED_FIXUP_POINTER unknown' cppcheck info messages
* Eliminate 'write to memory that was const-qualified' code analyzer warning
* Eliminate all 'scope of variable can be reduced' cppcheck style warnings
* Eliminate CSA warning about incorrect cast applied to HBLK_OBJS
* Eliminate CSA warning about narrowing cast in CleanUp of test_cpp
* Eliminate CSA warning of non-virtual destructor in test_cpp base class
* Eliminate CSA warning of staticroot that can be a local variable (tests)
* Eliminate CSA warning of unmodified non-const static var (disclaim_test)
* Eliminate redundant local variable in register_finalizer
* Eliminate TSan (Thread Sanitizer) warnings in gctest
* Eliminate UBSan warning of overflow during descr subtraction in mark_from
* Eliminate unreachable PROC/DEFAULT_VDB GC_printf calls in gctest main()
* Eliminate unsigned fl_builder_count underflow in mark_thread
* Enable GC_is_tmp_root for all platforms
* Execute more single-threaded GC tests by CMake
* Expand tabs to spaces in de_win.rc (tests)
* Export GC_dump_finalization/regions()
* Export GC_is_tmp_root() and GC_print_trace[_inner]()
* Export GC_print_free_list()
* Fix '32-bit value shift followed by expansion to 64-bit' code defect
* Fix 'GC_written_pages never read' code defect (GWW_VDB)
* Fix 'label cannot be reached' static analyzer warning in disclaim_test
* Fix 'size of tv is unknown' error in brief_async_signal_safe_sleep (musl)
* Fix 'syntax error' reported by cppcheck for mach_dep
* Fix 'unknown type name GC_INNER' compilation error (FreeBSD)
* Fix 'variable assigned a value that is never used' cppcheck style warnings
* Fix 'void pointers in calculations: behavior undefined' cppcheck warning
* Fix assertion violation about disabled cancel in try_to_collect_inner
* Fix atomic_ops build in Makefile.direct for Solaris
* Fix Clang static analyzer warning about not found gc_priv.h in extra files
* Fix compilation error in get_main_stack_base (Emscripten)
* Fix compilation for winpthreads if HANDLE_FORK
* Fix compilation if configured with --enable-werror on OS X
* Fix cord/de build in Makefile.direct (Linux)
* Fix data race in a list referenced by A.aa (gctest)
* Fix data race in collectable_count (gctest)
* Fix data race in do_local_mark when comparing active_count to helper_count
* Fix data race in GC_suspend/resume_thread
* Fix data race in last_stop_count access (suspend_handler_inner)
* Fix data race in make_descriptor when setting explicit_typing_initialized
* Fix data race in mark_thread when updating mark_no
* Fix data race when getting object size in explicitly-typed allocators
* Fix deadlock in GC_suspend_thread
* Fix gctest failure for Darwin if CPPCHECK is defined
* Fix lack of barriers to synchronize memory for suspend_handler
* Fix marking of disclaim-reachable objects in the incremental mode
* Fix message of VDB implementation used if MPROTECT_VDB+GWW_VDB (gctest)
* Fix missing started_thread_while_stopped call from mark_some if GCC/Clang
* Fix null dereference in GC_stack_range_for if not DARWIN_DONT_PARSE_STACK
* Fix page calculation in checksums
* Fix parallel build in Makefile.direct
* Fix test_cpp and c++ parallel build in Makefile.direct
* Fix typo in comment of GC_mark_some
* Fix typos in cdescr.html and README.sgi
* Make GC_INIT optional for clients even if thread-local allocations enabled
* Match uclinux pattern in configure
* Move conditional GC_need_to_lock setting to gc_locks.h (refactoring)
* Move README.QUICK from DOC_FILES to OTHER_FILES in Makefile.direct
* New API function (GC_is_init_called) to check if BDWGC is initialized
* New target (check-cpp) in Makefile.direct
* Prevent abort in register_data_segments for Symbian and Emscripten
* Prevent multiple 'Caught ACCESS_VIOLATION in marker' per collection
* Print realloc_count value in gctest
* Put invariant name in quotes to make mark_state comments clearer
* Refine configure messages when checking for compiler option support
* Remove extraneous semicolons after AC_MSG_WARN (configure)
* Remove page_was_dirty and remove_protection duplicate definitions
* Remove unnecessary type casts of printf arguments to unsigned long
* Remove unused ALIGN_DOUBLE, USE_GENERIC_PUSH_REGS macros (TILE-Gx/Pro)
* Rename 'test' to 'check' target in Makefile.direct
* Replace deprecated rewind to fseek in cordxtra
* Report gcc/clang pedantic warnings (configure)
* Skip thread suspend/resume API testing for Tru64 (OSF1)
* Support AddressSanitizer (Clang/GCC) and MemorySanitizer (Clang)
* Support GC_init (and get_stack_base) from non-main thread on FreeBSD/NetBSD
* Suppress 'tainted string passed to vulnerable operation' false defects
* Suppress 'taking address of label non-standard' GCC/Clang pedantic warning
* Test GC initialization from non-main thread on FreeBSD and NetBSD
* Test GCJ object creation with length-based descriptor (gctest)
* Update comment in finalized_disclaim to match FINALIZER_CLOSURE_FLAG
* Update README regarding make cords with Makefile.direct
* Update README to use autogen.sh on build from the source repository
* Update shared libraries version info to differentiate against v7.4
* Use mprotect instead of mmap in GC_unmap() on Cygwin
* Use same style of include gc.h in documentation
* Workaround '!GC_page_size is always false' cppcheck style warning
* Workaround '#error' cppcheck error messages
* Workaround '32-bit value shift by >31 bits is undefined' cppcheck warnings
* Workaround 'array compared to 0', 'untrusted loop bound' false defects
* Workaround 'bad address arithmetic' static analysis tool false positive
* Workaround 'checking if unsigned value is negative' cppcheck warning
* Workaround 'checking unsigned value is negative' code defect in mark_from
* Workaround 'comparison of identical expressions' false code defects
* Workaround 'Condition 0!=GETENV() is always false' cppcheck style warnings
* Workaround 'condition is always false' cppcheck warning in get_next_stack
* Workaround 'condition is always true' cppcheck style warnings in GC_init
* Workaround 'function is never used' cppcheck style warnings
* Workaround 'insecure libc pseudo-random number generator used' code defect
* Workaround 'int shift by negative amount' false code defect in finalize
* Workaround 'local variable size too big' static analyzer warning
* Workaround 'memory leak: result' cppcheck false error (POSIX)
* Workaround 'null pointer dereference' false positive in push_next_marked
* Workaround 'obsolescent bcopy, bzero called' cppcheck warnings (POSIX)
* Workaround 'obsolescent usleep called' cppcheck warning (POSIX)
* Workaround 'obsolete function alloca() called' cppcheck warnings
* Workaround 'passing untyped NULL to variadic function' cppcheck warning
* Workaround 'pointer used before comparison to null' code defect (pthread)
* Workaround 'possible null pointer dereference' cppcheck warnings
* Workaround 'potential multiplication overflow' code defect in de_win (cord)
* Workaround 'redundant assignment of *result to itself' cppcheck warning
* Workaround 'resource leak' false positives in alloc_MS, bl/envfile_init
* Workaround 'same expression on both sides of ==' cppcheck style warning
* Workaround 'same expression on both sides of OR' cppcheck style warning
* Workaround 'struct member is never used' cppcheck style warnings
* Workaround 'tainted int used as loop bound' static analysis tool warning
* Workaround 'Uninitialized variable' cppcheck errors
* Workaround 'unused variable' cppcheck style warnings
* Workaround 'va_list used before va_start' cppcheck error in cord
* Workaround 'value of macro unknown' cppcheck info messages
* Workaround 'value of REDIRECT_MALLOC/FREE unknown' cppcheck info messages
* Workaround 'value of SIGBUS unknown' cppcheck info messages
* Workaround 'value of WINAPI unknown' cppcheck info messages
* Workaround 'variable hides enumerator with same name' cppcheck warnings
* Workaround 'variable reassigned before old value used' cppcheck warnings
* Workaround 'waiting while holding lock' code defect in stop_world (Unix)
* Workaround false 'uninitialized var use' code defect (initsecondarythread)
Also, includes 7.4.6 changes
|
|
Boehm-gc built on DragonFly, but it wasn't working properly. This is
one of the major reasons lang/guile20 doesn't build. Ths fix is proven
as it has been taken from DPorts.
|
|
Requested by David Shao in PR pkg/51414
from upstream commit:
https://github.com/ivmai/bdwgc/commit/6f4e123e34c2e20343a84b6fadd17bde0e7b354c
|
|
-------------------------------
== [7.6.0] 2016-08-02 ==
* 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).
|
|
== [7.4.4] 2016-05-25 ==
* Allow GC_FAST_MALLOC_GRANS() multiple use in a function.
* Also enable the TSX workaround for i386 (Linux).
* Avoid unstructured procfs on Solaris.
* Change cord/de main() declaration style from K-R to ANSI C.
* Change no-argument functions declaration style to ANSI C (cord).
* Do not include sigcontext.h and asm/sigcontext.h.
* Eliminate 'divide by zero' compiler warning in cordtest.
* Eliminate warning about 64-bit pointer-to-int cast (Win64/pthreads-w32).
* Eliminate warnings detected by Cppcheck in cord de[_win].
* Fix 'comparison of non-null parameter is always false' warning (Clang).
* Fix 'CORD_iter5 unused result' code defect in cordxtra.
* Fix 'GC_generic_malloc_inner_ignore_off_page not used' compiler warning.
* Fix 'implicit declaration of vsnprintf' GCC warning (if strict ANSI mode).
* Fix 'signed-to-bigger-unsigned value assignment' in GC_init_size_map.
* Fix 'signed-to-bigger-unsigned value assignment' warning for hb_map.
* Fix 'signed-to-bigger-unsigned value assignment' warning in GC_setpagesize.
* Fix 'statement unreachable' compiler warning in GC_mark_from.
* Fix 'statement unreachable' compiler warning in memalign.
* Fix 'unused label' compiler warning in cord/de.
* Fix 'value truncated' compiler warning in CORD_cat (MS VC).
* Fix 'variable unused' warning in GC_save_callers.
* Fix 'visibility attribute not supported' GCC warning (IBM AIX).
* Fix CMake warning about CMP0054 by unquoting instances of HOST.
* Fix Cygwin64 build.
* Fix GC_REALLOC to call GC_FREE if new size is zero and pointer is non-NULL.
* Fix Makefile.direct for Cygwin.
* Fix __alloc_size__ availability detection (Clang).
* Fix abort message in GC_move_long_link.
* Fix and code refactoring of lock elision workaround (Linux/x64).
* Fix assertion on mark_lock_holder for non-unique NUMERIC_THREAD_ID.
* Fix data race in GC_init_explicit_typing.
* Fix gc.mak regarding msvc_dbg and test (MSVC).
* Fix missing error handling of pthread_attr_init/getstacksize.
* Fix missing error handling of pthreads_mutex_init and cond_wait.
* Fix missing numeric casts in cord.
* Fix potential left shift overflows in finalize.c (64-bit targets).
* Fix pthreads-win32 name in comments and documentation.
* Fix setup_mark_lock missing prototype.
* Fix unchecked fcntl() result.
* Fix unchecked pointer dereference in check_ints (gctest).
* Fix unchecked pthread_join() result in threadkey_test.
* Fix unchecked sigdelset() result in pthread_support.
* Fix undefined PTRFREE/NORMAL in gc_inline.h.
* Prefix PREFETCH_FOR_WRITE with GC_ as used in gc_inline.h public header.
* Relax mark_mutex attribute needed to disable elision (Linux/x64).
* Remove (deprecate) TODO file.
* Remove code duplication in GC_realloc.
* Remove duplicate new-line in OUT_OF_MEMORY message (cord).
* Remove references to missing linux_threads.c from documentation.
* Revert "Move asm machine-dependent files to 'src' folder" (partly).
* Support Android API level 21.
* Update compiler options in gc.mak (Win32).
* Use mmap instead of sbrk (Hurd).
* Workaround 'comparison is always false' GCC warning in GC_FAST_MALLOC_GRANS.
* Workaround 'identical expr on both sides of bitwise op' warning.
* Workaround Linux NTPL lock elision bug.
* Workaround false warning about unreachable code path.
* Workaround invalid '_end' symbol on Android clang 3.5+.
Also, includes 7.2g changes.
|
|
Issues found with existing distfiles:
distfiles/eclipse-sourceBuild-srcIncluded-3.0.1.zip
distfiles/fortran-utils-1.1.tar.gz
distfiles/ivykis-0.39.tar.gz
distfiles/enum-1.11.tar.gz
distfiles/pvs-3.2-libraries.tgz
distfiles/pvs-3.2-linux.tgz
distfiles/pvs-3.2-solaris.tgz
distfiles/pvs-3.2-system.tgz
No changes made to these distinfo files.
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
|
|
caused problems with guile-2.
Bump PKGREVISION.
|
|
== [7.4.2] 2014-06-03 ==
* Add config option to use STGRTMIN-based signals for thread suspend/resume.
* Allow parallel mark to be enabled on powerpc-linux systems.
* Check for Fujitsu compiler in builtin_unwind logic (enable FX10/K-Computer).
* Fix 'Array subscript is above array bounds' GCC warning in GC_new_kind/proc.
* Fix 'attribute declaration must precede definition' warning (clang-3.1).
* Fix (enable) Cygwin-64 build.
* Fix GC_finalized_malloc failure on disclaim_test.
* Fix GC_sig_suspend initialization when non-constant SIGRTMIN used.
* Fix MS VC redefinition warning for functions declared with GC_ATTR_MALLOC.
* Fix TEXT() usage for concatenated strings in GC_CreateLogFile (Win32).
* Fix data roots registration for Android/x86 and NDK ARM 'gold' linker.
* Fix find stackbottom on BlueGene P/Q systems.
* Fix machdep .lo files path in configure (SPARC, IA-64).
* Fix ok_init assignment (missing cast) in GC_new_kind_inner.
* Fix typos in names in AUTHORS and ChangeLog files.
* Remove barrett_diagram file duplicated by tree.html.
* Remove non-existing DISCARD_WORDS from GC data structure ASCII diagram.
* Restore contribution information for ancient releases in ChangeLog.
Also, includes 7.2f changes.
|
|
== [7.4.0] 2013-11-17 ==
* 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.
== [7.3alpha2] 2012-05-11 ==
* Add 'const' qualifier to pointer argument of some API functions.
* Add GC_UNDERSCORE_STDCALL, UNICODE macro templates to configure (Win32).
* Add GC_get_thr_restart_signal, GC_thread_is_registered to GC API.
* Add GC_is_heap_ptr, GC_move_disappearing_link to GC API.
* Add SHORT_DBG_HDRS macro template to configure.
* Add Symbian port to mainline.
* Add TODO file.
* Add assertion ensuring proper alignment of 'pushed' GC symbols.
* Add assertion in GC_getspecific on qtid.
* Add assertion to GC_incremental_protection_needs, refine documentation.
* Add assertion to check GC_large_free_bytes by GC_finish_collection.
* Add configure option to compile all library .c files into single gc.o.
* Add cordtest to make check.
* Add disclaim callbacks for efficient finalization (ENABLE_DISCLAIM).
* Add finalization.html to 'doc' folder.
* Add javaxfc.h to the installation set of GC header files (configure).
* Add on-heap-resize event notification to API.
* Adjust GC_log_printf format specifiers (regarding signed/unsigned long).
* Adjust GC_requested_heapsize on GC_init if GC_INITIAL_HEAP_SIZE given.
* Allow GC_exclude_static_roots() region start to be unaligned.
* Allow Win32 DllMain chaining on the client side.
* Allow to exclude finalization support by GC_NO_FINALIZATION macro.
* Allow to get memory via Win32 VirtualAlloc (USE_WINALLOC) on Cygwin.
* Avoid unnecessary GC_find_limit invocation if GC_no_dls.
* Avoid use of deprecated GC_dont_gc and GC_stackbottom in gctest.
* Cast pointers to word (instead of unsigned long) in specific.h.
* Changed the order in autogen.sh so ltmain exists in time for automake.
* Declare privately and use handy GC_base_C() for constant object pointers.
* Define GC_DLL if DLL_EXPORT at GC build (for Cygwin/MinGW).
* Define GC_READ_ENV_FILE in configure for WinCE unless gc-debug is off.
* Do not compile backgraph.c unless configure '--enable-gc-debug'.
* Do not compile pthread_stop_world.c for Cygwin/Darwin (configure).
* Do not install ancient new_gc_alloc.h broken for modern STL (configure).
* Enable GC_MIN_MARKERS to set minimal number of pthread-based markers.
* Enable PARALLEL_MARK and THREAD_LOCAL_ALLOC for FreeBSD in configure.
* Enable parallel mark by default in configure (Darwin/Linux/Solaris/Win32).
* Export GC_is_marked, GC_clear/set_mark_bit (for mark-bit manipulation).
* Extend thread-related debug messages.
* Fix 'configure --enable-cplusplus' for Cygwin/MinGW.
* Fix DATASTART (and other minor improvements) for NaCl target.
* Fix GC_setspecific to prevent garbage collection inside.
* Fix compiler warning in cordtest.
* Fix minor warnings reported by GCC with '-pedantic' option.
* Fix static data roots registration on Android (if GC is shared).
* Implement GC_get_stack_base for Darwin for single-threaded mode.
* Improve GC_allochblk algorithm of block splitting when unmapping enabled.
* Improve GC_collect_or_expand algorithm for many finalizers registered case.
* In tests, print a message in case a test is a no-op.
* Instruct configure to hide internal libgc.so symbols if supported by GCC.
* Log amount of unmapped memory (if enabled) on marking-for-collection.
* Make __data_start a weak symbol to allow loading modules on mips.
* Move "cord" library tests to "cord/tests" folder.
* Move asm machine-dependent files to "src" folder.
* Move build tools sources to "tools" folder.
* Move cord_pos.h to public headers folder.
* Open log file in APPEND mode on Win32 (similar that on Unix/Cygwin).
* Optimize some functions by moving pthread_self calls out of LOCK section.
* Place only major per-release changes description to ChangeLog (this file).
* Prevent compiler warnings in GC_FindTopOfStack and GC_ports (Darwin).
* Recognize GC_LOG_TO_FILE_ALWAYS macro to log to 'gc.log' by default.
* Remove all auto-generated files from the repo.
* Remove binary icon file for de_win.
* Remove cordtest from "cord" library.
* Remove duplicate MacOS_Test_config.h file.
* Remove gc_amiga_redirects.h (included internally) from public headers.
* Remove obsolete Makefile.DLL (superseded by Cygwin/MinGW configure).
* Remove obsolete unused asm files for ALPHA, HPUX, SGI, RS6000, ULTRIX.
* Remove unsupported MMAP_STACKS (specific to Solaris threads).
* Remove unused ancient SILENT, __STDC__, NO_SIGNALS macros.
* Replace ARGSUSED comment-based annotation with GCC 'unused' attribute.
* Replace GC_ms_entry declaration with opaque definition for public API.
* Replace long GC_markers global variable with int GC_markers_m1.
* Replace pointer relational comparisons with non-pointer ones.
* Replace printf PRIxMAX specifier with '%p' for thread id debug output.
* Require autoconf 2.61 instead of v2.64.
* Simplify autogen.sh (use autoreconf).
* Split GC_abort with GC_on_abort and abort() invoked from ABORT.
* Support GC_ATTR_MALLOC for MS VisualStudio.
* Tag auxiliary malloc-like API functions with 'malloc' attribute.
* Tag deprecated variables in GC API.
* Tag must-be-non-null arguments of GC API functions.
* Turn on "extra" GCC warnings.
* Turn on unused-parameter checking for GCC.
* Update AUTHORS file.
* Use EXPECT for checking various 'initialized' boolean variables.
* Use USE_COMPILER_TLS on Cygwin.
* Use pthread_key for thread-local storage on FreeBSD.
* Use union of AO_t and word to favor strict-aliasing compiler optimization.
|
|
From browsing the changelog:
FreeBSD fixes, other portability changes, typo fixes, some bug fixes.
|
|
|
|
|
|
|
|
[7.2d]
2012-08-09 Ivan Maidanski <ivmai@mail.ru>
* doc/README: Change version to 7.2d (rev. D).
2012-08-05 Ivan Maidanski <ivmai@mail.ru>
* config.guess: Regenerate (by autoreconf -vif using autoconf-2.68,
automake-1.11.1 and libtool-2.4).
* config.sub: Likewise.
* m4/libtool.m4: Likewise.
2012-08-02 Ivan Maidanski <ivmai@mail.ru>
* misc.c (GC_clear_stack_inner): Use GC_approx_sp() instead of
"dummy[0]" set to "&dummy" value (that worked as expected only for
STACK_GROWS_DOWN case).
2012-08-02 Ivan Maidanski <ivmai@mail.ru>
* alloc.c (min_bytes_allocd, GC_stopped_mark): Use GC_approx_sp()
instead of "&dummy"; remove 'dummy' local variable.
* dyn_load.c (GC_cond_add_roots): Likewise.
* misc.c (GC_init): Likewise.
* os_dep.c (GC_get_stack_base, GC_get_main_stack_base): Likewise.
* pthread_stop_world.c (GC_suspend_handler_inner,
nacl_pre_syscall_hook, __nacl_suspend_thread_if_needed): Likewise.
* pthread_support.c (GC_thr_init): Likewise.
* ptr_chck.c (GC_on_stack): Likewise.
* win32_threads.c (GC_push_stack_for): Likewise.
* extra/setjmp_t.c (main): Define volatile 'sp' local variable, store
its address to it and use it instead of "&dummy"; remove 'dummy' local
variable.
* mach_dep.c (GC_with_callee_saves_pushed): Use volatile for 'dummy'
local variable.
* misc.c (GC_clear_stack_inner): Store address of volatile 'dummy'
local array (i.e. 'sp' value) to its first element (and use it in the
comparison of addresses) to prevent any harmful optimizations as C
officially disallows comparisons of pointers to different objects
(e.g., some Mac OS X clang releases might turn a conditional
expression that uses 'dummy' address into a constant); update comment.
* misc.c (GC_call_with_stack_base): Use "&base" instead of "&dummy"
(it is safe to use address of base here); remove dummy variable.
2012-08-01 Ivan Maidanski <ivmai@mail.ru>
* misc.c (GC_call_with_stack_base): Call GC_noop1 after fn()
invocation to prevent a tail-call optimization.
2012-07-21 Ivan Maidanski <ivmai@mail.ru>
* os_dep.c (GC_get_stack_base): Abort if pthread_stackseg_np fails
(if GC_OPENBSD_THREADS).
* pthread_stop_world.c (GC_suspend_all): Get correct stack_ptr by
calling pthread_stackseg_np (subtracting ss_size from ss_sp) instead
of retrieving it from OpenBSD pthread implementation-dependent context
(if GC_OPENBSD_THREADS); remove comment.
2012-06-17 Ivan Maidanski <ivmai@mail.ru>
* tests/initsecondarythread.c: Include "private/config.h" if
HAVE_CONFIG_H (mostly to have GC_WIN32_PTHREADS defined for
pthreads-w32 target).
* tests/thread_leak_test.c: Likewise.
* tests/threadkey_test.c: Likewise.
2012-06-16 Ivan Maidanski <ivmai@mail.ru>
* tests/test_cpp.cc (WinMain): Prevent SEGV in strtok() by checking
"cmd" WinMain argument for NULL (in that case "argc" local variable is
set to 0).
2012-06-16 Ivan Maidanski <ivmai@mail.ru>
* tests/test_cpp.cc (main): Call GC_set_all_interior_pointers(1)
before GC_INIT to ensure that the collector considers pointers to
object interiors as valid ones (such a pointer could emerge as
a result of a type cast to subclass in case of multiple inheritance);
add comment.
|
|
The results of GC_MALLOC_ATOMIC, GC_get_maps, and GC_scratch_alloc
are now properly checked, avoiding segmentation faults. Several
private symbols have been made externally visible to aid third
party software which unfortunately relies on them. Minor NetBSD
issues have been resolved.
|
|
7.2b:
An incorrect assertion in multi-threaded mode was fixed.
7.2:
This release adds many enhancements and fixes.
|
|
directives, before sending this patch to upstream.
|
|
|
|
Bump PKGREVISION, even if it only affects sparc64.
|
|
sparc_netbsd_mach_dep.s and mach_dep.c.
From PR 42634 by Bertrand Joel.
Bump PKGREVISION.
|
|
Suggested by Tobias Nygren in private talk.
No revision change.
|
|
Patch from enami@
Bump PKGREVISION.
|
|
Replace first hunk of patch-af with CONFIGURE_ARGS.
Remove next two hunks of patch-af installing some private headers.
This shouldn't be necessary in the 7.x versions. If it is, the author
is willing to help fix the underlying problems.
patch-aa and -ab will be included in the next upstream release.
Bump PKGREVISION.
|
|
* doc/gcinterface.html: Improve C++ interface documentation.
* allchblk.c (GC_allochblk): Check for overflow during size
rounding.
* malloc.c: (free replacement) Fix caller address space check.
* finalize.c (GC_grow_table): Dereference table in null-check.
* allchblk.c (add_to_fl): disable assertions with USE_MUNMAP,
and refine assertions to handle huge unmergable blocks.
* allchblk.c (GC_enough_large_bytes_left): No longer take
parameters; return free list index bound.
(GC_merge_unmapped): Don't access nexthdr until after null test.
(Fixes bug in 1/29/08 check-in.) (GC_allochblk): Calculate
when splitting is allowable only once here, not when considering each
block. (GC_allchblk_nth): Accept new may_split parameter.
Avoid some redundant tests for exact size matches.
* alloc.c (GC_should_collect): Cache min_bytes_allocd.
(GC_maybe_gc): Make locking assertion testable.
* mark_rts.c: Fix indentation.
* pthread_stop_world.c: Replace old GC_err_printf1 reference.
* misc.c (GC_init_inner): Assert !GC_need_to_lock only when
defined. (GC_call_with_stack_base): Add GC_API.
* os_dep.c (GC_get_stack_base): Add GC_API.
* win32_threads.c: (GC_register_my_thread, GC_unregister_my_thread):
Add GC_API.
* include/gc.h: Add GC_API annotations.
* include/private/gc_locks.h: Define UNCOND_LOCK etc. also for
PCR.
* include/private/gc_priv.h, mark_rts.c, typd_mlc.c:
Add GC_push_typed_structures() to push GC_ext_descriptors.
* allchblk.c (GC_merge_unmapped, GC_freehblk): Refuse to create
blocks large enough that their size, when interpreted as a signed
value, would be negative.
* include/private/gc_priv.h: Update MAX_ROOT_SETS
and LOG_PHT_ENTRIES to handle larger heaps.
* allchblk.c, alloc.c, include/private/gc_priv.h:
Track GC_bytes_dropped and use in GC triggering decisions.
* alloc.c (min_bytes_allocd): Weight atomic blocks less.
* alloc.c (GC_add_to_heap): Call GC_install_header(p) AFTER
adjusting p.
* alloc.c: Define GC_version instead of in version.h.
* version.h: Remove.
* include/gc_version.h: Move most of version.h here.
* include/gc.h, doc/README.macros: Add GC_NO_THREAD_REDIRECTS,
GC_NO_THREAD_DECLS, don't test explicitly for GC_SOLARIS_THREADS.
* alloc.c: Deal correctly with address wrapping for
GC_greatest_plausible_heap_addr and GC_least_plausible_heap_addr.
* finalize.c, include/gc.h (GC_register_disappearing_link,
GC_register_finalizer_inner): Improve out-of-memory handling.
* dyn_load.c (GC_dyld_image_add): Remove ifdef clause and use the macro
GC_GETSECTBYNAME instead.
* include/private/gc_priv.h: Define GC_GETSECTBYNAME according to the
architecture (Darwin).
* thread_local_alloc.c (GC_malloc_atomic, GC_gcj_malloc): Pass
granules, not bytes, to GC_FAST_MALLOC_GRANS.
* include/gc.h: Never include gc_local_alloc.h.
* malloc.c: Update GC_large_allocd_bytes on explicit deallocation.
* allchblk.c: Sanity check GC_max_large_allocd_bytes.
* include/extra/gc.h, include/extra/gc_cpp.h: New.
* include/include.am: Install gc.h and gc_cpp.h in $(prefix)/include
again.
* dbg_mlc.c: Use random() on all glibc systems.
* mach_dep.c (GC_with_callee_saves_pushed): Don't use getcontext() on
HURD. Add comment.
* pthread_stop_world.c (GC_suspend_handler, GC_stop_init): Accomodate
systems without SA_SIGINFO.
* alloc.c, backgraph.c, headers.c, include/private/gc_priv.h:
Maintain GC_our_memory and GC_n_memory.
* dbg_mlc.c (GC_print_smashed_obj): Improve message.
(GC_print_all_smashed_proc): Pass client object address instead of
base.
* dyn_load.c (sort_heap_sects): New. (GC_register_map_entries):
Register sections that are contiguous and merged with our heap.
* malloc.c, os_dep.c (GC_text_mapping): Check for just base name
of libraries.
* malloc.c (calloc): Check for special callers even with
USE_PROC_FOR_LIBRARIES. Move assertion. Add rudimentary
malloc/free tracing.
* misc.c: No longer call GC_init_lib_bounds explicitly.
* thread_local_alloc.c (GC_malloc, GC_malloc_atomic): Always
initialize on demand.
* alloc.c (GC_stopped_mark): Call GC_add_current_malloc_heap()
while world is still running.
* os_dep.c (GC_is_heap_base): Don't call GC_add_current_malloc_heap()
with world stopped.
* include/gc.h (GC_INIT for cygwin): Always call GC_add_roots.
* misc.c (GC_init/GC_init_inner): Perform all work in
GC_init_inner.
|
|
From Jaap Boender in PR pkg/38146.
|
|
Changes relative to 6.8 include, in no particular order:
- Change C code to require at least C89. Clean up code in various
other respects.
- Win64 port.
- Always count how much live data there is in the heap. Add more
robust heap expansion heuristic which relies on this.
- Remove old-style Solaris threads support and some other obsolete
platform support.
- Restructure mark code, hopefully resulting in some performance
improvements.
- Change the GC code to traffic mostly in either bytes or allocation
granules, not words, internally.
- Provide for fast inline allocation that requires less frequent client
recompilations. (Needs more testing.)
- Removed SILENT configuration macro and PRINTSTATS and GATHERSTATS
macros. Control is now via GC_PRINT_STATS and GC_PRINT_VERBOSE_STATS
encironment variables.
- Thread local allocation is now performed without needing to call
special allocation functions. The configuration macro
THREAD_LOCAL_ALLOC
continues to determine whether this is supported.
- Thread local allocation is supported on more platforms.
- Win32 threads code was rewritten and is hopefully more sane.
- Allocation routines now decide whether to lock dynamically, based on
whether a second thread has been created.
- Mostly untested support for a compiler write barrier.
- Use libatomic_ops for atomic operations.
- Limited support for malloc redirection with Linux threads (& NPTL ).
- Various bug fixes and some new platform support.
|
|
|
|
configure script since pkgsrc will set MACHINE_GNU_PLATFORM to
sparc-sun-solaris2 on a solaris/sparc machine. This gets this package closer
to building on solaris with the sunpro compiler.
|
|
Changes since 6.7:
- Added some support for Dragonfly BSD. (Thanks to Joerg Sonnenberger and
Thomas Klausner.)
- Improvements to the HP/UX section of configure.in.
(Thanks to Andreas Tobler.)
- GC_unix_get_mem could neglect to release the malloc lock on Irix, under
extremely unlikely circumstances. Thanks to Jean-Baptiste Nivois for
some careful code reading.
- Added support for kFreeBSD + glibc (Thanks to Petr Salinger)
- Fix more MacOS threads memory leaks (Thanks to Allan Hsu)
- Added initial Solaris/X86-64 support (Thanks to Rainer Orth)
- Applied a long-lost MINGW patch from Gerard Allan for malloc redirection
with threads. This one probably makes no sense for 7.0, and was not applied
there.
- The Solaris/SPARC definition of GC_INIT() in gc.h wasn't C++-compilable.
|
|
Since 6.6:
- Add "int" to Solaris "end" and "etext" declaration in gc.h. Declared
the symbols with underscores and as arrays, since that's what's actually
used. Perhaps this could all just be removed? (Thanks to John Bowman.)
- Fixed ARM GC_test_and_set code. (Thanks to Kazu Hirata and Paul Brook.)
- Added casts for assignments to hb_last_reclaimed, which truncate the
value. Added a cast to GC_adj_words_allocd. Use GetModuleHandleA
when retrieving a handle to kernel32.dll under win32. (Thanks to the
Visual Prolog developers.)
- Added Tandem S-Series support. (Thanks to Craig McDaniel. A modified
version of his patch was applied, and hence breakage is probably not
his fault.)
- Remove spurious gc:: qualifier for operator delete[] in gc_cpp.h.
(Thanks to Hanno Boeck.)
- Changed a test for LINUX in config_macros.h to one for __linux__.
- Fix ppc 64 test_and_set code by removing it. (Thanks to Christian
Thalinger.)
- Add prototypes for GC_finalizer_notifier and GC_thr_init. (Thanks to
David Ayers.)
- Use ld instead of nonexistent ldz instruction in Darwin FindTopOfStack.
(Thanks to Andreas Tobler.)
- Add support for Darwin/X86. (Thanks to Geoff Norton and the Mono
developers.)
- Merge in some recent gcc fixes. Add ppc64 asm code. (Thanks to Bryce
McKinley and other gcj developers.)
- Scan MEM_PRIVATE sections under Windows ME and predecessors.
- Interior pointers with some largish offsets into large objects could
be ignored, if GC_all_interior_pointers was set. (Oddly this worked
correctly for stack references if it was not set. Otherwise it failed
for both stack and heap references.) Thanks to Andrew McKinlay for the
critical test case.
- Integrated Tatsuya Bizenn's NETBSD threads support, with some
minimally tested changes.
- Added GC_strdup and friends to make leak detection work correctly
for strdup clients. (Thanks to Jon Moore.) Fixed the existing strdup
with malloc redirection to handle a null malloc return correctly.
- Fix Makefile.am, so it handles exe extensions under Cygwin correctly
for gctest.
|
|
Since 6.5
- Fix CPU count detection for Irix and FreeBSD. (Thanks to Dan Bonachea.)
- Integrate Dan Bonachea's patch for the IBM XLC compiler on Darwin.
- Integrated Andreas Tobler's FreeBSD/PowerPC patch.
- Don't access the GC thread structure from the restart handler. It's
unsafe, since the handler may run too late. (Thanks to Ben Maurer for
tracking this down.)
- Applied Christian Thalinger's patch to change comment syntax in
alpha_mach_dep.S.
- Added test for GC_no_dls in GC_dyld_image_add for DARWIN. (Thanks to
Juan Jose Garcia Ripoli).
- Use LINUX_STACKBOTTOM for Linux/SH and LINUX/ARM. (Thanks to Sugioka
Toshinobu and Christian Thalinger.)
- Rewrote GC_parse_map_entry. This assumed a fixed column layout of
/proc/self/maps on Linux. This ceased to be true about 2 years ago.
The old code is probably quite problemetic with -DREDIRECT_MALLOC. It
is also used by default for IA64, though I haven't seen actual failures
there.
- More consistently define HBLKSIZE to 4096 on 64 bit architectures with
4K pages. (Thanks to Andrew Haley.)
- With win32 threads, GC_stop_world needs to acquire GC_write_cs. (Thanks
to Ben Hutchings for the observation and patch.)
- Move up struct callinfo declaration to make gcc 4.0.2. happy.
|
|
is from Joerg Sonnenberger. Okayed by maintainer, recht.
|
|
|
|
|
|
- Merge gcconfig.h changes from gcc tree.
- Unconditionally include gc_priv.h in solaris_pthreads.c, win32_threads.h,
aix_irix_threads.c, and solaris_threads.c to get thread definitions.
- Start marker threads in GC_thr_init, so that they get started even
if no other threads are ever started. (Oddly enough, the parallel
collector worked correctly, though not well, with no helper threads.)
- Go ahead and split large blocks in GC_allochblk_nth if GC_dont_gc
is set. (Thanks to Alexander Petrossian.)
- GC_PRINT_BACK_HEIGHT would deadlock with thread support.
- Let in_progress_space in backgraph.s grow dynamically.
- Fix README.solaris2. The GC_thr_init() hack doesn't work anymore.
- Convert GC_finalizer_mem_freed to bytes in allchblk.c.
- Add missing declaration for GC_generic_malloc_words_small_inner.
Without it, s390x breaks. (Thanks to Ulrich Weigand.)
- Applied several MacOSX patches to support older tool chains.
(Thanks to Stefan Ring.)
- Bug fix for NetBSD/amd64. (Thanks to Marc Recht.) Add NetBSD/sh3
support. (Thanks to Uchiyama Yasushi.)
- Fixed an uninitialized variable in cordprnt.c. (Thanks to gcc for
providing the warning.)
- Eliminated some, but not all, gcc -Wall warnings.
- Changed some old style casts to reinterpret_cast in new_gc_alloc.h.
(Thanks to Dan Grayson.)
- GC_extend_size_map shouldn't adjust for GC_all_interior_pointers if
GC_DONT_ADD_BYTE_AT_END is set.
- Changed some (long) casts to (word) in preparation for win64.
(Thanks to Peter Colson.)
- Changed "int stack_size" declaration in pthread_support.c to use
size_t. (Only mattered with GC_ASSERTIONS enabled.)
- Added CRIS (etrax) support. (Thanks to Simon Posnjak and
Hans-Peter Nilsson.)
- Removed GC_IGNORE_FB frame buffer recognition, and replaced
it with a check that the mapping type is MEM_IMAGE.
In theory, this should work much better, but it is a high
risk change for win32. (Thanks to Ashley Bone for the crucial
experimental data behind this, and to Rutger Ovidus for
some further experiments.)
- Fixed print_block_list to print the correct kind number for
STUBBORN. (Thanks to Rutger Ovidus.)
- GC_allochblk_nth incremented GC_words_wasted by bytes rather than
words.
- Consider GC_words_wasted in GC_adj_words_allocd only if it is within
reason. (A hack to avoid some extremely unlikely scenarios in which
we manage to allocate only "wasted" space. 7.0 has a better fix.)
- Changed PowerPC GC_clear implementation to use lwsync instead of
eieio, since the documentation recommends against eieio, and
it seems to be incorrect if the preceding memory op is a load.
- Fixed print_block_list to print the correct kind number for
STUBBORN. (Thanks to Rutger Ovidus.)
- GC_allochblk_nth incremented GC_words_wasted by bytes rather than
words.
- Have configure.in generate an error if it is asked to support
pthreads, but doesn't know how to.
- Added Kazuhiro Inaoka's patch for Renesas M32R support.
- Have the GNU build mechanism link with -ldl. Rename THREADLIBS
to THREADDLLIBS to reflect this. (Thanks to Sven Verdoolaege.)
- Added Hannes Mehnert's patch for FreeBSD/SPARC support.
- Merged some FreeBSD specific patches to threadlibs.c and dyn_load.c.
(Thanks tp John Merryweather Cooper.)
- Define MPROTECT_VDB on MACOSX only if threads are being used, since the
dirty page tracking mechanism uses threads. (This avoids an undefined
reference to _GC_darwin_register_mach_handler_thread.)
- By popular demand, use __libc symbols only if we are built with
USE_LIBC_PRIVATES, which is off by default, and not otherwise documented.
- Ignore GC_enable_incremental() requests when KEEP_BACK_PTRS is set.
The GC itself will dirty lots of pages in this cases, probably making
it counterproductive on all platforms. And the DARWIN port crashes.
|
|
|
|
changes:
- Add a patch provided by UCHIYAMA Yasushi in PR 26180 to support NetBSD/sh3.
- Correctly define ELFSIZE for NetBSD. Fixes PR 26252 by Kouichirou Hiratsuka.
Bump BUILDLINK_DEPNDS to 6.3nb1 for the ELFSIZE fix.
|