Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: c0nstexpr/stdsharp
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.6.1
Choose a base ref
...
head repository: c0nstexpr/stdsharp
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Loading
Showing with 10,625 additions and 8,615 deletions.
  1. +28 −2 .clang-format
  2. +213 −8 .clang-tidy
  3. +6 −8 .github/actions/apt-fetch-clang/action.yml
  4. +3 −3 .github/actions/cmake-build-and-test/action.yml
  5. +3 −4 .github/actions/update-msvc/action.yml
  6. +10 −0 .github/actions/update-msvc/update-vs.ps1
  7. +8 −0 .github/dependabot.yml
  8. +11 −7 .github/workflows/build-and-test.yml
  9. +41 −0 .github/workflows/release.yml
  10. +2 −1 .gitignore
  11. +35 −32 CMakeLists.txt
  12. +8 −8 README.md
  13. +346 −274 cmake/Utils.cmake
  14. +2 −1 cmake/vcpkg/triplets/community/x64-linux-clang-dynamic.cmake
  15. +2 −1 cmake/vcpkg/triplets/community/x64-linux-clang.cmake
  16. +119 −93 include/stdsharp/algorithm/algorithm.h
  17. +11 −12 include/stdsharp/array/array.h
  18. +124 −0 include/stdsharp/bitset/bitset.h
  19. +22 −16 include/stdsharp/cassert/cassert.h
  20. +4 −2 include/stdsharp/cmath/cmath.h
  21. +20 −2 include/stdsharp/compare/compare.h
  22. +9 −13 include/stdsharp/compilation_config_in.h
  23. +11 −9 include/stdsharp/compilation_config_out.h
  24. +2 −392 include/stdsharp/concepts/concepts.h
  25. +260 −0 include/stdsharp/concepts/object.h
  26. +128 −0 include/stdsharp/concepts/type.h
  27. +0 −237 include/stdsharp/concurrent_object.h
  28. +190 −233 include/stdsharp/containers/actions.h
  29. +498 −665 include/stdsharp/containers/concepts.h
  30. +2 −1 include/stdsharp/containers/containers.h
  31. +87 −29 include/stdsharp/cstdint/cstdint.h
  32. +94 −88 include/stdsharp/default_operator.h
  33. +5 −9 include/stdsharp/enumeration.h
  34. +17 −45 include/stdsharp/exception/exception.h
  35. +11 −655 include/stdsharp/filesystem/filesystem.h
  36. +371 −0 include/stdsharp/filesystem/space_size.h
  37. +326 −167 include/stdsharp/format/format.h
  38. +28 −30 include/stdsharp/fstream/fstream.h
  39. +44 −0 include/stdsharp/functional/always_return.h
  40. +0 −81 include/stdsharp/functional/bind.h
  41. +31 −0 include/stdsharp/functional/bind_front.h
  42. +61 −77 include/stdsharp/functional/compose.h
  43. +35 −0 include/stdsharp/functional/conditional_invoke.h
  44. +171 −0 include/stdsharp/functional/forward_bind.h
  45. +14 −3 include/stdsharp/functional/functional.h
  46. +69 −143 include/stdsharp/functional/invocables.h
  47. +7 −84 include/stdsharp/functional/invoke.h
  48. +31 −0 include/stdsharp/functional/invoke_r.h
  49. +26 −0 include/stdsharp/functional/nodiscard_invocable.h
  50. +92 −84 include/stdsharp/functional/operations.h
  51. +11 −0 include/stdsharp/functional/optional_invoke.h
  52. +52 −57 include/stdsharp/functional/pipeable.h
  53. +29 −0 include/stdsharp/functional/project_invoke.h
  54. +98 −0 include/stdsharp/functional/sequenced_invocables.h
  55. +0 −78 include/stdsharp/functional/symmetric_operations.h
  56. +96 −0 include/stdsharp/iterator/basic_iterator.h
  57. +12 −21 include/stdsharp/iterator/iterator.h
  58. +187 −0 include/stdsharp/lazy.h
  59. +1 −1 include/stdsharp/macros.h
  60. +46 −0 include/stdsharp/memory/aligned.h
  61. +192 −0 include/stdsharp/memory/allocation.h
  62. +185 −0 include/stdsharp/memory/allocation_traits.h
  63. +276 −0 include/stdsharp/memory/allocation_value.h
  64. +0 −589 include/stdsharp/memory/allocator_aware.h
  65. +10 −9 include/stdsharp/memory/allocator_reference.h
  66. +391 −296 include/stdsharp/memory/allocator_traits.h
  67. +602 −0 include/stdsharp/memory/box.h
  68. +109 −92 include/stdsharp/memory/composed_allocator.h
  69. +136 −0 include/stdsharp/memory/fixed_single_allocator.h
  70. +103 −0 include/stdsharp/memory/launder_iterator.h
  71. +12 −2 include/stdsharp/memory/memory.h
  72. +0 −526 include/stdsharp/memory/object_allocation.h
  73. +256 −93 include/stdsharp/memory/pointer_traits.h
  74. +0 −75 include/stdsharp/memory/small_object_optimization.h
  75. +36 −0 include/stdsharp/memory/soo.h
  76. +0 −79 include/stdsharp/memory/static_allocator.h
  77. +0 −151 include/stdsharp/memory/static_memory_resource.h
  78. +28 −33 include/stdsharp/mutex/mutex.h
  79. +32 −0 include/stdsharp/namespace_alias.h
  80. +38 −46 include/stdsharp/pattern_match.h
  81. +216 −3 include/stdsharp/random/random.h
  82. +123 −19 include/stdsharp/ranges/ranges.h
  83. +0 −90 include/stdsharp/reflection/reflection.h
  84. +11 −10 include/stdsharp/scope.h
  85. +103 −0 include/stdsharp/synchronizer.h
  86. +61 −0 include/stdsharp/tuple/get.h
  87. +5 −0 include/stdsharp/tuple/tuple.h
  88. +0 −505 include/stdsharp/type_traits/core_traits.h
  89. +62 −0 include/stdsharp/type_traits/details/seq_traits.h
  90. +28 −0 include/stdsharp/type_traits/expression.h
  91. +0 −58 include/stdsharp/type_traits/function.h
  92. +76 −242 include/stdsharp/type_traits/indexed_traits.h
  93. +51 −0 include/stdsharp/type_traits/ltr.h
  94. +0 −99 include/stdsharp/type_traits/member.h
  95. +186 −28 include/stdsharp/type_traits/object.h
  96. +31 −0 include/stdsharp/type_traits/regular_type_sequence.h
  97. +98 −0 include/stdsharp/type_traits/regular_value_sequence.h
  98. +0 −146 include/stdsharp/type_traits/special_member.h
  99. +422 −0 include/stdsharp/type_traits/type.h
  100. +159 −98 include/stdsharp/type_traits/type_sequence.h
  101. +7 −3 include/stdsharp/type_traits/type_traits.h
  102. +351 −321 include/stdsharp/type_traits/value_sequence.h
  103. +50 −7 include/stdsharp/utility/adl_proof.h
  104. +4 −3 include/stdsharp/utility/auto_cast.h
  105. +4 −29 include/stdsharp/utility/cast_to.h
  106. +5 −13 include/stdsharp/utility/constructor.h
  107. +141 −0 include/stdsharp/utility/dispatcher.h
  108. +74 −0 include/stdsharp/utility/forward_cast.h
  109. +0 −88 include/stdsharp/utility/implement_dispatcher.h
  110. +0 −79 include/stdsharp/utility/invocable.h
  111. +26 −0 include/stdsharp/utility/to_lvalue.h
  112. +24 −17 include/stdsharp/utility/utility.h
  113. +67 −49 include/stdsharp/utility/value_wrapper.h
  114. +6 −1 tests/.clang-tidy
  115. +59 −47 tests/CMakeLists.txt
  116. +41 −0 tests/include/box.h
  117. +6 −4 tests/include/test.h
  118. +0 −41 tests/include/test_allocator.h
  119. +0 −95 tests/include/test_worst_type.h
  120. +12 −6 tests/src/algorithm/{algorithm_test.cpp → algorithm.cpp}
  121. +22 −0 tests/src/bitset/bitset.cpp
  122. +0 −52 tests/src/concurrent_object_test.cpp
  123. +21 −58 tests/src/containers/{actions_test.cpp → actions.cpp}
  124. +9 −16 tests/src/containers/{concepts_test.cpp → concepts.cpp}
  125. +150 −0 tests/src/default_operator.cpp
  126. +0 −41 tests/src/filesystem/filesystem_test.cpp
  127. +26 −0 tests/src/filesystem/space_size.cpp
  128. +47 −0 tests/src/functional/forward_bind.cpp
  129. +42 −0 tests/src/functional/invocables.cpp
  130. +21 −0 tests/src/functional/pipeable.cpp
  131. +0 −20 tests/src/functional/pipeable_test.cpp
  132. +22 −0 tests/src/functional/sequenced_invocables.cpp
  133. +0 −31 tests/src/functional/symmetric_operations_test.cpp
  134. +32 −0 tests/src/lazy.cpp
  135. +145 −0 tests/src/memory/allocation_value.cpp
  136. +88 −0 tests/src/memory/box.cpp
  137. +82 −0 tests/src/memory/composed_allocator.cpp
  138. +0 −47 tests/src/memory/composed_allocator_test.cpp
  139. +67 −0 tests/src/memory/fixed_single_allocator.cpp
  140. +9 −0 tests/src/memory/launder_iterator.cpp
  141. +0 −38 tests/src/memory/object_allocation_test.cpp
  142. +74 −0 tests/src/memory/pointer_traits.cpp
  143. +0 −23 tests/src/memory/small_object_optimization_test.cpp
  144. +34 −0 tests/src/memory/soo.cpp
  145. +0 −133 tests/src/memory/static_allocator_test.cpp
  146. +6 −9 tests/src/{pattern_match_test.cpp → pattern_match.cpp}
  147. +27 −0 tests/src/random/random.cpp
  148. +39 −0 tests/src/synchronizer.cpp
  149. +41 −0 tests/src/type_traits/indexed_traits.cpp
  150. +35 −0 tests/src/type_traits/member.cpp
  151. +0 −47 tests/src/type_traits/member_test.cpp
  152. +52 −74 tests/src/type_traits/{type_sequence_test.cpp → type_sequence.cpp}
  153. +267 −0 tests/src/type_traits/value_sequence.cpp
  154. +0 −252 tests/src/type_traits/value_sequence_test.cpp
  155. +27 −0 tests/src/utility/adl_proof.cpp
  156. +34 −0 tests/src/utility/dispatcher.cpp
  157. +69 −0 tests/src/utility/forward_cast.cpp
  158. +2 −5 tests/src/utility/{utility_test.cpp → utility.cpp}
  159. +49 −0 tests/src/utility/value_wrapper.cpp
  160. +1 −1 vcpkg.json
30 changes: 28 additions & 2 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -10,7 +10,9 @@ AlignOperands: DontAlign
AlignTrailingComments: false
AllowAllArgumentsOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowBreakBeforeNoexceptSpecifier: OnlyWithParen
AllowShortBlocksOnASingleLine: Always
AllowShortCompoundRequirementOnASingleLine: true
AllowShortCaseLabelsOnASingleLine: true
AllowShortIfStatementsOnASingleLine: AllIfsAndElse
AllowShortLoopsOnASingleLine: true
@@ -25,6 +27,20 @@ ColumnLimit: 100
ConstructorInitializerAllOnOneLineOrOnePerLine: true
EmptyLineBeforeAccessModifier: Always
FixNamespaceComments: false
IncludeBlocks: Regroup
IncludeCategories:
- Regex: "(../)*compilation_config_in.h"
SortPriority: 99
Priority: 99
- Regex: '".+"'
SortPriority: 0
Priority: 0
- Regex: "<(experimental\/)?[^\/.]+>"
SortPriority: 2
Priority: 2
- Regex: "<.+>"
SortPriority: 1
Priority: 1
IndentGotoLabels: false
IndentPPDirectives: BeforeHash
IndentWidth: 4
@@ -33,11 +49,21 @@ KeepEmptyLinesAtTheStartOfBlocks: false
MaxEmptyLinesToKeep: 2
NamespaceIndentation: All
PackConstructorInitializers: NextLine
PenaltyBreakFirstLessLess: 3
PenaltyBreakAssignment: 20
PenaltyBreakBeforeFirstCallParameter: 10
PenaltyBreakComment: 0
PenaltyBreakFirstLessLess: 0
PenaltyBreakOpenParenthesis: 10
PenaltyBreakScopeResolution: 30
PenaltyBreakString: 100
PenaltyBreakTemplateDeclaration: 0
PenaltyExcessCharacter: 1000
PenaltyIndentedWhitespace: 0
PenaltyReturnTypeOnItsOwnLine: 50
PointerAlignment: Left
QualifierAlignment: Left
SeparateDefinitionBlocks: Always
SortIncludes: false
SortIncludes: CaseSensitive
SortUsingDeclarations: false
SpaceAfterTemplateKeyword: false
SpaceBeforeCtorInitializerColon: false
221 changes: 213 additions & 8 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -1,9 +1,214 @@
---
Checks: \
"boost-*,bugprone-*,cert-*,concurrency-*,cppcoreguidelines-*,hicpp-*,misc-*,modernize-*,performance-*,portability-*,readability-*,clang-analyzer-*,
-*-logical-op-parentheses,-*-dangling-else,-*-use-trailing-return-type,-*-named-parameter,-*-braces-around-statements,-*-misleading-indentation,-*-macro-usage,-*-non-private-member-variables-in-classes,-*-macro-parentheses,-*-forwarding-reference-overload,-*-pro-type-union-access,-*-identifier-length,-*-explicit-conversions,-*-c-copy-assignment-signature,-*-unconventional-assign-operator,-*-uppercase-literal-suffix,-*-qualified-auto,-*-pro-bounds-constant-array-index,-*-exception-escape,-*-const-or-ref-data-members,-cert-dcl21-cpp
-cert-dcl51-cpp,-cert-dcl37-c,-*-identifier-naming,-*-confusable-identifiers,-*-reserved-identifier,
-bugprone-narrowing-conversions,-cert-con36-c,-cert-con54-cpp,-cert-dcl03-c,-cert-dcl16-c,-cert-dcl37-c,-cert-dcl51-cpp,-cert-dcl54-cpp,-cert-dcl59-cpp,-cert-err09-cpp,-cert-err61-cpp,-cert-exp42-c,-cert-fio38-c,-cert-flp37-c,-cert-msc24-c,-cert-msc30-c,-cert-msc32-c,-cert-msc33-c,-cert-msc54-cpp,-cert-oop11-cpp,-cert-oop54-cpp,-cert-pos44-c,-cert-pos47-c,-cert-sig30-c,-cert-str34-c,-clang-analyzer-core.CallAndMessage,-clang-analyzer-core.DivideZero,-clang-analyzer-core.NonNullParamChecker,-clang-analyzer-core.NullDereference,-clang-analyzer-core.StackAddressEscape,-clang-analyzer-core.UndefinedBinaryOperatorResult,-clang-analyzer-core.VLASize,-clang-analyzer-core.uninitialized.ArraySubscript,-clang-analyzer-core.uninitialized.Assign,-clang-analyzer-core.uninitialized.Branch,-clang-analyzer-core.uninitialized.UndefReturn,-clang-analyzer-cplusplus.Move,-clang-analyzer-cplusplus.NewDelete,-clang-analyzer-cplusplus.NewDeleteLeaks,-clang-analyzer-deadcode.DeadStores,-clang-analyzer-nullability.NullPassedToNonnull,-clang-analyzer-nullability.NullReturnedFromNonnull,-clang-analyzer-nullability.NullableDereferenced,-clang-analyzer-nullability.NullablePassedToNonnull,-clang-analyzer-optin.cplusplus.UninitializedObject,-clang-analyzer-optin.cplusplus.VirtualCall,-clang-analyzer-optin.mpi.MPI-Checker,-clang-analyzer-optin.osx.cocoa.localizability.EmptyLocalizationContextChecker,-clang-analyzer-optin.osx.cocoa.localizability.NonLocalizedStringChecker,-clang-analyzer-osx.API,-clang-analyzer-osx.SecKeychainAPI,-clang-analyzer-osx.cocoa.AtSync,-clang-analyzer-osx.cocoa.ClassRelease,-clang-analyzer-osx.cocoa.Dealloc,-clang-analyzer-osx.cocoa.IncompatibleMethodTypes,-clang-analyzer-osx.cocoa.NSAutoreleasePool,-clang-analyzer-osx.cocoa.NSError,-clang-analyzer-osx.cocoa.NilArg,-clang-analyzer-osx.cocoa.ObjCGenerics,-clang-analyzer-osx.cocoa.RetainCount,-clang-analyzer-osx.cocoa.SelfInit,-clang-analyzer-osx.cocoa.SuperDealloc,-clang-analyzer-osx.cocoa.UnusedIvars,-clang-analyzer-osx.cocoa.VariadicMethodTypes,-clang-analyzer-osx.coreFoundation.CFError,-clang-analyzer-osx.coreFoundation.CFNumber,-clang-analyzer-osx.coreFoundation.CFRetainRelease,-clang-analyzer-osx.coreFoundation.containers.OutOfBounds,-clang-analyzer-osx.coreFoundation.containers.PointerSizedValues,-clang-analyzer-security.FloatLoopCounter,-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,-clang-analyzer-security.insecureAPI.UncheckedReturn,-clang-analyzer-security.insecureAPI.bcmp,-clang-analyzer-security.insecureAPI.bcopy,-clang-analyzer-security.insecureAPI.bzero,-clang-analyzer-security.insecureAPI.getpw,-clang-analyzer-security.insecureAPI.gets,-clang-analyzer-security.insecureAPI.mkstemp,-clang-analyzer-security.insecureAPI.mktemp,-clang-analyzer-security.insecureAPI.rand,-clang-analyzer-security.insecureAPI.strcpy,-clang-analyzer-security.insecureAPI.vfork,-clang-analyzer-unix.API,-clang-analyzer-unix.Malloc,-clang-analyzer-unix.MallocSizeof,-clang-analyzer-unix.MismatchedDeallocator,-clang-analyzer-unix.Vfork,-clang-analyzer-unix.cstring.BadSizeArg,-clang-analyzer-unix.cstring.NullArg,-cppcoreguidelines-avoid-c-arrays,-cppcoreguidelines-avoid-magic-numbers,-cppcoreguidelines-c-copy-assignment-signature,-cppcoreguidelines-explicit-virtual-functions,-cppcoreguidelines-macro-to-enum,-cppcoreguidelines-non-private-member-variables-in-classes,-cppcoreguidelines-use-default-member-init,-fuchsia-header-anon-namespaces,-google-readability-braces-around-statements,-google-readability-function-size,-google-readability-namespace-comments,-hicpp-avoid-c-arrays,-hicpp-braces-around-statements,-hicpp-deprecated-headers,-hicpp-explicit-conversions,-hicpp-function-size,-hicpp-invalid-access-moved,-hicpp-member-init,-hicpp-move-const-arg,-hicpp-named-parameter,-hicpp-new-delete-operators,-hicpp-no-array-decay,-hicpp-no-malloc,-hicpp-noexcept-move,-hicpp-special-member-functions,-hicpp-static-assert,-hicpp-undelegated-constructor,-hicpp-uppercase-literal-suffix,-hicpp-use-auto,-hicpp-use-emplace,-hicpp-use-equals-default,-hicpp-use-equals-delete,-hicpp-use-noexcept,-hicpp-use-nullptr,-hicpp-use-override,-hicpp-vararg,-llvm-else-after-return,-llvm-qualified-auto"
WarningsAsErrors: "*"
FormatStyle: "file"
HeaderFilterRegex: "(include/)|(src/)"
Checks: # enabled
- 'bugprone-*,
cert-*,
clang-analyzer-*,
concurrency-*,
cppcoreguidelines-*,
hicpp-*,
misc-*,
modernize-*,
performance-*,
portability-*,
readability-*,'
# disabled useless checks
- '-*-logical-op-parentheses,
-*-dangling-else,
-*-use-trailing-return-type,
-*-braces-around-statements,
-*-misleading-indentation,
-*-macro-usage,
-*-non-private-member-variables-in-classes,
-*-macro-parentheses,
-*-forwarding-reference-overload,
-*-pro-type-union-access,
-*-identifier-length,
-*-explicit-conversions,
-*-unconventional-assign-operator,
-*-uppercase-literal-suffix,
-*-qualified-auto,
-*-pro-bounds-constant-array-index,
-*-exception-escape,
-*-const-or-ref-data-members,
-cert-dcl21-cpp,
-*-missing-std-forward,
-*-rvalue-reference-param-not-moved,
-*-include-cleaner,
-*-swappable-parameters,
-*-reserved-identifier,
-cert-dcl58-cpp,
-*-avoid-nested-conditional-operator,
-*-inc-dec-in-conditions,
-*-pointer-arithmetic'
# disabled alias
- '-bugprone-narrowing-conversions,
-cert-con36-c,
-cert-con54-cpp,
-cert-dcl03-c,
-cert-dcl16-c,
-cert-dcl37-c,
-cert-dcl51-cpp,
-cert-dcl54-cpp,
-cert-dcl59-cpp,
-cert-err09-cpp,
-cert-err61-cpp,
-cert-exp42-c,
-cert-fio38-c,
-cert-flp37-c,
-cert-msc24-c,
-cert-msc30-c,
-cert-msc32-c,
-cert-msc33-c,
-cert-msc54-cpp,
-cert-oop11-cpp,
-cert-oop54-cpp,
-cert-pos44-c,
-cert-pos47-c,
-cert-sig30-c,
-cert-str34-c,
-clang-analyzer-core.BitwiseShift,
-clang-analyzer-core.CallAndMessage,
-clang-analyzer-core.DivideZero,
-clang-analyzer-core.NonNullParamChecker,
-clang-analyzer-core.NullDereference,
-clang-analyzer-core.StackAddressEscape,
-clang-analyzer-core.UndefinedBinaryOperatorResult,
-clang-analyzer-core.VLASize,
-clang-analyzer-core.uninitialized.ArraySubscript,
-clang-analyzer-core.uninitialized.Assign,
-clang-analyzer-core.uninitialized.Branch,
-clang-analyzer-core.uninitialized.CapturedBlockVariable,
-clang-analyzer-core.uninitialized.NewArraySize,
-clang-analyzer-core.uninitialized.UndefReturn,
-clang-analyzer-cplusplus.InnerPointer,
-clang-analyzer-cplusplus.Move,
-clang-analyzer-cplusplus.NewDelete,
-clang-analyzer-cplusplus.NewDeleteLeaks,
-clang-analyzer-cplusplus.PlacementNew,
-clang-analyzer-cplusplus.PureVirtualCall,
-clang-analyzer-cplusplus.StringChecker,
-clang-analyzer-deadcode.DeadStores,
-clang-analyzer-fuchsia.HandleChecker,
-clang-analyzer-nullability.NullPassedToNonnull,
-clang-analyzer-nullability.NullReturnedFromNonnull,
-clang-analyzer-nullability.NullableDereferenced,
-clang-analyzer-nullability.NullablePassedToNonnull,
-clang-analyzer-nullability.NullableReturnedFromNonnull,
-clang-analyzer-optin.core.EnumCastOutOfRange,
-clang-analyzer-optin.cplusplus.UninitializedObject,
-clang-analyzer-optin.cplusplus.VirtualCall,
-clang-analyzer-optin.mpi.MPI-Checker,
-clang-analyzer-optin.osx.OSObjectCStyleCast,
-clang-analyzer-optin.osx.cocoa.localizability.EmptyLocalizationContextChecker,
-clang-analyzer-optin.osx.cocoa.localizability.NonLocalizedStringChecker,
-clang-analyzer-optin.performance.GCDAntipattern,
-clang-analyzer-optin.performance.Padding,
-clang-analyzer-optin.portability.UnixAPI,
-clang-analyzer-osx.API,
-clang-analyzer-osx.MIG,
-clang-analyzer-osx.NumberObjectConversion,
-clang-analyzer-osx.OSObjectRetainCount,
-clang-analyzer-osx.ObjCProperty,
-clang-analyzer-osx.SecKeychainAPI,
-clang-analyzer-osx.cocoa.AtSync,
-clang-analyzer-osx.cocoa.AutoreleaseWrite,
-clang-analyzer-osx.cocoa.ClassRelease,
-clang-analyzer-osx.cocoa.Dealloc,
-clang-analyzer-osx.cocoa.IncompatibleMethodTypes,
-clang-analyzer-osx.cocoa.Loops,
-clang-analyzer-osx.cocoa.MissingSuperCall,
-clang-analyzer-osx.cocoa.NSAutoreleasePool,
-clang-analyzer-osx.cocoa.NSError,
-clang-analyzer-osx.cocoa.NilArg,
-clang-analyzer-osx.cocoa.NonNilReturnValue,
-clang-analyzer-osx.cocoa.ObjCGenerics,
-clang-analyzer-osx.cocoa.RetainCount,
-clang-analyzer-osx.cocoa.RunLoopAutoreleaseLeak,
-clang-analyzer-osx.cocoa.SelfInit,
-clang-analyzer-osx.cocoa.SuperDealloc,
-clang-analyzer-osx.cocoa.UnusedIvars,
-clang-analyzer-osx.cocoa.VariadicMethodTypes,
-clang-analyzer-osx.coreFoundation.CFError,
-clang-analyzer-osx.coreFoundation.CFNumber,
-clang-analyzer-osx.coreFoundation.CFRetainRelease,
-clang-analyzer-osx.coreFoundation.containers.OutOfBounds,
-clang-analyzer-osx.coreFoundation.containers.PointerSizedValues,
-clang-analyzer-security.FloatLoopCounter,
-clang-analyzer-security.cert.env.InvalidPtr,
-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,
-clang-analyzer-security.insecureAPI.UncheckedReturn,
-clang-analyzer-security.insecureAPI.bcmp,
-clang-analyzer-security.insecureAPI.bcopy,
-clang-analyzer-security.insecureAPI.bzero,
-clang-analyzer-security.insecureAPI.decodeValueOfObjCType,
-clang-analyzer-security.insecureAPI.getpw,
-clang-analyzer-security.insecureAPI.gets,
-clang-analyzer-security.insecureAPI.mkstemp,
-clang-analyzer-security.insecureAPI.mktemp,
-clang-analyzer-security.insecureAPI.rand,
-clang-analyzer-security.insecureAPI.strcpy,
-clang-analyzer-security.insecureAPI.vfork,
-clang-analyzer-unix.API,
-clang-analyzer-unix.Errno,
-clang-analyzer-unix.Malloc,
-clang-analyzer-unix.MallocSizeof,
-clang-analyzer-unix.MismatchedDeallocator,
-clang-analyzer-unix.StdCLibraryFunctions,
-clang-analyzer-unix.Vfork,
-clang-analyzer-unix.cstring.BadSizeArg,
-clang-analyzer-unix.cstring.NullArg,
-clang-analyzer-valist.CopyToSelf,
-clang-analyzer-valist.Uninitialized,
-clang-analyzer-valist.Unterminated,
-clang-analyzer-webkit.NoUncountedMemberChecker,
-clang-analyzer-webkit.RefCntblBaseVirtualDtor,
-clang-analyzer-webkit.UncountedLambdaCapturesChecker,
-cppcoreguidelines-avoid-c-arrays,
-cppcoreguidelines-avoid-magic-numbers,
-cppcoreguidelines-c-copy-assignment-signature,
-cppcoreguidelines-explicit-virtual-functions,
-cppcoreguidelines-macro-to-enum,
-cppcoreguidelines-noexcept-destructor,
-cppcoreguidelines-noexcept-move-operations,
-cppcoreguidelines-noexcept-swap,
-cppcoreguidelines-non-private-member-variables-in-classes,
-cppcoreguidelines-use-default-member-init,
-fuchsia-header-anon-namespaces,
-google-readability-braces-around-statements,
-google-readability-function-size,
-google-readability-namespace-comments,
-hicpp-avoid-c-arrays,
-hicpp-avoid-goto,
-hicpp-braces-around-statements,
-hicpp-deprecated-headers,
-hicpp-explicit-conversions,
-hicpp-function-size,
-hicpp-invalid-access-moved,
-hicpp-member-init,
-hicpp-move-const-arg,
-hicpp-named-parameter,
-hicpp-new-delete-operators,
-hicpp-no-array-decay,
-hicpp-no-malloc,
-hicpp-noexcept-move,
-hicpp-special-member-functions,
-hicpp-static-assert,
-hicpp-undelegated-constructor,
-hicpp-uppercase-literal-suffix,
-hicpp-use-auto,
-hicpp-use-emplace,
-hicpp-use-equals-default,
-hicpp-use-equals-delete,
-hicpp-use-noexcept,
-hicpp-use-nullptr,
-hicpp-use-override,
-hicpp-vararg,
-llvm-else-after-return,
-llvm-qualified-auto'
WarningsAsErrors: '*'
FormatStyle: 'file'
HeaderFilterRegex: '(include/)|(src/)'
CheckOptions:
misc-const-correctness.WarnPointersAsValues : true
misc-const-correctness.TransformValues : false
misc-const-correctness.TransformReferences : false
14 changes: 6 additions & 8 deletions .github/actions/apt-fetch-clang/action.yml
Original file line number Diff line number Diff line change
@@ -2,25 +2,21 @@ name: Fetch Clang toolchain on Linux

inputs:
llvm-ver:
required: false
default: 16
required: true
runs:
using: composite

steps:
- run: curl -s https://apt.llvm.org/llvm.sh | sudo bash -s ${{ inputs.llvm-ver }};
shell: bash

- uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: clang-tidy-${{ inputs.llvm-ver }} libc++-${{ inputs.llvm-ver }}-dev libc++abi-${{ inputs.llvm-ver }}-dev clang-${{ inputs.llvm-ver }} llvm-${{ inputs.llvm-ver }} lld-${{ inputs.llvm-ver }}
version: ${{ inputs.llvm-ver }}

- run: |
sudo apt-get install llvm-${{ inputs.llvm-ver }} clang-tidy-${{ inputs.llvm-ver }} libc++-${{ inputs.llvm-ver }}-dev libc++abi-${{ inputs.llvm-ver }}-dev;
sudo apt-get install llvm-${{ inputs.llvm-ver }} clang-tidy-${{ inputs.llvm-ver }} clang-format-${{ inputs.llvm-ver }} libc++-${{ inputs.llvm-ver }}-dev libc++abi-${{ inputs.llvm-ver }}-dev clangd-${{ inputs.llvm-ver }};
sudo update-alternatives --remove-all clang || true;
sudo update-alternatives --remove-all clang++ || true;
sudo update-alternatives --remove-all clang-tidy || true;
sudo update-alternatives --remove-all clang-format || true;
sudo update-alternatives --remove-all clangd || true;
sudo update-alternatives --remove-all llvm-cov || true;
sudo update-alternatives --remove-all llvm-profdata || true;
sudo update-alternatives --remove-all ld.lld || true;
@@ -29,6 +25,8 @@ runs:
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${{ inputs.llvm-ver }} 1000;
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${{ inputs.llvm-ver }} 1000;
sudo update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-${{ inputs.llvm-ver }} 1000;
sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-${{ inputs.llvm-ver }} 1000;
sudo update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-${{ inputs.llvm-ver }} 1000;
sudo update-alternatives --install /usr/bin/llvm-cov llvm-cov /usr/bin/llvm-cov-${{ inputs.llvm-ver }} 1000;
sudo update-alternatives --install /usr/bin/llvm-profdata llvm-profdata /usr/bin/llvm-profdata-${{ inputs.llvm-ver }} 1000;
sudo update-alternatives --install /usr/bin/ld.lld ld.lld /usr/bin/ld.lld-${{ inputs.llvm-ver }} 1000;
6 changes: 3 additions & 3 deletions .github/actions/cmake-build-and-test/action.yml
Original file line number Diff line number Diff line change
@@ -34,7 +34,7 @@ runs:
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: 0ccb3d11406922bef1dcc29002f68f633a321f19
vcpkgGitCommitId: 59aeb8fe8fe1c980de6bd5ba634cf21024522d81
vcpkgDirectory: ${{ inputs.vcpkg-root }}
doNotCache: false

@@ -43,10 +43,10 @@ runs:
shell: bash

- name: Install dependencies and generate project files
run: cmake -S "${{ github.workspace }}" -B "${{ inputs.build-dir }}" -DCMAKE_MAKE_PROGRAM=ninja -G Ninja -DCMAKE_TOOLCHAIN_FILE="${{ inputs.vcpkg-root }}/scripts/buildsystems/vcpkg.cmake" -DCMAKE_BUILD_TYPE=${{ inputs.build-type }} ${{ inputs.config-option }}
run: cmake --fresh -S "${{ github.workspace }}" -B "${{ inputs.build-dir }}" -DCMAKE_MAKE_PROGRAM=ninja -G Ninja -DCMAKE_TOOLCHAIN_FILE="${{ inputs.vcpkg-root }}/scripts/buildsystems/vcpkg.cmake" -DCMAKE_BUILD_TYPE=${{ inputs.build-type }} ${{ inputs.config-option }}
shell: bash

- uses: SimenB/github-actions-cpu-cores@v1
- uses: SimenB/github-actions-cpu-cores@v2
id: cpu-cores

- name: Build
7 changes: 3 additions & 4 deletions .github/actions/update-msvc/action.yml
Original file line number Diff line number Diff line change
@@ -4,7 +4,6 @@ runs:
using: composite

steps:
- run: |
dotnet tool update -g dotnet-vs;
vs update all;
shell: pwsh
- run: ./update-vs.ps1
working-directory: ${{ github.action_path }}
shell: pwsh
10 changes: 10 additions & 0 deletions .github/actions/update-msvc/update-vs.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
for($count = 1; $true; $count++)
{
$process = Start-Process -PassThru -Wait -NoNewWindow -FilePath "C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe" -ArgumentList "update --quiet --norestart --force --channelId VisualStudio.17.Release --installpath ""C:\Program Files\Microsoft Visual Studio\2022\Enterprise""";

$exit_code = $process.ExitCode;

if($exit_code -eq 0) { break }

echo "exited with $exit_code, tries count: $count. Retrying..."
}
8 changes: 8 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
version: 2
updates:
# Set update schedule for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
target-branch: "develop"
schedule:
interval: "daily"
Loading