diff --git a/.gitignore b/.gitignore index 018c5ff..16f5f72 100644 --- a/.gitignore +++ b/.gitignore @@ -72,3 +72,7 @@ version.old wilted/ mulle-template-composer-* mulle-markdown-preview-*.html +coverage*.html +*.gcda +*.gcno +cola/wilted/ diff --git a/.mulle/etc/env/environment-host-ci-prerelease.sh b/.mulle/etc/env/environment-host-ci-prerelease.sh index 22e3425..9cb0fdf 100644 --- a/.mulle/etc/env/environment-host-ci-prerelease.sh +++ b/.mulle/etc/env/environment-host-ci-prerelease.sh @@ -70,21 +70,3 @@ export MULLE__LINKEDLIST_URL="https://github.com/mulle-concurrent/mulle-linkedli export MULLE__LINKEDLIST_BRANCH="prerelease" -# -# mulle-c11 nodetype: ${MULLE_C11_NODETYPE:-tar} -# -export MULLE_C11_NODETYPE="git" - - -# -# mulle-c11 url: ${MULLE_C11_URL:-https://github.com/mulle-c/mulle-c11/archive/${MULLE_TAG}.tar.gz} -# -export MULLE_C11_URL="https://github.com/mulle-c/mulle-c11.git" - - -# -# mulle-c11 branch: ${MULLE_C11_BRANCH} -# -export MULLE_C11_BRANCH="prerelease" - - diff --git a/.mulle/share/env/environment-extension.sh b/.mulle/share/env/environment-extension.sh index 026d960..d19587c 100644 --- a/.mulle/share/env/environment-extension.sh +++ b/.mulle/share/env/environment-extension.sh @@ -22,6 +22,12 @@ export MULLE_MATCH_PATH=".mulle/etc/sourcetree:${PROJECT_SOURCE_DIR}:CMakeLists. export MULLE_MATCH_IGNORE_PATH="" +# +# mulle-c and mulle-objc projects have an actual latest tag, so don't resolve +# +export MULLE_SOURCETREE_RESOLVE_TAG="NO" + + # # tell mulle-sde to keep files protected from read/write changes # diff --git a/.mulle/share/env/motd b/.mulle/share/env/motd new file mode 100644 index 0000000..4e223cb --- /dev/null +++ b/.mulle/share/env/motd @@ -0,0 +1,2 @@ +Run external commands with mudo +Project is ready to craft diff --git a/.mulle/share/match/match.d/86-header--project-only-headers b/.mulle/share/match/match.d/86-header--project-only-headers new file mode 100644 index 0000000..dcd99de --- /dev/null +++ b/.mulle/share/match/match.d/86-header--project-only-headers @@ -0,0 +1,6 @@ +# This is the fallback if patterns file with smaller numbers fail. +# These are project headers, that are not included anywhere so far +# and not even exported as private! + +*.inc + diff --git a/.mulle/share/sde/version/mulle-c/c b/.mulle/share/sde/version/mulle-c/c index 2a0970c..c5523bd 100644 --- a/.mulle/share/sde/version/mulle-c/c +++ b/.mulle/share/sde/version/mulle-c/c @@ -1 +1 @@ -0.16.1 +0.17.0 diff --git a/.mulle/share/sde/version/mulle-c/c-demo b/.mulle/share/sde/version/mulle-c/c-demo index a803cc2..c5523bd 100644 --- a/.mulle/share/sde/version/mulle-c/c-demo +++ b/.mulle/share/sde/version/mulle-c/c-demo @@ -1 +1 @@ -0.14.0 +0.17.0 diff --git a/.mulle/share/sde/version/mulle-sde/c-cmake b/.mulle/share/sde/version/mulle-sde/c-cmake index 4e8f395..1b58cc1 100644 --- a/.mulle/share/sde/version/mulle-sde/c-cmake +++ b/.mulle/share/sde/version/mulle-sde/c-cmake @@ -1 +1 @@ -0.26.0 +0.27.0 diff --git a/.mulle/share/sde/version/mulle-sde/c-demo b/.mulle/share/sde/version/mulle-sde/c-demo index 2157409..1b58cc1 100644 --- a/.mulle/share/sde/version/mulle-sde/c-demo +++ b/.mulle/share/sde/version/mulle-sde/c-demo @@ -1 +1 @@ -0.22.0 +0.27.0 diff --git a/README.md b/README.md index 8d347b6..bbb7505 100644 --- a/README.md +++ b/README.md @@ -15,9 +15,11 @@ fairly complicated, please read the [Wikipedia article](//en.wikipedia.org/wiki/ * [Example](example/main.m) + + | Release Version | Release Notes |-------------------------------------------------------|-------------- -| ![Mulle kybernetiK tag](https://img.shields.io/github/tag/mulle-concurrent/mulle-aba.svg?branch=release) [![Build Status](https://github.com/mulle-concurrent/mulle-aba/workflows/CI/badge.svg?branch=release)](//github.com/mulle-concurrent/mulle-aba/actions)| [RELEASENOTES](RELEASENOTES.md) | +| ![Mulle kybernetiK tag](https://img.shields.io/github/tag/mulle-concurrent/mulle-aba.svg?branch=release) [![Build Status](https://github.com/mulle-concurrent/mulle-aba/workflows/CI/badge.svg?branch=release)](//github.com/mulle-concurrent/mulle-aba/actions) | [RELEASENOTES](RELEASENOTES.md) | ## API @@ -29,6 +31,13 @@ fairly complicated, please read the [Wikipedia article](//en.wikipedia.org/wiki/ +### You are here + +![Overview](overview.dot.svg) + + + + ## Add @@ -89,8 +98,10 @@ cmake --build build --config Release && cmake --install build --config Release ``` + ## Author -[Nat!](https://mulle-kybernetik.com/weblog) for Mulle kybernetiK +[Nat!](https://mulle-kybernetik.com/weblog) for Mulle kybernetiK + diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 374e274..466e051 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,3 +1,8 @@ +## 3.1.0 + +* moved mulle-aba-linkedlist to own mulle-linkedlist project for the benefit of mulle-objc-runtime + + ### 3.0.1 * remove package.json as it conflicts with clib.json diff --git a/cmake/reflect/_Dependencies.cmake b/cmake/reflect/_Dependencies.cmake index 76849a2..3b34533 100644 --- a/cmake/reflect/_Dependencies.cmake +++ b/cmake/reflect/_Dependencies.cmake @@ -17,35 +17,35 @@ endif() # Disable for this platform: `mulle-sourcetree mark mulle-allocator no-cmake-platform-${MULLE_UNAME}` # Disable for a sdk: `mulle-sourcetree mark mulle-allocator no-cmake-sdk-` # -if( NOT MULLE_ALLOCATOR_LIBRARY) - find_library( MULLE_ALLOCATOR_LIBRARY NAMES +if( NOT MULLE__ALLOCATOR_LIBRARY) + find_library( MULLE__ALLOCATOR_LIBRARY NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}mulle-allocator${CMAKE_DEBUG_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} ${CMAKE_STATIC_LIBRARY_PREFIX}mulle-allocator${CMAKE_STATIC_LIBRARY_SUFFIX} mulle-allocator NO_CMAKE_SYSTEM_PATH NO_SYSTEM_ENVIRONMENT_PATH ) - if( NOT MULLE_ALLOCATOR_LIBRARY AND NOT DEPENDENCY_IGNORE_SYSTEM_LIBARIES) - find_library( MULLE_ALLOCATOR_LIBRARY NAMES + if( NOT MULLE__ALLOCATOR_LIBRARY AND NOT DEPENDENCY_IGNORE_SYSTEM_LIBARIES) + find_library( MULLE__ALLOCATOR_LIBRARY NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}mulle-allocator${CMAKE_DEBUG_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} ${CMAKE_STATIC_LIBRARY_PREFIX}mulle-allocator${CMAKE_STATIC_LIBRARY_SUFFIX} mulle-allocator ) endif() - message( STATUS "MULLE_ALLOCATOR_LIBRARY is ${MULLE_ALLOCATOR_LIBRARY}") + message( STATUS "MULLE__ALLOCATOR_LIBRARY is ${MULLE__ALLOCATOR_LIBRARY}") # # The order looks ascending, but due to the way this file is read # it ends up being descending, which is what we need. # - if( MULLE_ALLOCATOR_LIBRARY) + if( MULLE__ALLOCATOR_LIBRARY) # - # Add MULLE_ALLOCATOR_LIBRARY to DEPENDENCY_LIBRARIES list. + # Add MULLE__ALLOCATOR_LIBRARY to DEPENDENCY_LIBRARIES list. # Disable with: `mulle-sourcetree mark mulle-allocator no-cmake-add` # - list( APPEND DEPENDENCY_LIBRARIES ${MULLE_ALLOCATOR_LIBRARY}) + list( APPEND DEPENDENCY_LIBRARIES ${MULLE__ALLOCATOR_LIBRARY}) # intentionally left blank else() # Disable with: `mulle-sourcetree mark mulle-allocator no-require-link` - message( FATAL_ERROR "MULLE_ALLOCATOR_LIBRARY was not found") + message( FATAL_ERROR "MULLE__ALLOCATOR_LIBRARY was not found") endif() endif() @@ -56,49 +56,49 @@ endif() # Disable for this platform: `mulle-sourcetree mark mulle-thread no-cmake-platform-${MULLE_UNAME}` # Disable for a sdk: `mulle-sourcetree mark mulle-thread no-cmake-sdk-` # -if( NOT MULLE_THREAD_LIBRARY) - find_library( MULLE_THREAD_LIBRARY NAMES +if( NOT MULLE__THREAD_LIBRARY) + find_library( MULLE__THREAD_LIBRARY NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}mulle-thread${CMAKE_DEBUG_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} ${CMAKE_STATIC_LIBRARY_PREFIX}mulle-thread${CMAKE_STATIC_LIBRARY_SUFFIX} mulle-thread NO_CMAKE_SYSTEM_PATH NO_SYSTEM_ENVIRONMENT_PATH ) - if( NOT MULLE_THREAD_LIBRARY AND NOT DEPENDENCY_IGNORE_SYSTEM_LIBARIES) - find_library( MULLE_THREAD_LIBRARY NAMES + if( NOT MULLE__THREAD_LIBRARY AND NOT DEPENDENCY_IGNORE_SYSTEM_LIBARIES) + find_library( MULLE__THREAD_LIBRARY NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}mulle-thread${CMAKE_DEBUG_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} ${CMAKE_STATIC_LIBRARY_PREFIX}mulle-thread${CMAKE_STATIC_LIBRARY_SUFFIX} mulle-thread ) endif() - message( STATUS "MULLE_THREAD_LIBRARY is ${MULLE_THREAD_LIBRARY}") + message( STATUS "MULLE__THREAD_LIBRARY is ${MULLE__THREAD_LIBRARY}") # # The order looks ascending, but due to the way this file is read # it ends up being descending, which is what we need. # - if( MULLE_THREAD_LIBRARY) + if( MULLE__THREAD_LIBRARY) # - # Add MULLE_THREAD_LIBRARY to DEPENDENCY_LIBRARIES list. + # Add MULLE__THREAD_LIBRARY to DEPENDENCY_LIBRARIES list. # Disable with: `mulle-sourcetree mark mulle-thread no-cmake-add` # - list( APPEND DEPENDENCY_LIBRARIES ${MULLE_THREAD_LIBRARY}) + list( APPEND DEPENDENCY_LIBRARIES ${MULLE__THREAD_LIBRARY}) # # Inherit information from dependency. # Encompasses: no-cmake-searchpath,no-cmake-dependency,no-cmake-loader # Disable with: `mulle-sourcetree mark mulle-thread no-cmake-inherit` # # temporarily expand CMAKE_MODULE_PATH - get_filename_component( _TMP_MULLE_THREAD_ROOT "${MULLE_THREAD_LIBRARY}" DIRECTORY) - get_filename_component( _TMP_MULLE_THREAD_ROOT "${_TMP_MULLE_THREAD_ROOT}" DIRECTORY) + get_filename_component( _TMP_MULLE__THREAD_ROOT "${MULLE__THREAD_LIBRARY}" DIRECTORY) + get_filename_component( _TMP_MULLE__THREAD_ROOT "${_TMP_MULLE__THREAD_ROOT}" DIRECTORY) # # # Search for "Definitions.cmake" and "DependenciesAndLibraries.cmake" to include. # Disable with: `mulle-sourcetree mark mulle-thread no-cmake-dependency` # - foreach( _TMP_MULLE_THREAD_NAME "mulle-thread") - set( _TMP_MULLE_THREAD_DIR "${_TMP_MULLE_THREAD_ROOT}/include/${_TMP_MULLE_THREAD_NAME}/cmake") + foreach( _TMP_MULLE__THREAD_NAME "mulle-thread") + set( _TMP_MULLE__THREAD_DIR "${_TMP_MULLE__THREAD_ROOT}/include/${_TMP_MULLE__THREAD_NAME}/cmake") # use explicit path to avoid "surprises" - if( IS_DIRECTORY "${_TMP_MULLE_THREAD_DIR}") - list( INSERT CMAKE_MODULE_PATH 0 "${_TMP_MULLE_THREAD_DIR}") + if( IS_DIRECTORY "${_TMP_MULLE__THREAD_DIR}") + list( INSERT CMAKE_MODULE_PATH 0 "${_TMP_MULLE__THREAD_DIR}") # we only want top level INHERIT_OBJC_LOADERS, so disable them if( NOT NO_INHERIT_OBJC_LOADERS) set( NO_INHERIT_OBJC_LOADERS OFF) @@ -106,23 +106,23 @@ if( NOT MULLE_THREAD_LIBRARY) list( APPEND _TMP_INHERIT_OBJC_LOADERS ${NO_INHERIT_OBJC_LOADERS}) set( NO_INHERIT_OBJC_LOADERS ON) # - include( "${_TMP_MULLE_THREAD_DIR}/DependenciesAndLibraries.cmake" OPTIONAL) + include( "${_TMP_MULLE__THREAD_DIR}/DependenciesAndLibraries.cmake" OPTIONAL) # list( GET _TMP_INHERIT_OBJC_LOADERS -1 NO_INHERIT_OBJC_LOADERS) list( REMOVE_AT _TMP_INHERIT_OBJC_LOADERS -1) - list( REMOVE_ITEM CMAKE_MODULE_PATH "${_TMP_MULLE_THREAD_DIR}") + list( REMOVE_ITEM CMAKE_MODULE_PATH "${_TMP_MULLE__THREAD_DIR}") # - unset( MULLE_THREAD_DEFINITIONS) - include( "${_TMP_MULLE_THREAD_DIR}/Definitions.cmake" OPTIONAL) - list( APPEND INHERITED_DEFINITIONS ${MULLE_THREAD_DEFINITIONS}) + unset( MULLE__THREAD_DEFINITIONS) + include( "${_TMP_MULLE__THREAD_DIR}/Definitions.cmake" OPTIONAL) + list( APPEND INHERITED_DEFINITIONS ${MULLE__THREAD_DEFINITIONS}) break() else() - message( STATUS "${_TMP_MULLE_THREAD_DIR} not found") + message( STATUS "${_TMP_MULLE__THREAD_DIR} not found") endif() endforeach() else() # Disable with: `mulle-sourcetree mark mulle-thread no-require-link` - message( FATAL_ERROR "MULLE_THREAD_LIBRARY was not found") + message( FATAL_ERROR "MULLE__THREAD_LIBRARY was not found") endif() endif() @@ -133,64 +133,64 @@ endif() # Disable for this platform: `mulle-sourcetree mark mulle-linkedlist no-cmake-platform-${MULLE_UNAME}` # Disable for a sdk: `mulle-sourcetree mark mulle-linkedlist no-cmake-sdk-` # -if( NOT MULLE_LINKEDLIST_LIBRARY) - find_library( MULLE_LINKEDLIST_LIBRARY NAMES +if( NOT MULLE__LINKEDLIST_LIBRARY) + find_library( MULLE__LINKEDLIST_LIBRARY NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}mulle-linkedlist${CMAKE_DEBUG_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} ${CMAKE_STATIC_LIBRARY_PREFIX}mulle-linkedlist${CMAKE_STATIC_LIBRARY_SUFFIX} mulle-linkedlist NO_CMAKE_SYSTEM_PATH NO_SYSTEM_ENVIRONMENT_PATH ) - if( NOT MULLE_LINKEDLIST_LIBRARY AND NOT DEPENDENCY_IGNORE_SYSTEM_LIBARIES) - find_library( MULLE_LINKEDLIST_LIBRARY NAMES + if( NOT MULLE__LINKEDLIST_LIBRARY AND NOT DEPENDENCY_IGNORE_SYSTEM_LIBARIES) + find_library( MULLE__LINKEDLIST_LIBRARY NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}mulle-linkedlist${CMAKE_DEBUG_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} ${CMAKE_STATIC_LIBRARY_PREFIX}mulle-linkedlist${CMAKE_STATIC_LIBRARY_SUFFIX} mulle-linkedlist ) endif() - message( STATUS "MULLE_LINKEDLIST_LIBRARY is ${MULLE_LINKEDLIST_LIBRARY}") + message( STATUS "MULLE__LINKEDLIST_LIBRARY is ${MULLE__LINKEDLIST_LIBRARY}") # # The order looks ascending, but due to the way this file is read # it ends up being descending, which is what we need. # - if( MULLE_LINKEDLIST_LIBRARY) + if( MULLE__LINKEDLIST_LIBRARY) # - # Add MULLE_LINKEDLIST_LIBRARY to DEPENDENCY_LIBRARIES list. + # Add MULLE__LINKEDLIST_LIBRARY to DEPENDENCY_LIBRARIES list. # Disable with: `mulle-sourcetree mark mulle-linkedlist no-cmake-add` # - list( APPEND DEPENDENCY_LIBRARIES ${MULLE_LINKEDLIST_LIBRARY}) + list( APPEND DEPENDENCY_LIBRARIES ${MULLE__LINKEDLIST_LIBRARY}) # # Inherit information from dependency. # Encompasses: no-cmake-searchpath,no-cmake-dependency,no-cmake-loader # Disable with: `mulle-sourcetree mark mulle-linkedlist no-cmake-inherit` # # temporarily expand CMAKE_MODULE_PATH - get_filename_component( _TMP_MULLE_LINKEDLIST_ROOT "${MULLE_LINKEDLIST_LIBRARY}" DIRECTORY) - get_filename_component( _TMP_MULLE_LINKEDLIST_ROOT "${_TMP_MULLE_LINKEDLIST_ROOT}" DIRECTORY) + get_filename_component( _TMP_MULLE__LINKEDLIST_ROOT "${MULLE__LINKEDLIST_LIBRARY}" DIRECTORY) + get_filename_component( _TMP_MULLE__LINKEDLIST_ROOT "${_TMP_MULLE__LINKEDLIST_ROOT}" DIRECTORY) # # # Search for "Definitions.cmake" and "DependenciesAndLibraries.cmake" to include. # Disable with: `mulle-sourcetree mark mulle-linkedlist no-cmake-dependency` # - foreach( _TMP_MULLE_LINKEDLIST_NAME "mulle-linkedlist") - set( _TMP_MULLE_LINKEDLIST_DIR "${_TMP_MULLE_LINKEDLIST_ROOT}/include/${_TMP_MULLE_LINKEDLIST_NAME}/cmake") + foreach( _TMP_MULLE__LINKEDLIST_NAME "mulle-linkedlist") + set( _TMP_MULLE__LINKEDLIST_DIR "${_TMP_MULLE__LINKEDLIST_ROOT}/include/${_TMP_MULLE__LINKEDLIST_NAME}/cmake") # use explicit path to avoid "surprises" - if( IS_DIRECTORY "${_TMP_MULLE_LINKEDLIST_DIR}") - list( INSERT CMAKE_MODULE_PATH 0 "${_TMP_MULLE_LINKEDLIST_DIR}") + if( IS_DIRECTORY "${_TMP_MULLE__LINKEDLIST_DIR}") + list( INSERT CMAKE_MODULE_PATH 0 "${_TMP_MULLE__LINKEDLIST_DIR}") # - include( "${_TMP_MULLE_LINKEDLIST_DIR}/DependenciesAndLibraries.cmake" OPTIONAL) + include( "${_TMP_MULLE__LINKEDLIST_DIR}/DependenciesAndLibraries.cmake" OPTIONAL) # - list( REMOVE_ITEM CMAKE_MODULE_PATH "${_TMP_MULLE_LINKEDLIST_DIR}") + list( REMOVE_ITEM CMAKE_MODULE_PATH "${_TMP_MULLE__LINKEDLIST_DIR}") # - unset( MULLE_LINKEDLIST_DEFINITIONS) - include( "${_TMP_MULLE_LINKEDLIST_DIR}/Definitions.cmake" OPTIONAL) - list( APPEND INHERITED_DEFINITIONS ${MULLE_LINKEDLIST_DEFINITIONS}) + unset( MULLE__LINKEDLIST_DEFINITIONS) + include( "${_TMP_MULLE__LINKEDLIST_DIR}/Definitions.cmake" OPTIONAL) + list( APPEND INHERITED_DEFINITIONS ${MULLE__LINKEDLIST_DEFINITIONS}) break() else() - message( STATUS "${_TMP_MULLE_LINKEDLIST_DIR} not found") + message( STATUS "${_TMP_MULLE__LINKEDLIST_DIR} not found") endif() endforeach() else() # Disable with: `mulle-sourcetree mark mulle-linkedlist no-require-link` - message( FATAL_ERROR "MULLE_LINKEDLIST_LIBRARY was not found") + message( FATAL_ERROR "MULLE__LINKEDLIST_LIBRARY was not found") endif() endif() diff --git a/cmake/share/Environment.cmake b/cmake/share/Environment.cmake index 6f5131c..c3eaa37 100644 --- a/cmake/share/Environment.cmake +++ b/cmake/share/Environment.cmake @@ -40,7 +40,7 @@ if( NOT __ENVIRONMENT__CMAKE__) # distinctions, the paths will be different # # Slight change. MULLE_SDK_PATH contains now addiction_dir - # and depedency_dir, but notthing else. The configuration/sdk/platform + # and depedency_dir, but nothing else. The configuration/sdk/platform # is passed in MULLE_SDK_SUBDIR # if( NOT MULLE_SDK_PATH) @@ -55,10 +55,16 @@ if( NOT __ENVIRONMENT__CMAKE__) list( GET MULLE_SDK_PATH 1 ADDICTION_DIR) option( DEPENDENCY_IGNORE_SYSTEM_LIBARIES "Ignore system library paths in search for dependencies" ON) + if( NOT DEPENDENCY_IGNORE_SYSTEM_LIBARIES) + message( WARNING "Will also search system paths for dependencies, as MULLE_SDK_PATH is not set") + endif() else() if( NOT MULLE_SDK_SUBDIR) set( MULLE_SDK_SUBDIR "${CMAKE_BUILD_TYPE}") endif() + if( NOT MULLE_SDK_SUBDIR) + set( MULLE_SDK_SUBDIR "Debug") + endif() option( DEPENDENCY_IGNORE_SYSTEM_LIBARIES "Ignore system library paths in search for dependencies" OFF) endif() @@ -79,9 +85,6 @@ if( NOT __ENVIRONMENT__CMAKE__) endif() endif() - if( NOT DEPENDENCY_IGNORE_SYSTEM_LIBARIES) - message( WARNING "Will also search system paths for dependencies") - endif() message( STATUS "DEPENDENCY_DIR=\"${DEPENDENCY_DIR}\"") list( APPEND ADDITIONAL_BIN_PATH "${DEPENDENCY_DIR}/bin") diff --git a/cmake/share/Headers.cmake b/cmake/share/Headers.cmake index 24671a2..f393b23 100644 --- a/cmake/share/Headers.cmake +++ b/cmake/share/Headers.cmake @@ -57,6 +57,10 @@ set( TMP_HEADERS ${PUBLIC_HEADERS} ) ResolveFileSymlinksIfNeeded( TMP_HEADERS INSTALL_PUBLIC_HEADERS) +# +# Do not install generated private headers and include-private.h +# which aren't valid outside of the project scope. +# set( TMP_HEADERS ${PRIVATE_HEADERS}) if( TMP_HEADERS) list( REMOVE_ITEM TMP_HEADERS "include-private.h") diff --git a/src/mulle-aba.c b/src/mulle-aba.c index 6359d75..bf2cad9 100644 --- a/src/mulle-aba.c +++ b/src/mulle-aba.c @@ -332,12 +332,12 @@ int _mulle_aba_checkin_current_thread( struct mulle_aba *p) MULLE_THREAD_UNPLEASANT_RACE_YIELD(); rval = _mulle_lockfree_deallocator_free_world_if_needed( p, world_ps); - if( rval) - return( -1); - - _mulle_aba_check_timestamp_range( p, last, new); - mulle_thread_tss_set( p->timestamp_thread_key, (void *) (new + 1)); - + assert( rval == 0 || rval == -1); + if( ! rval) + { + _mulle_aba_check_timestamp_range( p, last, new); + mulle_thread_tss_set( p->timestamp_thread_key, (void *) (new + 1)); + } // return( rval); } @@ -1154,9 +1154,6 @@ void mulle_aba_unregister() void mulle_aba_init( struct mulle_allocator *allocator) { - assert( MULLE__THREAD_VERSION >= ((0 << 20) | (2 << 8) | 0)); - assert( MULLE__ALLOCATOR_VERSION >= ((0 << 20) | (1 << 8) | 0)); - if( ! allocator) allocator = &mulle_default_allocator; diff --git a/src/mulle-aba.h b/src/mulle-aba.h index a4925e5..b74172f 100644 --- a/src/mulle-aba.h +++ b/src/mulle-aba.h @@ -38,20 +38,13 @@ // // community version is always even // -#define MULLE__ABA_VERSION ((3 << 20) | (1 << 8) | 0) +#define MULLE__ABA_VERSION ((3UL << 20) | (1 << 8) | 0) #include "include.h" #include #include "mulle-aba-storage.h" -#if MULLE__ALLOCATOR_VERSION < ((4 << 20) | (0 << 8) | 0) -# error "mulle-allocator is too old" -#endif -#if MULLE__THREAD_VERSION < ((4 << 20) | (1 << 8) | 8) -# error "mulle-thread is too old" -#endif - // // THIS IS THREADSAFE, except where noted // never copy it, storage contains a world pointer @@ -181,4 +174,10 @@ MULLE__ABA_GLOBAL void *_mulle_aba_get_worldpointer( struct mulle_aba *p); +#ifdef __has_include +# if __has_include( "_mulle-aba-versioncheck.h") +# include "_mulle-aba-versioncheck.h" +# endif +#endif + #endif diff --git a/src/reflect/_mulle-aba-include.h b/src/reflect/_mulle-aba-include.h index c1cba75..05cab85 100644 --- a/src/reflect/_mulle-aba-include.h +++ b/src/reflect/_mulle-aba-include.h @@ -14,39 +14,48 @@ #ifndef _mulle_aba_include_h__ #define _mulle_aba_include_h__ -// You can tweak the following #include with these commands. -// (Use 9DB39403-9DF3-4E29-8871-E8D6023B9334 instead of mulle-allocator if there are duplicate entries) -// remove #include:: `mulle-sde dependency mark mulle-allocator no-header` -// rename: `mulle-sde dependency|library set mulle-allocator include whatever.h` -// reorder: `mulle-sde dependency move mulle-allocator ` -// toggle #include: `mulle-sde dependency mark mulle-allocator [no-]import` -// toggle public: `mulle-sde dependency mark mulle-allocator [no-]public` -// toggle optional: `mulle-sde dependency mark mulle-allocator [no-]require` -// remove for platform: `mulle-sde dependency mark mulle-allocator no-platform-` +// To remove the following dependency (headers and library) completely: +// `mulle-sde dependency remove mulle-allocator` +// (Use 9DB39403-9DF3-4E29-8871-E8D6023B9334 instead of mulle-allocator, if there are duplicate entries) +// +// You can tweak the following #include with these commands: +// remove #include: `mulle-sde dependency mark mulle-allocator no-header` +// rename : `mulle-sde dependency|library set mulle-allocator include whatever.h` +// reorder : `mulle-sde dependency move mulle-allocator ` +// toggle #include: `mulle-sde dependency mark mulle-allocator [no-]import` +// toggle public : `mulle-sde dependency mark mulle-allocator [no-]public` +// toggle optional : `mulle-sde dependency mark mulle-allocator [no-]require` +// remove for platform : `mulle-sde dependency mark mulle-allocator no-platform-` // (use `mulle-sourcetree-to-c --unames` to list known values) #include // mulle-allocator -// You can tweak the following #include with these commands. -// (Use FDD72DA6-03FE-41C8-AC5E-BDC4E891E0E3 instead of mulle-thread if there are duplicate entries) -// remove #include:: `mulle-sde dependency mark mulle-thread no-header` -// rename: `mulle-sde dependency|library set mulle-thread include whatever.h` -// reorder: `mulle-sde dependency move mulle-thread ` -// toggle #include: `mulle-sde dependency mark mulle-thread [no-]import` -// toggle public: `mulle-sde dependency mark mulle-thread [no-]public` -// toggle optional: `mulle-sde dependency mark mulle-thread [no-]require` -// remove for platform: `mulle-sde dependency mark mulle-thread no-platform-` +// To remove the following dependency (headers and library) completely: +// `mulle-sde dependency remove mulle-thread` +// (Use FDD72DA6-03FE-41C8-AC5E-BDC4E891E0E3 instead of mulle-thread, if there are duplicate entries) +// +// You can tweak the following #include with these commands: +// remove #include: `mulle-sde dependency mark mulle-thread no-header` +// rename : `mulle-sde dependency|library set mulle-thread include whatever.h` +// reorder : `mulle-sde dependency move mulle-thread ` +// toggle #include: `mulle-sde dependency mark mulle-thread [no-]import` +// toggle public : `mulle-sde dependency mark mulle-thread [no-]public` +// toggle optional : `mulle-sde dependency mark mulle-thread [no-]require` +// remove for platform : `mulle-sde dependency mark mulle-thread no-platform-` // (use `mulle-sourcetree-to-c --unames` to list known values) #include // mulle-thread -// You can tweak the following #include with these commands. -// (Use 7ACE8853-C4E5-499A-951D-A9CDCC85785F instead of mulle-linkedlist if there are duplicate entries) -// remove #include:: `mulle-sde dependency mark mulle-linkedlist no-header` -// rename: `mulle-sde dependency|library set mulle-linkedlist include whatever.h` -// reorder: `mulle-sde dependency move mulle-linkedlist ` -// toggle #include: `mulle-sde dependency mark mulle-linkedlist [no-]import` -// toggle public: `mulle-sde dependency mark mulle-linkedlist [no-]public` -// toggle optional: `mulle-sde dependency mark mulle-linkedlist [no-]require` -// remove for platform: `mulle-sde dependency mark mulle-linkedlist no-platform-` +// To remove the following dependency (headers and library) completely: +// `mulle-sde dependency remove mulle-linkedlist` +// (Use 7ACE8853-C4E5-499A-951D-A9CDCC85785F instead of mulle-linkedlist, if there are duplicate entries) +// +// You can tweak the following #include with these commands: +// remove #include: `mulle-sde dependency mark mulle-linkedlist no-header` +// rename : `mulle-sde dependency|library set mulle-linkedlist include whatever.h` +// reorder : `mulle-sde dependency move mulle-linkedlist ` +// toggle #include: `mulle-sde dependency mark mulle-linkedlist [no-]import` +// toggle public : `mulle-sde dependency mark mulle-linkedlist [no-]public` +// toggle optional : `mulle-sde dependency mark mulle-linkedlist [no-]require` +// remove for platform : `mulle-sde dependency mark mulle-linkedlist no-platform-` // (use `mulle-sourcetree-to-c --unames` to list known values) #include // mulle-linkedlist diff --git a/src/reflect/_mulle-aba-provide.h b/src/reflect/_mulle-aba-provide.h index 0b2944c..34e4b0c 100644 --- a/src/reflect/_mulle-aba-provide.h +++ b/src/reflect/_mulle-aba-provide.h @@ -9,8 +9,8 @@ * * mulle-sde environment set MULLE_MATCH_TO_C_RUN DISABLE */ -#ifndef mulle_aba_provide_h__ -#define mulle_aba_provide_h__ +#ifndef _mulle__aba__provide_h__ +#define _mulle__aba__provide_h__ #include "mulle-aba-defines.h" diff --git a/src/reflect/_mulle-aba-versioncheck.h b/src/reflect/_mulle-aba-versioncheck.h index 5d2f7ab..4efdbf1 100644 --- a/src/reflect/_mulle-aba-versioncheck.h +++ b/src/reflect/_mulle-aba-versioncheck.h @@ -7,10 +7,10 @@ #if defined( MULLE__ALLOCATOR_VERSION) # ifndef MULLE__ALLOCATOR_VERSION_MIN -# define MULLE__ALLOCATOR_VERSION_MIN ((5 << 20) | (0 << 8) | 2) +# define MULLE__ALLOCATOR_VERSION_MIN ((6UL << 20) | (0 << 8) | 0) # endif # ifndef MULLE__ALLOCATOR_VERSION_MAX -# define MULLE__ALLOCATOR_VERSION_MAX ((6 << 20) | (0 << 8) | 0) +# define MULLE__ALLOCATOR_VERSION_MAX ((7UL << 20) | (0 << 8) | 0) # endif # if MULLE__ALLOCATOR_VERSION < MULLE__ALLOCATOR_VERSION_MIN # error "mulle-allocator is too old" @@ -22,10 +22,10 @@ #if defined( MULLE__LINKEDLIST_VERSION) # ifndef MULLE__LINKEDLIST_VERSION_MIN -# define MULLE__LINKEDLIST_VERSION_MIN ((0 << 20) | (0 << 8) | 2) +# define MULLE__LINKEDLIST_VERSION_MIN ((0UL << 20) | (0 << 8) | 2) # endif # ifndef MULLE__LINKEDLIST_VERSION_MAX -# define MULLE__LINKEDLIST_VERSION_MAX ((0 << 20) | (1 << 8) | 0) +# define MULLE__LINKEDLIST_VERSION_MAX ((0UL << 20) | (1 << 8) | 0) # endif # if MULLE__LINKEDLIST_VERSION < MULLE__LINKEDLIST_VERSION_MIN # error "mulle-linkedlist is too old" @@ -37,10 +37,10 @@ #if defined( MULLE__THREAD_VERSION) # ifndef MULLE__THREAD_VERSION_MIN -# define MULLE__THREAD_VERSION_MIN ((4 << 20) | (5 << 8) | 2) +# define MULLE__THREAD_VERSION_MIN ((4UL << 20) | (5 << 8) | 2) # endif # ifndef MULLE__THREAD_VERSION_MAX -# define MULLE__THREAD_VERSION_MAX ((5 << 20) | (0 << 8) | 0) +# define MULLE__THREAD_VERSION_MAX ((5UL << 20) | (0 << 8) | 0) # endif # if MULLE__THREAD_VERSION < MULLE__THREAD_VERSION_MIN # error "mulle-thread is too old" diff --git a/test/.mulle/etc/env/environment-host-ci-prerelease.sh b/test/.mulle/etc/env/environment-host-ci-prerelease.sh index d5d7384..2fcac15 100644 --- a/test/.mulle/etc/env/environment-host-ci-prerelease.sh +++ b/test/.mulle/etc/env/environment-host-ci-prerelease.sh @@ -196,21 +196,3 @@ export MULLE__LINKEDLIST_URL="https://github.com/mulle-concurrent/mulle-linkedli export MULLE__LINKEDLIST_BRANCH="prerelease" -# -# mulle-c11 nodetype: ${MULLE_C11_NODETYPE:-tar} -# -export MULLE_C11_NODETYPE="git" - - -# -# mulle-c11 url: ${MULLE_C11_URL:-https://github.com/mulle-c/mulle-c11/archive/${MULLE_TAG}.tar.gz} -# -export MULLE_C11_URL="https://github.com/mulle-c/mulle-c11.git" - - -# -# mulle-c11 branch: ${MULLE_C11_BRANCH} -# -export MULLE_C11_BRANCH="prerelease" - -