summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2023-03-15 21:35:38 +0300
committerIvan Maidanski <ivmai@mail.ru>2023-03-15 21:35:38 +0300
commitb1d1b1c193852f93d03db5711beab6773d3c8acf (patch)
tree4a34f01f52caceafbe0d7fbeb546bde2703af022 /ChangeLog
parent59f679d7227baf1a4a3c0bd8a3436ab4973d3b3e (diff)
downloadbdwgc-b1d1b1c193852f93d03db5711beab6773d3c8acf.tar.gz
Update ChangeLog file
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog64
1 files changed, 64 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 0c93bc69..fc267dc6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,13 +3,18 @@
* Add 'lib' prefix to build artifact names in Makefile.direct
* Add I_HOLD_LOCK assertion to scratch_alloc/recycle and their callers
+* Add Linux example to README.cmake
+* Add assertion about kind argument range in GC_register_describe_type_fn
* Add assertion to GC_maybe_gc that GC is not in progress
* Add assertion to ensure GC_unmapped_bytes cannot underflow
* Add assertions about GC_mark_state to alloc.c and mark.c
+* Add callback API to support ephemeron marking
* Add check-deps goal to Makefiles to build the tests but not execute them
* Add minimal testing of GC_allow_register_threads
* Add missing cast in GC_is_init_called (refactoring)
* Add missing undef GC_NO_THREAD_REDIRECTS in threaded tests
+* Add support of wasm32-wasi target
+* Add testing of remaining API functions (gctest and leaktest)
* Adjust comments in block_unmap_inner
* Adjust comments referring glibc version (documentation)
* Adjust indentation in C preprocessor directives (reformatting)
@@ -18,6 +23,7 @@
* Allow custom AO_SRC_DIR, CURSES, EXEEXT, HOSTCC/CFLAGS for Makefile.direct
* Allow disable USE_PROC_FOR_LIBRARIES even if malloc is redirected on Linux
* Allow mprotect-based incremental GC on AIX and for all Linux targets
+* Allow passing custom CC and CXX to Makefile.direct
* Allow passing custom CFLAGS[_EXTRA] to Makefile.direct
* Allow testing of retry-signals functionality
* Allow to build with forced WRAP_MARK_SOME
@@ -25,27 +31,37 @@
* Allow to skip heap expansion in GC_init
* Allow to unmap memory block right in GC cycle where block is freed
* Allow to use same signal for thread suspend and restart (default on E2K)
+* Always print error details message when gctest fails
* Always set only one bit past end in GC_set_hdr_marks
* Assert SET_HDR does not write to GC_all_nils
* Assert in GC_typed_mark_proc that GC lock is held by some collecting thread
* Assert that bm_table is already initialized when GC_double_descr used
* Assert that disappearing links are accessible during registration and GC
* Assert that size of element of a typed object is non-zero (refactoring)
+* Avoid code duplication between pthread_support.c and win32_threads.c
* Avoid code duplication in GC_make_array_descriptor (refactoring)
* Avoid code duplication regarding GC_push_roots in GC_mark_some_inner
* Avoid duplication of magic numbers in disclaim.c, weakmap.c (refactoring)
* Avoid unmap of memory allocated during GC init regardless of threshold
* Better document GC_generate_random_heap/valid_address API functions
* Better document GC_no_dls
+* Better document NO_DEBUGGING macro
+* Better document missing debugging version for aligned allocation routines
+* Better document preprocessor-related pointer checking routines in gc.h
+* Better separate libgc build- and use-time macro descriptions in README
* Build extra/gc.c in digimars.mak
* Build with GC_wcsdup support if wcslen exists
* Call GC_init_parallel only from GC_init (refactoring)
* Change GC_Thread_Rep in pthread_support.h to match that of win32_threads.c
* Change default GC_time_limit value from 50 to 15 ms
* Change default value of max_prior_attempts to 3
+* Change enable_threads default to off if threads are unsupported (CMake)
+* Change file extension of README.* to lower case in doc/platforms
* Change minimum heap growth to one block if requested explicitly
* Change p local variable to current_p in push_all/conditional_eager
* Change type of GC_collecting variable to match atomic operations over it
+* Check highest bit of word using SIGNB instead of cast to signed_word
+* Check out-of-memory and set in_thread_creation inside GC_new_thread
* Check pointer tag in all mark procedures (E2K)
* Collapse arch macro defines where possible (refactoring)
* Consistent naming of GC_thread local variables (refactoring)
@@ -55,33 +71,43 @@
* Define GC_GLIBC_PREREQ internal macro (refactoring)
* Define GC_get_parallel and GC_set_markers_count in single-threaded GC
* Define GC_save_regs_ret_val variable only if used on IA64 (refactoring)
+* Define GC_self_thread_inner to lookup GC_thread of current thread
* Define GC_thread type in a single place both for pthreads and Win32
* Define and use SIGNAL_BASED_STOP_WORLD macro internally (refactoring)
* Define internal macro NO_SEH_AVAILABLE where SEH is absent (refactoring)
* Define macros in gcconfig.h to use sigaction for SIGSEGV and SIGBUS
* Define marker_[b]sp only if needed (refactoring)
* Define op and nwords local variables consistently across typd_mlc.c
+* Define public GC_MALLOC_EXPLICITLY_TYPED_IGNORE_OFF_PAGE()
* Define public GC_[p]valloc() and redirect to them in leak_detector.h
* Disable H/W tag checking in mark procedures by default (E2K)
* Disable memory unmapping explicitly in gcconfig.h for Emscripten
+* Disallow explicit unregister of non-main thread if registered by DllMain
* Discard sections with pseudo-paths except heap in register_map_entries
* Do not compile pthread_start.c on Cygwin even if build shared libs (CMake)
* Do not compile pthread_stop_world.c on Darwin (CMake)
* Do not define GC_pthread_start/exit for Orbis and Sony PSP (refactoring)
* Do not define GETPAGESIZE on Win32 (refactoring)
* Do not define THREAD_SANITIZER if GC is built w/o threads support
+* Do not expose GC_nacl_gc_thread_self variable outside pthread_stop_world.c
* Do not free entry in GC_delete_gc_thread to match that on Win32
+* Do not hard-code page size for wasm32-wasi (refactoring)
* Do not include sched.h from pthread_start.c (refactoring)
* Do not invoke GC_approx_sp() repeatedly in GC_stopped_mark (refactoring)
+* Do not invoke finalizers during thread creation or destruction
+* Do not prohibit threaded builds with malloc redirection on non-Linux
* Do not put atomic_ops[_sysdeps].o to libgc.a in Makefile.direct
* Do not reference internal files in comments of public header files
* Do not set SIGBUS handler to catch write faults on Linux
* Do not treat warnings as errors by default in digimars.mak
* Do not wrap mark_some to catch faults if libraries registration is off
* Document GC_ENABLE_SUSPEND_THREAD better in configure
+* Document GC_print_free_list shortly in gc_inline.h
* Document GC_with_callee_saves_pushed better
* Document argument of GC_is_marked in gc_mark.h
+* Document macros in config.h not referring to README (configure)
* Document that GC_is_X API functions may return only zero or one
+* Document that GC_unregister_my_thread result value is dummy
* Eliminate 'boolean result used in bitwise op' cppcheck FP in GC_thr_init
* Eliminate 'checking if 1U<<12 is less than zero' cppcheck FP warning
* Eliminate 'n obtained from untrusted source' code defect FP in test_cpp
@@ -89,6 +115,8 @@
* Eliminate 'scope of p variable could be reduced' cppcheck warning in de.c
* Eliminate 'skipping config since static_assert is unknown' cppcheck FP
* Eliminate 'struct treenode member is never used' cppcheck warning
+* Eliminate data race FP reported in need_unreachable_finalization by TSan
+* Enable HBLKSIZE values up to 64K
* Enable prefetch loop in GC_mark_from on E2K
* Enable without_libatomic_ops for targets requiring atomic_ops.c (CMake)
* Ensure GC is initialized when GC_push_all_stacks() is called (refactoring)
@@ -99,33 +127,46 @@
* Ensure a collection occurs between adjacent heap expansions
* Ensure every test prints a message on success
* Export GC_apply_to_all_blocks() and GC_is_black_listed() as public API
+* Export setter and getter for pointer checking print procedures
* Fail threadkeytest on pthread_create error in main loop
* Fix digimars.mak to build 'all' by default
+* Fix double call of unregister_my_thread if thread registered by DllMain
* Force pthread_mutex_lock usage for GC lock if ThreadSanitizer
* Get libpthread.so '.text' mapping only for glibc prior to v2.34 (Linux)
* Group NEED_FIND_LIMIT definitions in gcconfig.h (refactoring)
+* Group all thread id fields together in GC_thread (refactoring)
* Group functions related to GC_calloc_explicitly_typed (refactoring)
* Include gc/gc[_cpp].h directly except for cord and tests (refactoring)
* Include gc_inline.h from gc_priv.h (refactoring)
* Include stdio.h and stdlib.h only from gc_priv.h (refactoring)
* Increase number of iterations in leak and middle tests
+* Increment allocated objects count after GC_memalign in gctest
* Initialize GC_retry_signals to true in GC_stop_init (refactoring)
+* Install ChangeLog among doc files
* Make abort message unique in write_fault_handler
* Make all functions static in msvc_dbg.c except for backtrace[_symbols]
+* Make links to mentioned platforms/README files in doc .md files
* Mention CMake-based build in README.md and README.QUICK
+* Mention all doc files in overview document
+* Minimize THREADS-specific code in GC_invoke_finalizers (refactoring)
* Move GC_NO_THREADS_DISCOVERY definition to gcconfig.h (refactoring)
* Move HAVE_CLOCK_GETTIME definition from gc_priv.h to gcconfig.h
* Move fields common between Concatenation and Function to Generic structure
* Move non-cord [pkg]include_HEADERS assignments to include.am (refactoring)
* Move non-license info from LICENSE file to README and vice versa
+* Move platform-dependent getspecific() call to a dedicated function
+* Move platform-specific README files to doc/platforms
* Move pthread_atfork() call to a separate function (refactoring)
* Move public header files to include/gc in source tree
+* Move stack-related fields out of GC_thread to GC_stack_context_t
* Name all tests consistently (refactoring)
* New API function (GC_get_hblk_size) to get HBLKSIZE value
+* New API function (GC_set_interrupt_finalizers) to break finalizer loop
* New CMake option to link with external libatomic_ops (system library)
* New GC_count_set_marks_in_hblk and GC_iterate_free_hblks API functions
* Output finalization information by GC_dump
* Pass ATOMIC_OPS_LIBS to tests using AO primitives directly (Automake)
+* Preserve doc folders structure on package install
* Prevent requesting blocks past max_heapsize in GC_collect_or_expand
* Prevent use of redirected posix_memalign in GC_haiku_get_mem
* Print in-use heap statistic on heap growth
@@ -133,8 +174,11 @@
* Print objs_in_block as zero for large objects in GC_print_block_list
* Print thread number on marker thread creation failure
* Print value of links in GC_dump_finalization_links
+* Put faq.html to codebase, update it and convert it to Markdown format
* Put gc_badalc/cpp.cpp instead of .cc ones in CMake script (MSVC/BCC/WCC)
* Really ignore bad GC_INITIAL/MAXIMUM_HEAP_SIZE values
+* Redirect GC_gcj_malloc_ignore_off_page to GC_gcj_malloc for small objects
+* Redirect GC_malloc_explicitly_typed_ignore_off_page for small objects
* Redirect aligned_alloc() and reallocarray() in leak_detector.h
* Reduce number of iterations in disclaim and cpp tests
* Reduce scope of local variables used for assertion checking in add_to_fl
@@ -142,22 +186,30 @@
* Refine WARN message in GC_proc_read_dirty regarding buffer size
* Refine column names output by GC_print_block_list
* Refine comments in code regarding DllMain-based threads registration
+* Refine gcinterface.md that the allocator belongs to SGI STL
* Relax required dependencies for atomicopstest (CMake)
* Remove -o option where not needed in Makefile.direct (refactoring)
+* Remove EXPORTED_FUNCTIONS linker flag for gctest (Emscripten)
* Remove GC_copyright symbol
* Remove GC_mark_threads variable (refactoring)
* Remove GC_min/max() and simplify heap bounds update in expand_hp_inner
* Remove GC_world_is_stopped variable (refactoring)
* Remove IF_IA64 macro in pthread_stop_world (refactoring)
+* Remove MAIN_THREAD flag in GC_thread (refactoring)
+* Remove OpenBSD uthreads (GC_OPENBSD_UTHREADS) support
* Remove STACK_GROWS_DOWN explicit definitions in gcconfig.h (refactoring)
* Remove Symbian makefile
* Remove USED_HEAP_SIZE macro (refactoring)
* Remove ancient OS2_MAKEFILE, PCR-Makefile, SMakefile.amiga
+* Remove code duplication in GC_free[_inner] (refactoring)
* Remove comment from gc_cpp.h about bugs in ancient compilers
* Remove doc.am, and move gc.man to base folder (refactoring)
* Remove duplicate 'called once' check in GC_init_lib_bounds (refactoring)
+* Remove duplicate documentation of GC_UNDERSCORE_STDCALL in configure
* Remove duplication of random numbers generator formula (refactoring)
* Remove extra parentheses in return statement (refactoring)
+* Remove first_thread static variable (refactoring)
+* Remove main_altstack group of static variables (refactoring)
* Remove main_pthread_id variable (refactoring)
* Remove msvc_dbg.h file (refactoring)
* Remove obsolete AC_PROG_LIBTOOL in configure.ac (refactoring)
@@ -168,12 +220,16 @@
* Remove specific DATASTART definition for ancient OpenBSD/m68k
* Remove thread_blocked field in GC_thread (refactoring)
* Remove trailing dot in WARN messages
+* Remove unneeded n_blocks local variable in malloc.c and reclaim.c
* Remove unreachable code in GC_lookup_pthread (refactoring)
+* Remove unused DCL_LOCK_STATE (refactoring)
+* Remove use of emscripten_scan_stack (refactoring)
* Remove volatile qualifier for GC_threads (pthreads)
* Rename GC_[inner_]start_routine to match that for Win32 (refactoring)
* Rename MAP_LEN internal macro to OBJ_MAP_LEN (refactoring)
* Rename README.QUICK to LICENSE and install it by default
* Rename README.rs6000 to README.aix
+* Rename doc folder to docs
* Rename stack[_size] in GC_Thread_Rep and GC_register_altstack (refactoring)
* Rename thread_args and GC_main_thread in win32_threads.c (refactoring)
* Reorder macro definitions for rare architectures in gcconfig.h
@@ -185,6 +241,8 @@
* Replace target names with '$@' in Makefile.direct (refactoring)
* Return free memory to OS explicitly before getting new memory from OS
* Roundup size passed to GC_expand_hp
+* Simplify MacOS-related code in GC_register_data_segments (refactoring)
+* Simplify code of GC_allochblk_nth (refactoring)
* Simplify code to define USE_x_SPECIFIC macros in thread_local_alloc.h
* Simplify expression to clear extra bits in add_ext_descriptor (refactoring)
* Simplify gcconfig code to define IRIX5 and ULTRIX on mips (refactoring)
@@ -194,6 +252,9 @@
* State explicitly that license is MIT-style
* Support 32-bit mode on E2K
* Support CFLAGS_EXTRA in rare build scripts (NT/WCC_MAKEFILE, digimars.mak)
+* Support GC_memalign with alignments greater than HBLKSIZE
+* Support Linux/sw_64 (sunway-linux)
+* Support QNX on arm[64] and x86[_64]
* Support ThreadSanitizer (GCC)
* Support client stop function properly in maybe_gc and collect_a_little
* Support disable_single_obj_compilation option in cmake script
@@ -205,15 +266,18 @@
* Treat GC_arrays as a part of internal memory when printing its size
* Treat warnings as errors in C++ code if configure --enable-werror
* Try find libatomic_ops installed by cmake if with_libatomic_ops (CMake)
+* Uniform use of GC_lookup_by_pthread in GC_pthread_join/detach (refactoring)
* Unify GC_Thread_Rep and thread id type in win32_threads.c (refactoring)
* Unify GC_[mark_]lock_holder variable definition (refactoring)
* Update next_random_no state using AO primitive
* Use AO primitive in GC_noop1 instead of no_sanitize attribute
* Use AO primitives in GC_RAND_NEXT instead of no_sanitize attribute
* Use EXPECT() in checks of MAIN_THREAD bit (refactoring)
+* Use GC_delete_thread instead of GC_delete_gc_thread_no_free (refactoring)
* Use GC_printf in cpptest consistently (refactoring)
* Use cast to void instead of the attribute to indicate unused arguments
* Use consistent variables naming in typd_mlc.c (refactoring)
+* Use distinct MACH_TYPE for WebAssembly (refactoring)
* Use inline keyword in GC_INLINE (bcc)
* Use modHBLKSZ where possible (refactoring)
* Use register_my_thread_inner to add initial thread in pthread_support.c