diff options
-rw-r--r-- | CMakeLists.txt | 8 | ||||
-rw-r--r-- | Readme.md | 6 | ||||
-rw-r--r-- | include/afio/revision.hpp | 6 | ||||
-rw-r--r-- | include/afio/v2.0/afio.hpp | 6 | ||||
-rw-r--r-- | include/afio/v2.0/config.hpp | 4 | ||||
-rw-r--r-- | include/afio/v2.0/io_service.hpp | 4 | ||||
m--------- | include/afio/v2.0/quickcpplib | 0 | ||||
-rw-r--r-- | single-header/Readme.md | 2 |
8 files changed, 27 insertions, 9 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 6c4259a2..508ac977 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,6 +53,8 @@ if(NOT PROJECT_IS_DEPENDENCY) -U QUICKCPPLIB_ENABLE_VALGRIND -U DOXYGEN_SHOULD_SKIP_THIS -U DOXYGEN_IS_IN_THE_HOUSE -U STANDARDESE_IS_IN_THE_HOUSE + -U __has_include -U __has_feature -U __has_cpp_attribute + -U __cpp_modules WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" ) if(NOT CMAKE_VERSION VERSION_LESS 3.3) @@ -61,10 +63,14 @@ if(NOT PROJECT_IS_DEPENDENCY) endfunction() make_single_header(afio_hl-pp-std "${CMAKE_CURRENT_SOURCE_DIR}/single-header/afio.hpp" - "${CMAKE_CURRENT_SOURCE_DIR}/include/afio/v2.0/afio.hpp") + "${CMAKE_CURRENT_SOURCE_DIR}/include/afio/v2.0/afio.hpp" + #-D QUICKCPPLIB_USE_STD_BYTE -D QUICKCPPLIB_USE_STD_OPTIONAL -D QUICKCPPLIB_USE_STD_SPAN + -D AFIO_LEAN_AND_MEAN + -D AFIO_EXPERIMENTAL_STATUS_CODE=1) make_single_header(afio_hl-pp-abi "${CMAKE_CURRENT_SOURCE_DIR}/single-header/abi.hpp" "${CMAKE_CURRENT_SOURCE_DIR}/include/afio/v2.0/afio.hpp" + -D AFIO_EXPERIMENTAL_STATUS_CODE=1 -D AFIO_DISABLE_ABI_PERMUTATION=1 -D OUTCOME_DISABLE_ABI_PERMUTATION=1 -D QUICKCPPLIB_DISABLE_ABI_PERMUTATION=1 @@ -17,8 +17,10 @@ Tarballs of source and prebuilt binaries for Linux x64, MacOS x64 and Windows x6 - [x] Fix all known bugs in Outcome, plus reorg source code in prep for `status_code`. - [x] Scatter-gather buffers to use https://github.com/martinmoene/byte-lite - [x] Make lazy the stat fetch during file/dir open. -- [ ] Implement SG14 `status_code` as a standalone library and test in AFIO. -- [ ] Single include generation now we're on `status_code` and it's safe. +- [x] Implement SG14 `status_code` as a standalone library and test in AFIO. +- [x] Single include generation now we're on `status_code` and it's safe. +- [ ] Implement `SIGBUS`/`EXCEPTION_IN_PAGE_ERROR` RAII catcher. + - Is `io_service` reference counting the signal handler install? - [ ] `atomic_append` isn't actually being tested in shared_fs_mutex - [ ] Implement a non-toy ACID key-value BLOB store and send it to Boost for peer review. - [ ] For this need to implement a file-based B+ tree. And for that, need to diff --git a/include/afio/revision.hpp b/include/afio/revision.hpp index d2c58e2e..1dae6877 100644 --- a/include/afio/revision.hpp +++ b/include/afio/revision.hpp @@ -1,4 +1,4 @@ // Note the second line of this file must ALWAYS be the git SHA, third line ALWAYS the git SHA update time -#define AFIO_PREVIOUS_COMMIT_REF 0eb47d30299b63748a2796a9439e53765a5ff101 -#define AFIO_PREVIOUS_COMMIT_DATE "2018-06-07 09:05:56 +00:00" -#define AFIO_PREVIOUS_COMMIT_UNIQUE 0eb47d30 +#define AFIO_PREVIOUS_COMMIT_REF a36490c2e5cfdeedb65bf82bed40e3de28caf557 +#define AFIO_PREVIOUS_COMMIT_DATE "2018-06-07 15:12:29 +00:00" +#define AFIO_PREVIOUS_COMMIT_UNIQUE a36490c2 diff --git a/include/afio/v2.0/afio.hpp b/include/afio/v2.0/afio.hpp index 8c122a46..ebdee881 100644 --- a/include/afio/v2.0/afio.hpp +++ b/include/afio/v2.0/afio.hpp @@ -57,11 +57,17 @@ import AFIO_MODULE_NAME; #include "config.hpp" +#ifndef AFIO_LEAN_AND_MEAN #include "async_file_handle.hpp" +#else +#include "file_handle.hpp" +#endif #include "directory_handle.hpp" #include "map_handle.hpp" #include "statfs.hpp" +#ifndef AFIO_LEAN_AND_MEAN #include "storage_profile.hpp" +#endif #include "algorithm/cached_parent_handle_adapter.hpp" #include "algorithm/mapped_span.hpp" diff --git a/include/afio/v2.0/config.hpp b/include/afio/v2.0/config.hpp index 8ebbdb27..da7bfa17 100644 --- a/include/afio/v2.0/config.hpp +++ b/include/afio/v2.0/config.hpp @@ -82,7 +82,7 @@ Distributed under the Boost Software License, Version 1.0. #if !defined(AFIO_EXPERIMENTAL_STATUS_CODE) //! \brief Whether to use SG14 experimental `status_code` instead of `std::error_code` -#define AFIO_EXPERIMENTAL_STATUS_CODE 0 +#define AFIO_EXPERIMENTAL_STATUS_CODE 1 #endif @@ -146,7 +146,7 @@ Distributed under the Boost Software License, Version 1.0. #include "quickcpplib/include/import.h" -#ifdef AFIO_UNSTABLE_VERSION +#if defined(AFIO_UNSTABLE_VERSION) && !defined(AFIO_DISABLE_ABI_PERMUTATION) #include "../revision.hpp" #define AFIO_V2 (QUICKCPPLIB_BIND_NAMESPACE_VERSION(afio_v2, AFIO_PREVIOUS_COMMIT_UNIQUE)) #else diff --git a/include/afio/v2.0/io_service.hpp b/include/afio/v2.0/io_service.hpp index 26f7294f..ad898919 100644 --- a/include/afio/v2.0/io_service.hpp +++ b/include/afio/v2.0/io_service.hpp @@ -31,8 +31,9 @@ Distributed under the Boost Software License, Version 1.0. #include <deque> #include <mutex> -#ifdef __cpp_coroutines +#if defined(__cpp_coroutines) // clang-format off +#if defined(__has_include) #if __has_include(<coroutine>) #include <coroutine> AFIO_V2_NAMESPACE_EXPORT_BEGIN @@ -46,6 +47,7 @@ AFIO_V2_NAMESPACE_END #else #error Cannot use C++ Coroutines without the <coroutine> header! #endif +#endif // clang-format on #endif diff --git a/include/afio/v2.0/quickcpplib b/include/afio/v2.0/quickcpplib -Subproject aaafa3ebe6330a4709bf58891ee02d4b521d4b6 +Subproject b5fc1d357a75832a34bf776f395159490bbd9e6 diff --git a/single-header/Readme.md b/single-header/Readme.md new file mode 100644 index 00000000..b2e45343 --- /dev/null +++ b/single-header/Readme.md @@ -0,0 +1,2 @@ +Herein can lie a single header edition of AFIO. It currently exceeds 1.5Mb, +and so to keep the git repo from expanding it is not committed here. |