Skip to content

Commit 8f99a76

Browse files
authored
Initial commit
0 parents  commit 8f99a76

26 files changed

+2043
-0
lines changed

.clang-format

Lines changed: 242 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,242 @@
1+
---
2+
Language: Cpp
3+
AccessModifierOffset: -2
4+
AlignAfterOpenBracket: Align
5+
AlignArrayOfStructures: None
6+
AlignConsecutiveAssignments:
7+
Enabled: true
8+
AcrossEmptyLines: false
9+
AcrossComments: false
10+
AlignCompound: false
11+
PadOperators: true
12+
AlignConsecutiveBitFields:
13+
Enabled: false
14+
AcrossEmptyLines: false
15+
AcrossComments: false
16+
AlignCompound: false
17+
PadOperators: false
18+
AlignConsecutiveDeclarations:
19+
Enabled: true
20+
AcrossEmptyLines: false
21+
AcrossComments: false
22+
AlignCompound: false
23+
PadOperators: true
24+
AlignConsecutiveMacros:
25+
Enabled: false
26+
AcrossEmptyLines: false
27+
AcrossComments: false
28+
AlignCompound: false
29+
PadOperators: false
30+
AlignConsecutiveShortCaseStatements:
31+
Enabled: false
32+
AcrossEmptyLines: false
33+
AcrossComments: false
34+
AlignCaseColons: false
35+
AlignEscapedNewlines: Left
36+
AlignOperands: Align
37+
AlignTrailingComments:
38+
Kind: Always
39+
OverEmptyLines: 0
40+
AllowAllArgumentsOnNextLine: true
41+
AllowAllParametersOfDeclarationOnNextLine: true
42+
AllowShortBlocksOnASingleLine: Never
43+
AllowShortCaseLabelsOnASingleLine: false
44+
AllowShortEnumsOnASingleLine: true
45+
AllowShortFunctionsOnASingleLine: All
46+
AllowShortIfStatementsOnASingleLine: Never
47+
AllowShortLambdasOnASingleLine: All
48+
AllowShortLoopsOnASingleLine: false
49+
AlwaysBreakAfterDefinitionReturnType: None
50+
AlwaysBreakAfterReturnType: None
51+
AlwaysBreakBeforeMultilineStrings: false
52+
AlwaysBreakTemplateDeclarations: Yes
53+
AttributeMacros:
54+
- __capability
55+
BinPackArguments: false
56+
BinPackParameters: false
57+
BitFieldColonSpacing: Both
58+
BraceWrapping:
59+
AfterCaseLabel: false
60+
AfterClass: false
61+
AfterControlStatement: Never
62+
AfterEnum: false
63+
AfterExternBlock: false
64+
AfterFunction: false
65+
AfterNamespace: false
66+
AfterObjCDeclaration: false
67+
AfterStruct: false
68+
AfterUnion: false
69+
BeforeCatch: false
70+
BeforeElse: false
71+
BeforeLambdaBody: false
72+
BeforeWhile: false
73+
IndentBraces: false
74+
SplitEmptyFunction: true
75+
SplitEmptyRecord: true
76+
SplitEmptyNamespace: true
77+
BreakAfterAttributes: Never
78+
BreakAfterJavaFieldAnnotations: false
79+
BreakArrays: true
80+
BreakBeforeBinaryOperators: None
81+
BreakBeforeConceptDeclarations: Always
82+
BreakBeforeBraces: Custom
83+
BreakBeforeInlineASMColon: OnlyMultiline
84+
BreakBeforeTernaryOperators: true
85+
BreakConstructorInitializers: BeforeColon
86+
BreakInheritanceList: BeforeColon
87+
BreakStringLiterals: true
88+
# Please update .markdownlint.yaml if this line is to be updated
89+
ColumnLimit: 119
90+
CommentPragmas: '^ IWYU pragma:'
91+
CompactNamespaces: false
92+
ConstructorInitializerIndentWidth: 4
93+
ContinuationIndentWidth: 4
94+
Cpp11BracedListStyle: true
95+
DerivePointerAlignment: false
96+
DisableFormat: false
97+
EmptyLineAfterAccessModifier: Never
98+
EmptyLineBeforeAccessModifier: LogicalBlock
99+
ExperimentalAutoDetectBinPacking: false
100+
FixNamespaceComments: true
101+
ForEachMacros:
102+
- foreach
103+
- Q_FOREACH
104+
- BOOST_FOREACH
105+
IfMacros:
106+
- KJ_IF_MAYBE
107+
IncludeBlocks: Preserve
108+
IncludeCategories:
109+
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
110+
Priority: 2
111+
SortPriority: 0
112+
CaseSensitive: false
113+
- Regex: '^(<|"(gtest|isl|json)/)'
114+
Priority: 3
115+
SortPriority: 0
116+
CaseSensitive: false
117+
- Regex: '.*'
118+
Priority: 1
119+
SortPriority: 0
120+
CaseSensitive: false
121+
IncludeIsMainRegex: '$'
122+
IncludeIsMainSourceRegex: ''
123+
IndentAccessModifiers: false
124+
IndentCaseBlocks: false
125+
IndentCaseLabels: false
126+
IndentExternBlock: AfterExternBlock
127+
IndentGotoLabels: true
128+
IndentPPDirectives: None
129+
IndentRequiresClause: true
130+
IndentWidth: 4
131+
IndentWrappedFunctionNames: false
132+
InsertBraces: false
133+
InsertNewlineAtEOF: false
134+
InsertTrailingCommas: None
135+
IntegerLiteralSeparator:
136+
Binary: 0
137+
BinaryMinDigits: 0
138+
Decimal: 0
139+
DecimalMinDigits: 0
140+
Hex: 0
141+
HexMinDigits: 0
142+
JavaScriptQuotes: Leave
143+
JavaScriptWrapImports: true
144+
KeepEmptyLinesAtTheStartOfBlocks: true
145+
KeepEmptyLinesAtEOF: false
146+
LambdaBodyIndentation: Signature
147+
LineEnding: DeriveLF
148+
MacroBlockBegin: ''
149+
MacroBlockEnd: ''
150+
MaxEmptyLinesToKeep: 1
151+
NamespaceIndentation: None
152+
ObjCBinPackProtocolList: Auto
153+
ObjCBlockIndentWidth: 4
154+
ObjCBreakBeforeNestedBlockParam: true
155+
ObjCSpaceAfterProperty: false
156+
ObjCSpaceBeforeProtocolList: true
157+
PackConstructorInitializers: NextLine
158+
PenaltyBreakAssignment: 2
159+
PenaltyBreakBeforeFirstCallParameter: 19
160+
PenaltyBreakComment: 300
161+
PenaltyBreakFirstLessLess: 120
162+
PenaltyBreakOpenParenthesis: 0
163+
PenaltyBreakString: 1000
164+
PenaltyBreakTemplateDeclaration: 10
165+
PenaltyExcessCharacter: 1000000
166+
PenaltyIndentedWhitespace: 0
167+
PenaltyReturnTypeOnItsOwnLine: 60
168+
PointerAlignment: Left
169+
PPIndentWidth: -1
170+
QualifierAlignment: Custom
171+
QualifierOrder:
172+
- inline
173+
- static
174+
- constexpr
175+
- const
176+
- volatile
177+
- type
178+
ReferenceAlignment: Pointer
179+
ReflowComments: true
180+
RemoveBracesLLVM: false
181+
RemoveParentheses: Leave
182+
RemoveSemicolon: false
183+
RequiresClausePosition: OwnLine
184+
RequiresExpressionIndentation: OuterScope
185+
SeparateDefinitionBlocks: Leave
186+
ShortNamespaceLines: 1
187+
SortIncludes: Never
188+
SortJavaStaticImport: Before
189+
SortUsingDeclarations: LexicographicNumeric
190+
SpaceAfterCStyleCast: false
191+
SpaceAfterLogicalNot: false
192+
SpaceAfterTemplateKeyword: true
193+
SpaceAroundPointerQualifiers: Default
194+
SpaceBeforeAssignmentOperators: true
195+
SpaceBeforeCaseColon: false
196+
SpaceBeforeCpp11BracedList: false
197+
SpaceBeforeCtorInitializerColon: true
198+
SpaceBeforeInheritanceColon: true
199+
SpaceBeforeJsonColon: false
200+
SpaceBeforeParens: ControlStatements
201+
SpaceBeforeParensOptions:
202+
AfterControlStatements: true
203+
AfterForeachMacros: true
204+
AfterFunctionDefinitionName: false
205+
AfterFunctionDeclarationName: false
206+
AfterIfMacros: true
207+
AfterOverloadedOperator: false
208+
AfterRequiresInClause: false
209+
AfterRequiresInExpression: false
210+
BeforeNonEmptyParentheses: false
211+
SpaceBeforeRangeBasedForLoopColon: true
212+
SpaceBeforeSquareBrackets: false
213+
SpaceInEmptyBlock: false
214+
SpacesBeforeTrailingComments: 1
215+
SpacesInAngles: Never
216+
SpacesInContainerLiterals: true
217+
SpacesInLineCommentPrefix:
218+
Minimum: 1
219+
Maximum: -1
220+
SpacesInParens: Never
221+
SpacesInParensOptions:
222+
InCStyleCasts: false
223+
InConditionalStatements: false
224+
InEmptyParentheses: false
225+
Other: false
226+
SpacesInSquareBrackets: false
227+
Standard: Auto
228+
StatementAttributeLikeMacros:
229+
- Q_EMIT
230+
StatementMacros:
231+
- Q_UNUSED
232+
- QT_REQUIRE_VERSION
233+
TabWidth: 8
234+
UseTab: Never
235+
VerilogBreakBetweenInstancePorts: true
236+
WhitespaceSensitiveMacros:
237+
- STRINGIZE
238+
- PP_STRINGIZE
239+
- BOOST_PP_STRINGIZE
240+
- NS_SWIFT_NAME
241+
- CF_SWIFT_NAME
242+
...

.devcontainer/Dockerfile

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
FROM mcr.microsoft.com/devcontainers/cpp:1-ubuntu-24.04
2+
3+
USER vscode
4+
5+
# Install latest cmake
6+
RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
7+
RUN echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ noble main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null
8+
RUN sudo apt-get update && sudo apt-get install -y cmake
9+
10+
# Install pre-commit
11+
RUN sudo apt-get install -y pipx && pipx install pre-commit
12+
13+
# Newer gcc/ llvm is needed to avoid ASAN Stalling
14+
# See: https://github.com/google/sanitizers/issues/1614
15+
# Minimal vesion: clang-18.1.3, gcc-13.2
16+
RUN sudo apt-get install -y gcc-14

.devcontainer/devcontainer.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
2+
// README at: https://github.com/devcontainers/templates/tree/main/src/cpp
3+
4+
{
5+
"name": "Beman Project Generic Devcontainer",
6+
"build": {
7+
"dockerfile": "Dockerfile"
8+
},
9+
"postCreateCommand": "bash .devcontainer/postcreate.sh",
10+
"customizations": {
11+
"vscode": {
12+
"extensions": [
13+
"ms-vscode.cpptools",
14+
"ms-vscode.cmake-tools"
15+
]
16+
}
17+
}
18+
}

.devcontainer/postcreate.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Setup pre-commit
2+
pre-commit
3+
pre-commit install

.github/CODEOWNERS

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
2+
# Codeowners for reviews on PRs
3+
4+
# Note(river):
5+
# **Please understand how codeowner file work before uncommenting anything in this section:**
6+
# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
7+
#
8+
# For projects using exemplar as a template and intend to reuse its infrastructure,
9+
# River (@wusatosi) helped create most of the original infrastructure under the scope described below,
10+
# they are more than happy to help out with any PRs downstream,
11+
# as well as to sync any useful change upstream to exemplar.
12+
#
13+
# Github Actions:
14+
# .github/workflows/ @wusatosi # Add other project owners here
15+
#
16+
# Devcontainer:
17+
# .devcontainer/ @wusatosi # Add other project owners here
18+
#
19+
# Pre-commit:
20+
# .pre-commit-config.yaml @wusatosi # Add other project owners here
21+
# .markdownlint.yaml @wusatosi # Add other project owners here
22+
23+
* @bretbrownjr @camio @dietmarkuehl @neatudarius @steve-downey @wusatosi

0 commit comments

Comments
 (0)