Repository navigation
Modular Boost and green CI - #201
Conversation
Adding Code coverage to ublas
Recently due to some changes to vcpkg the CI was failing to work with VS2017 using cached vcpkg. This is however fixed if we update the vcpkg. To prevent this from happening in future I am adding the upgrade to vcpkg as a pre-step for building our code.
Fix for Appveyor CI Failures
fix macro for MSVC adding noexcept fixing test and making changes adding comparison test and adding resolving issue changing extents API fixing MSVC errors fixing MSVC error adding static prod function and adding std::array to static extents and static strides fixing get_number_list refactoring meta_function into type_traits and adding staic_traits for static_extents fixing extents_result_type_outer_prod and combining static_functions and functions removing unnecessary code and header file removing unnecessary forward declaration private member resize and adding removed constructors for matrix and vector changing size_t to std::size_t and fixing stride_t adding is_resizable type trait for tensor resizing improve documenting of is_resizable refactoring code changing msvc version in .yml changing toolset msvc-14.1 to msvc-14.16 and adding VSCLCOMPILER changing toolset msvc-14.2 and image to VS 2019 refactoring code and adding new matrix to appveyor adding VS 2019 with msvc-14.1 and disabling VS 2019 with msvc-14.2 and c++2a adding VS 2019 with msvc-14.2 and changing flag to latest removing VS 2019 with msvc-14.2 and c++17 and adding timeout to travis.yml travis_wait workaround removing VS 2017 from appveyor and refactoring code adding clang support for c++17 and c++20 and refactoring code changing dist to bionic and adding source link to clang 10 fixing travis, bugs and adding new examples fixing example bugs for msvc updating licence and adding test_expression to jamfile adding new tests, refactoring code and fixing bugs fix for msvc c++20 fixing memory problem due to BOOST_AUTO_TEST_SUITE macro defining after fixture removing const from tests and enabling test_tensor.cpp removing const from test_fixed_rank_expression_evaluation.cpp fixing msvc bug fixing msvc-14.2 bug for c++ latest where it cannot properly capture variables in lambda func disintegrating tests into smaller units reducing test_types for testing reducing tests reducing test_types for testing in operator arithmetic improving msvc warinings and separating test_function.cpp into it's own module
Addition of static extents and static strides
* decomposing tensor class into seperate modules according to the extents type * stabilizing and updating test. Adding support for the operations b/w different types of tensor * updating examples * changing tabs to spaces * added constexpr, removed resize from tensor and changed the array_type to container_type * changing tag names and refactoring code * adding and updating examples * adding new line at the end of file * refactoring code, fixing bugs and adding few new examples * refactoring examples * fixing gcc-7 issue where it is unable to use deduction guide when initilized * adding constexpr and inline * adding noexcept * adding is_static_rank_v * removing extents.hpp and decoupling test_extents and test_strides * refactoring code and adding constexpr with [[nodiscard]] to the functions * refactoring code. * adding missing iterator header * changing helper function name
std::allocator<T>::construct/destroy were deprecated in C++17 and removed in C++20, in favor of std::allocator_traits<T>::construct/destroy. (https://en.cppreference.com/w/cpp/memory/allocator_traits/construct). They are gone in gcc10. This fix switches to the the latter for C++17 and greater.
* GSoC Phase 1: Enhance CI workflows and switch to Github Actions More details of the work of this phase could be checked at my wiki https://github.com/BoostGSoC20/ublas/wiki * Tensor tests use Github Actions Old uBLAS will only use Travis and Appveyor from old legacy CI while Tensor is now build using modern Github Action on wide array of compiler and standards and codes. * Add Copyright notice and refactor windows matrix
Branch coverage needs to be explicitly enabled and is not the defaault configuration of lcov. It is better to disable branch coverage because then we will have only 2 things for each line in coverage report. Either a line is hit or a miss. This is even the defaault behaviour of llvm-cov for coverage reporting. For reference check [this](https://codecov.io/gh/tzlaine/text/tree/master/boost/text) Zach's Library for Unicode which recently got partially approved for Boost. This library also uses default coverage settings. **After this commit coverage will be 95%**
Outside repositories do not have permission to post review comments on ublas repository. It fails to review and CI fails. This issue has been fixed. Reviews are only run if a PR originates from our the ublas repository.
std::iterator was deprecated in C++17 and removed in C++20. I replaced the inheritance with the 5 equivalent typedefs, even though they're not all used by ublas, for compatibility in case clients depend on them.
Ignore documentation and markdown changes for CI
) * improving the tensor design using tensor engine to support any configuration * fixing and refactoring extents and strides * making extents and strides class declarations contestants * syncing with develop branch * fixing examples * fixing type aliasing bug * fixing clang-tidy errors * adding move assignment operator * fixing clang-tidy errors * fixing clang-tidy errors * Fix all clang-tidy warnings & Improve Review action (#92) * Fix all clang-tidy warnings * Update clangtidy_check.yml * Do not run review for PR from forks In order to run review from forks we need to create a Github bot that has full access to all forks and can perform review even from forks. * Update clangtidy_review.yml * Update clangtidy_review.yml * improving the tensor design using tensor engine to support any configuration * fixing and refactoring extents and strides * making extents and strides class declarations contestants * fixing examples * fixing type aliasing bug * fixing clang-tidy errors * adding move assignment operator * fixing clang-tidy errors * fixing clang-tidy errors * Fix all clang-tidy warnings & Improve Review action (#92) * Fix all clang-tidy warnings * Update clangtidy_check.yml * Do not run review for PR from forks In order to run review from forks we need to create a Github bot that has full access to all forks and can perform review even from forks. * Update clangtidy_review.yml * Update clangtidy_review.yml * changing tensor engine APIs * adding std::enable_if to tensor_core to remove redundant parameter for static_tensor * fixing template name * removing first_order and last_order form namespace ublas and moving to ublas::layout * removing always_false * improving strides construction for dynamic and fixed_rank * refactoring code * refactoring code and adding static checks * Moving tensor_engine to it's own header file and removing static_product * adding checking and fixing expression * refactoring code * refactoring static_extents_traits.hpp * fixing static_assert in strides.hpp and adding inline and constexpr to the functions * adding fixed rank example and making trans second argument template type * removing rebind_storage and adding rebind_storage_size for static products * refactoring directory and moving static_extents_traits.hpp into extents_functions.hpp with function implementation * fixing github action * fixing msvc compiler bug * refactoring make_static_strides code * fixing: removing push_front and push_back in static_strides.hpp * fix for msvc 14.27, it is unable to treat basic_static_extents::at constexpr * changing name from valid to is_valid for naming consistency * moving extents_result_type_* functions inside the respective prod functions * fixing broken license * removing the unnecessary headers * improving error and fixing error messages Co-authored-by: Ashar <coder3101@users.noreply.github.com>
* [skip ci] Add "cxxstd" json field. The "cxxstd" json field is being added to each Boost library's meta json information for libraries in order to specify the minumum C++ standard compilation level. The value of this field matches one of the values for 'cxxstd' in Boost.Build. The purpose of doing this is to provide information for the Boost website documentation for each library which will specify the minimum C++ standard compilation that an end-user must employ in order to use the particular library. This will aid end-users who want to know if they can successfully use a Boost library based on their C++ compiler's compilation level, without having to search the library's documentation to find this out. * Updated the minimum C++ standard requirement to C++11 based on the Ublas Wiki section mentioning C++11 as a prerequisite.
Auxiliary functions for extents and strides were using different functions. Additionally, many tags were used to distinguish between different tensor types. This patch simplifies interfaces of different core functions and unifies functions that can process different types of extent and stride types.
This is GSoC 2021 project of Shikhar Vashistha who copied existing uBlas documentation and used AsciiDoc for formatting.
Unit tests have been revamped in order to improve maintainability and readability. Many of them have been split into smaller tests. Missing tests for various tensor types and extents have been added. This will simply the addition of new tests for various tensor types and instances.
GitHub Action is sunsetting the macOS 10.15 Actions runner. It will stop working intermittently until being completely removed by 2022-8-30: https://github.blog/changelog/2022-07-20-github-actions-the-macos-10-15-actions-runner-image-is-being-deprecated-and-will-be-removed-by-8-30-22
Boost.StaticAssert has been merged into Boost.Config, so remove the dependency.
|
@stefanseefeld could you review this PR ? I will ask @mloskot to review it too. The failing Static Analysis check is unrelated to this PR: post_review.py gets a 406 from the GitHub API because the diff is too large to serve, and that step is skipped on push events, so master will be green after the merge. Could we merge as is? |
stefanseefeld
left a comment
There was a problem hiding this comment.
This all looks good. (I'm not convinced we need to go through PRs to merge the develop branch back to master, given that everything that went into the develop branch was already reviewed.
|
@stefanseefeld thank you ! ❤️ |
|
As no-one else with approval rights showed up, I changed the repo settings to allow admins to bypass the regular rules, so I could merge the accumulated improvements (from the last 7 years !) to |
|
@stefanseefeld you are amazing, many thanks 🤩 ! |
No description provided.