Releases: ivmai/libatomic_ops
7.8.2
Changes
- Eliminate 'atomic_thread_fence is unsupported with tsan' gcc-11 warning
- Eliminate 'comparing signed/unsigned values' lcc warning in add_chunk_as
- Fix 'undefined reference to AO_pt_lock' if configure is using clang-16
- Fix 'undefined reference to __atomic_load/store/cas_16' Mingw64-gcc error
- Fix 'undefined reference' linker errors if shared build on OpenBSD (CMake)
- Fix get_chunk for case of mmap area is located before AO_initial_heap
- Fix typo in AO_HAVE_compare_and_swap_double name in atomic_ops_stack.h
- Fix typo in comment of run_one_test of test_stack
- Fix typos in comments of atomic_ops_malloc.c and atomic_ops_stack.c/h
- Update cmake minimum required version to 3.5
Build status
Travis CI build
AppVeyor CI build
Coveralls status (code coverage)
Distribution Tarball
libatomic_ops-7.8.2.tar.gz (see the Assets, md5: d07b3d8369d7f9efdca59f7501dd1117)
7.6.16
Changes
- Eliminate 'atomic_thread_fence is unsupported with tsan' gcc-11 warning
- Eliminate 'comparing signed/unsigned values' lcc warning in add_chunk_as
- Fix 'undefined reference to AO_pt_lock' if configure is using clang-16
- Fix 'undefined reference to __atomic_load/store/cas_16' Mingw64-gcc error
- Fix get_chunk for case of mmap area is located before AO_initial_heap
- Fix typo in AO_HAVE_compare_and_swap_double name in atomic_ops_stack.h
- Fix typos in comments of atomic_ops_malloc.c and atomic_ops_stack.c/h
Build status
Travis CI build
AppVeyor CI build
Coveralls status (code coverage)
Distribution Tarball
libatomic_ops-7.6.16.tar.gz (see the Assets, md5: 27a2aef8ee847703219192554e205fbe)
7.4.20
Changes
- Eliminate 'comparing signed/unsigned values' lcc warning in add_chunk_as
- Fix get_chunk for case of mmap area is located before AO_initial_heap
- Fix typo in AO_HAVE_compare_and_swap_double name in atomic_ops_stack.h
- Fix typos in comments of atomic_ops_malloc.c and atomic_ops_stack.c/h
Build status
Travis CI build
AppVeyor CI build
Distribution Tarball
libatomic_ops-7.4.20.tar.gz (see the Assets, md5: 20a8d6d7f2ee6f0b5246bf3ae8f0f259)
7.2l
Changes
- Fix get_chunk for case of mmap area is located before AO_initial_heap
- Fix typo in AO_HAVE_compare_and_swap_double name in atomic_ops_stack.h
- Fix typos in comments of atomic_ops_malloc.c and atomic_ops_stack.c/h
Build status
Travis CI build
AppVeyor CI build
Distribution Tarball
libatomic_ops-7.2l.tar.gz (see the Assets, md5: 539b859fa7dc3905e4b44484ea93b15d)
7.8.0
Changes
- Add AUTHORS file to the list of installed documentation
- Add goal to Makefile.msft to build all tests but not execute them
- Allocate marks[] dynamically and report all found errors in test_stack
- Always export stack_init/push_release/pop_acquire from atomic_ops_gpl
- Always use 'mfence' for nop_full if target CPU supports SSE2 (MS VC/x86)
- Avoid 'cast increases required alignment' warnings in atomic_ops_malloc.c
- Avoid breaking strict-aliasing rules in test_malloc and test_stack
- Avoid code duplication in AO_stack_push_explicit_aux_release
- Better document test_stack internals
- Build atomic_ops.lib by Makefile.msft (MS VC)
- Build test object and executable files in tests folder (MS VC)
- Define AO_stack_t uniformly
- Define double_compare_and_swap_full if MS VS 2017+ (x86)
- Do not expose AO_REAL_HEAD/NEXT_PTR implementation in header by default
- Document config macros in README_win32 and remove them from configure
- Eliminate 'function is never used' cppcheck warning for AO_stack_init
- Enforce most strict level of compiler warnings (MS VC)
- Ensure atomic_ops.c global symbols are always declared as extern 'C'
- Explicitly outline symbols exported in AO shared libraries with AO_API
- Hide AO_free_list symbol
- Implement AO_stack_init using memset
- Implement AO_test_and_set using InterlockedExchange8 (MS VC)
- Implement and/or/xor for AO_t, short and int types (MS VC)
- Implement nf/acq/rel variants of primitives on Windows RT (MS VC)
- Mention MIT near core library licensing terms in LICENSE file
- Move all README_*.txt and license files to the top folder
- Move all non-double intrinsic-based primitives to msftc/common32_defs.h
- Move gcc-4/alpha workaround outside AO_stack_pop_explicit_aux_acquire
- New AO_stack_is_lock_free API function
- New configure option (--disable-gpl) to skip building of libatomic_ops_gpl
- Print message of almost-lock-free implementation in test_stack if used
- Refine LICENSE and README about code parts covered by MIT and GPL-2.0
- Refine copyright terms in GPL source files
- Reformat atomic_ops_stack.c/h files
- Remove 'lib' prefix for atomic_ops_gpl.lib in Makefile.msft
- Remove redundant assert in AO_stack_pop_explicit_aux_acquire
- Remove redundant cast to AO_t in lock-free AO_stack_pop_acquire
- Rename LICENSING.txt to LICENSE file
- Rename VERBOSE macro to VERBOSE_STACK in test_stack (refactoring)
- Rename fetch_and_add to fetch_then_add in test_stack (refactoring)
- Replace obsolete AC_HELP_STRING with AS_HELP_STRING in configure
- Replace obsolete AC_TRY_COMPILE with AC_COMPILE_IFELSE in configure
- Split test_stack main into several functions (refactoring)
- Support Elbrus 2000 (gcc/e2k)
- Support build with CMake
- Support double-wide CAS on armv7+ and UWP/arm64 (MS VC)
- Support test_atomic with MS build w/o the need to run GNU make first
- Use GCC atomic intrinsics for SPARC
- Use builtin_expect in AO_stack_push_explicit_aux_release
Build status
Travis CI build
AppVeyor CI build
Coveralls status (code coverage)
Distribution Tarball
libatomic_ops-7.8.0.tar.gz (see the Assets, md5: a7e51e8041c3e60c298c037b2789c3fa)
7.6.14
Changes
- Add note to README that AO malloc code has same license as AO stack
- Adjust/reformat content of LICENSING.txt
- Avoid AO_stack_t to cross CPU cache line boundary
- Do not assume 'ordered except earlier write' for UWP/arm64
- Do not name GCC intrinsics as C11 ones in ChangeLog and configure
- Eliminate '-pedantic is not option that controls warnings' GCC-6.3 message
- Ensure result of AO_test_and_set is always AO_TS_CLEAR or AO_TS_SET
- Fix 'AO_malloc redefinition' MS VC warning caused by attributes mismatch
- Fix 'use of undeclared SIG_BLOCK' Clang error if -std=c89 on Cygwin
- Fix AO_compare_and_swap_full asm code for clang on sparc
- Fix a typo in comment of AO_stack_push_explicit_aux_release
- Fix code indentation in main() of test_stack.c
- Refine AO_UNIPROCESSOR macro description in configure
- Remove outdated comment about unsupported Win64 in atomic_ops_stack.h
- Repeat black list check on CAS fail in stack_push_explicit_aux_release
Build status
Travis CI build
AppVeyor CI build
Coveralls status (code coverage)
Distribution Tarball
libatomic_ops-7.6.14.tar.gz (see the Assets, md5: ee8251f5091b7938d18be4dda843a515)
7.4.18
Changes
- Avoid AO_stack_t to cross CPU cache line boundary
- Do not assume 'ordered except earlier write' for UWP/arm64
- Ensure result of AO_test_and_set is always AO_TS_CLEAR or AO_TS_SET
- Fix 'use of undeclared SIG_BLOCK' Clang error if -std=c89 on Cygwin
- Fix a typo in comment of AO_stack_push_explicit_aux_release
- Fix code indentation in main of test_stack.c
- Remove outdated comment about unsupported Win64 in atomic_ops_stack.h
- Repeat black list check on CAS fail in stack_push_explicit_aux_release
Build status
Travis CI build
AppVeyor CI build
Distribution Tarball
libatomic_ops-7.4.18.tar.gz (see the Assets, md5: 8664722bcb476f92c070fc69fa32392f)
7.2k
Changes
- Avoid AO_stack_t to cross CPU cache line boundary
- Fix a typo in comment of AO_stack_push_explicit_aux_release
- Fix code indentation in main of test_stack.c
- Remove outdated comment about unsupported Win64 in atomic_ops_stack.h
- Repeat black list check on CAS fail in stack_push_explicit_aux_release
Build status
Travis CI build
AppVeyor CI build
Distribution Tarball
libatomic_ops-7.2k.tar.gz (see the Assets, md5: eb5e5bae1edf4466961e30d91ec3e617)
7.6.12
Changes
- Allow to generalize bool-CAS for sparc (gcc)
- Declare argument of AO_load_next with const in atomic_ops_stack
- Describe double_compare_and_swap operation in README_details
- Document CAS operations better in README_details
- Fix gcc/sunc x86 AO_compare_double_and_swap_double missing side effect
- Fix library name in README_details
- Fix link fail caused by missing GCC char/short atomic primitives on riscv64
- Fix size of local variable passed to cas[x] (gcc/sparc)
- Implement fetch-CAS for sparc (gcc)
- Refactor gcc x86 memory constraints
- Refine and reformat description of size prefix in README_details
- Remove outdated notes in README_details
- Replace x86 setz instruction by asm flag output operand (gcc)
- Support MSYS host (configure)
- Turn off compare_double_and_swap_double_full PIC hack for GCC 5+ (x86)
- Update README_win32 to match Makefile.msft
- Use GCC atomic intrinsics for s390x (clang 8.0+ and gcc 5.4+)
- Use __alignof__ instead of sizeof in atomic variable alignment assertions
- Workaround assertion violation in AO_load/store on m68k
Build status
Travis CI build
AppVeyor CI build
Coveralls status (code coverage)
Distribution Tarball
libatomic_ops-7.6.12.tar.gz (see the Assets, md5: 0b0b88da4bde5dd770daea3146e78359)
7.4.16
Changes
- Fix gcc/sunc x86 AO_compare_double_and_swap_double missing side effect
- Fix library name in README_details
- Fix size of local variable passed to cas[x] (gcc/sparc)
- Workaround assertion violation in AO_load/store on m68k
Build status
Travis CI build
AppVeyor CI build
Distribution Tarball
libatomic_ops-7.4.16.tar.gz (see the Assets above, md5: f75f3c5487e0a02f5fd43dbe20e4803c)