Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
5999272
fix: implement boost.unordered 1.86 compatibility
BurningEnlightenment Jun 8, 2025
eb76ab5
build: fix template url
BurningEnlightenment Jun 7, 2025
3518759
build: update `copier-cpp` template to v0.4.0
BurningEnlightenment Jun 7, 2025
5068135
style: reformat with clang-format version 20
BurningEnlightenment Jun 8, 2025
c3057a2
style: ignore clang v20 reformat commit
BurningEnlightenment Jun 8, 2025
6fa582c
feat: implement ftxui 6.0 compatibility
BurningEnlightenment Jun 8, 2025
4cafb14
fix: workaround clang's unused private member warning
BurningEnlightenment Jun 8, 2025
056a72b
lint: fix `readability-math-missing-parentheses`
BurningEnlightenment Jun 8, 2025
b910fb3
lint: fix `readability-enum-initial-value`
BurningEnlightenment Jun 8, 2025
0bb26fb
lint: fix `readability-qualified-auto`
BurningEnlightenment Jun 8, 2025
c730d0a
lint: fix `bugprone-unused-return-value`
BurningEnlightenment Jun 8, 2025
689e678
lint: fix `bugprone-use-after-move`
BurningEnlightenment Jun 8, 2025
5b63d62
lint: ignore overzealous `cppcoreguidelines-owning-memory`
BurningEnlightenment Jun 8, 2025
b635f29
lint: fix `cppcoreguidelines-noexcept-move-operations`
BurningEnlightenment Jun 8, 2025
c433bbe
lint: fix `modernize-use-integer-sign-comparison`
BurningEnlightenment Jun 8, 2025
d919fed
lint: fix `bugprone-unused-local-non-trivial-variable`
BurningEnlightenment Jun 8, 2025
b60d6b6
lint: fix `readability-redundant-casts`
BurningEnlightenment Jun 8, 2025
b5fa34a
lint: fix `clang-analyzer-cplusplus.Move`
BurningEnlightenment Jun 8, 2025
73b1e3b
feat: ponyfill `std::atomic_ref` on OSX with Boost
BurningEnlightenment Jun 8, 2025
5ef5dde
build: try to avoid cross compiling mode on OSX
BurningEnlightenment Jun 9, 2025
a136ee0
test: jthread isn't supported on OSX yet
BurningEnlightenment Jun 9, 2025
be6fa57
ci: use GCC-14 for macOS to workaround TLS ld bug
BurningEnlightenment Jun 9, 2025
1bca1d3
test: don't use TLS context ungated
BurningEnlightenment Jun 10, 2025
36b6607
build: improve std::atomic_ref check
BurningEnlightenment Jun 10, 2025
5e87663
build: update deeppack to v0.1.0-beta.4
BurningEnlightenment Jun 10, 2025
7df0728
build: disable `std::source_location` for macos-gcc
BurningEnlightenment Jun 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 82 additions & 10 deletions .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -12,24 +12,62 @@ AlignConsecutiveAssignments:
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionDeclarations: false
AlignFunctionPointers: false
PadOperators: true
AlignConsecutiveBitFields:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionDeclarations: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveDeclarations:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionDeclarations: true
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveMacros:
Enabled: true
AcrossEmptyLines: false
AcrossComments: true
AlignCompound: false
AlignFunctionDeclarations: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveShortCaseStatements:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCaseArrows: false
AlignCaseColons: false
AlignConsecutiveTableGenBreakingDAGArgColons:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionDeclarations: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveTableGenCondOperatorColons:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionDeclarations: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveTableGenDefinitionColons:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionDeclarations: false
AlignFunctionPointers: false
PadOperators: false
AlignEscapedNewlines: Right
AlignOperands: Align
Expand All @@ -38,23 +76,27 @@ AlignTrailingComments:
OverEmptyLines: 1
AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowBreakBeforeNoexceptSpecifier: Never
AllowShortBlocksOnASingleLine: Never
AllowShortCaseExpressionOnASingleLine: true
AllowShortCaseLabelsOnASingleLine: false
AllowShortCompoundRequirementOnASingleLine: true
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: Inline
AllowShortLoopsOnASingleLine: false
AllowShortNamespacesOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: Yes
AttributeMacros:
- __capability
- DPLX_ATTR_FORCE_INLINE
- DPLX_ATTR_NO_UNIQUE_ADDRESS
- DPLX_ATTR_DP_DEPRECATED
- DPLX_ATTR_DP_DEPRECATED_
BinPackArguments: true
BinPackParameters: false
BinPackParameters: OnePerLine
BitFieldColonSpacing: Both
BraceWrapping:
AfterCaseLabel: false
Expand All @@ -75,17 +117,22 @@ BraceWrapping:
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakAdjacentStringLiterals: true
BreakAfterAttributes: Leave
BreakAfterJavaFieldAnnotations: true
BreakAfterReturnType: None
BreakArrays: false
BreakBeforeBinaryOperators: All
BreakBeforeConceptDeclarations: Always
BreakBeforeBraces: Custom
BreakBeforeInlineASMColon: OnlyMultiline
BreakBeforeTernaryOperators: true
BreakBinaryOperations: Never
BreakConstructorInitializers: BeforeComma
BreakFunctionDefinitionParameters: false
BreakInheritanceList: BeforeComma
BreakStringLiterals: true
BreakTemplateDeclarations: Yes
ColumnLimit: 80
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
Expand All @@ -107,27 +154,34 @@ IncludeBlocks: Regroup
IncludeCategories:
- Regex: '^<[[:alpha:]_]*>$'
Priority: 2
SortPriority: 0
CaseSensitive: false
- Regex: '^<boost/'
Priority: 5
SortPriority: 0
CaseSensitive: false
- Regex: '^<dplx/dlog[/\.].*'
Priority: 29
SortPriority: 0
CaseSensitive: true
- Regex: '^<dplx/.*'
Priority: 27
SortPriority: 0
CaseSensitive: true
- Regex: '^<.*'
Priority: 20
SortPriority: 0
CaseSensitive: false
- Regex: '^".*'
Priority: 30
SortPriority: 0
CaseSensitive: false
IncludeIsMainRegex: '(\.test)?$'
IncludeIsMainSourceRegex: ''
IndentAccessModifiers: false
IndentCaseBlocks: false
IndentCaseLabels: false
IndentExportBlock: false
IndentExternBlock: NoIndent
IndentGotoLabels: true
IndentPPDirectives: None
Expand All @@ -146,11 +200,16 @@ IntegerLiteralSeparator:
HexMinDigits: 5
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
KeepEmptyLines:
AtEndOfFile: false
AtStartOfBlock: true
AtStartOfFile: true
KeepFormFeed: true
LambdaBodyIndentation: Signature
LineEnding: LF
MacroBlockBegin: ''
MacroBlockEnd: ''
MainIncludeChar: Quote
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Auto
Expand All @@ -161,9 +220,11 @@ ObjCSpaceBeforeProtocolList: true
PackConstructorInitializers: Never
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakBeforeMemberAccess: 150
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakOpenParenthesis: 0
PenaltyBreakScopeResolution: 500
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
Expand All @@ -173,13 +234,16 @@ PointerAlignment: Right
PPIndentWidth: -1
QualifierAlignment: Right
ReferenceAlignment: Pointer
ReflowComments: true
ReflowComments: Always
RemoveBracesLLVM: false
RemoveSemicolon: false # TODO: evaluate
RemoveEmptyLinesInUnwrappedLines: true
RemoveParentheses: Leave
RemoveSemicolon: false
RequiresClausePosition: OwnLine
RequiresExpressionIndentation: OuterScope
SeparateDefinitionBlocks: Leave
ShortNamespaceLines: 1
SkipMacroDefinitionBody: false
SortIncludes: CaseInsensitive
SortJavaStaticImport: Before
SortUsingDeclarations: LexicographicNumeric
Expand All @@ -192,6 +256,7 @@ SpaceBeforeCaseColon: false
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeJsonColon: false
SpaceBeforeParens: ControlStatements
SpaceBeforeParensOptions: # this is ignored due to SpaceBeforeParens != "Custom"
AfterControlStatements: true
Expand All @@ -200,33 +265,40 @@ SpaceBeforeParensOptions: # this is ignored due to SpaceBeforeParens != "Custom"
AfterFunctionDeclarationName: false
AfterIfMacros: true
AfterOverloadedOperator: false
AfterPlacementOperator: true
AfterRequiresInClause: false
AfterRequiresInExpression: false
BeforeNonEmptyParentheses: false
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: Never
SpacesInConditionalStatement: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInLineCommentPrefix:
Minimum: 1
Maximum: -1
SpacesInParentheses: false
SpacesInParens: Never
SpacesInParensOptions:
ExceptDoubleParentheses: false
InCStyleCasts: false
InConditionalStatements: false
InEmptyParentheses: false
Other: false
SpacesInSquareBrackets: false
Standard: Latest
StatementAttributeLikeMacros:
StatementMacros:
TableGenBreakInsideDAGArg: DontBreak
TabWidth: 4
UseTab: Never
VerilogBreakBetweenInstancePorts: true
WhitespaceSensitiveMacros:
- BOOST_PP_STRINGIZE
- CF_SWIFT_NAME
- NS_SWIFT_NAME
- PP_STRINGIZE
- STRINGIZE
WrapNamespaceBodyWithEmptyLines: Leave
...

29 changes: 25 additions & 4 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -1,36 +1,57 @@
---
# bugprone-forward-declaration-namespace generates a false positive for boost
# clang-analyzer-optin.core.EnumCastOutOfRange I disagree.
# clang-analyzer-optin.cplusplus.VirtualCall is currently violated by llfio
# cppcoreguidelines-avoid-magic-numbers aliases readability-magic-numbers
# cppcoreguidelines-avoid-c-arrays aliases modernize-avoid-c-arrays
# cppcoreguidelines-missing-std-forward doesn't recognize equivalent static casts
# cppcoreguidelines-rvalue-reference-param-not-moved doesn't recognize equivalent static casts
# cppcoreguidelines-special-member-functions is overly explicit and verbose
# clang-analyzer-core.uninitialized.Assign is currently violated by status-code
# clang-analyzer-optin.cplusplus.VirtualCall is currently violated by llfio
# cppcoreguidelines-use-default-member-init I disagree.
# clang-analyzer-core.uninitialized.Assign happens to choke on OUTCOME_TRY
# modernize-use-designated-initializers interacts badly with our test data tables
# readability-redundant-inline-specifier doesn't consider MSVC /Ob1
Checks: >
boost-*,
-boost-use-ranges,
bugprone-*,
-bugprone-easily-swappable-parameters,
-bugprone-forward-declaration-namespace,
clang-analyzer-*,
-clang-analyzer-core.uninitialized.Assign,
-clang-analyzer-optin.core.EnumCastOutOfRange,
-clang-analyzer-optin.cplusplus.VirtualCall
clang-diagnostic-*,
cppcoreguidelines-*,
-cppcoreguidelines-avoid-c-arrays,
-cppcoreguidelines-avoid-do-while,
-cppcoreguidelines-missing-std-forward,
-cppcoreguidelines-rvalue-reference-param-not-moved,
-cppcoreguidelines-special-member-functions,
-cppcoreguidelines-use-default-member-init,
modernize-*,
-modernize-avoid-c-arrays,
-cppcoreguidelines-avoid-do-while,
-modernize-use-default-member-init,
-modernize-use-designated-initializers,
-modernize-use-ranges,
performance-*,
-performance-enum-size,
portability-*,
-portability-template-virtual-member-function,
readability-*,
-readability-identifier-length,
-readability-magic-numbers,
-readability-named-parameter,
-readability-redundant-inline-specifier,
-readability-redundant-member-init,
-readability-static-accessed-through-instance,
-clang-analyzer-core.uninitialized.Assign,
-clang-analyzer-optin.cplusplus.VirtualCall
WarningsAsErrors: true
HeaderFilterRegex: ".*/src/dp(lx|_tests)/.*"
FormatStyle: file
CheckOptions:
- key: bugprone-unused-return-value.AllowCastToVoid
value: true
- key: modernize-use-override.AllowOverrideAndFinal
value: true
- key: cppcoreguidelines-macro-usage.AllowedRegexp
Expand Down
4 changes: 2 additions & 2 deletions .copier-answers.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Changes here will be overwritten by Copier
_commit: v0.3.4
_src_path: git@github.com:deeplex/copier-cpp-library.git
_commit: v0.4.0
_src_path: https://github.com/deeplex/copier-cpp.git
email: henrik@gassmann.onl
full_name: Henrik Steffen Gaßmann
header_config: true
Expand Down
30 changes: 23 additions & 7 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,21 +1,37 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/cpp
{
"name": "C++",
"image": "ghcr.io/deeplex/devcontainer-cpp:ubuntu-22.04",
"name": "Deeplex | C++",
"image": "ghcr.io/deeplex/devcontainer-cpp:ubuntu-24.04",
"customizations": {
"vscode": {
"extensions": [
// general editor utility
"EditorConfig.EditorConfig",
// GitHub integration
"github.vscode-github-actions",
"GitHub.vscode-pull-request-github",
// C++
"llvm-vs-code-extensions.vscode-clangd",
"ms-vscode.cmake-tools",
// sphinx
"lextudio.restructuredtext",
"ms-python.python",
"ms-vscode.cpptools",
"ms-vscode.cmake-tools",
"trond-snekvik.simple-rst",
"twxs.cmake",
]
}
},
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {
"installZsh": true,
"installOhMyZsh": true,
"installOhMyZshConfig": true,
"upgradePackages": true,
"username": "vscode"
},
"ghcr.io/devcontainers/features/python:1": {
"version": "os-provided",
"installTools": true,
"toolsToInstall": "copier,pipenv"
}
},
"postCreateCommand": "cd ${containerWorkspaceFolder}/docs && pipenv sync --dev",
}
2 changes: 2 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
# style: Reformat sources with clang-format v16
1b044768428ba46de6a206498f6a2c0c01df17f4
# style: reformat sources with clang-format version 20
506813560eb1af64eebfd3443acf5f8fb1849da4
Loading
Loading