@@ -167,36 +167,6 @@ To ignore multiple lines use `# nocov start/stop`.
167167
168168In ` Rcpp ` code use ` // # nocov ... ` .
169169
170- ### Debugging C/C++
171-
172- In ` src/Makevars.in ` uncomment debug flags ...
173-
174- From terminal run:
175-
176- ```
177- # Go to package folder
178- R_HOME="/Library/Frameworks/R.framework/Resources"
179- R_BIN="$R_HOME/bin/exec/R"
180- ASAN="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/17/lib/darwin/libclang_rt.asan_osx_dynamic.dylib"
181- UBSAN="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/17/lib/darwin/libclang_rt.ubsan_osx_dynamic.dylib"
182-
183- env R_HOME="$R_HOME" \
184- DYLD_INSERT_LIBRARIES="$ASAN:$UBSAN" \
185- ASAN_OPTIONS="abort_on_error=1,detect_leaks=0,verbosity=1" \
186- UBSAN_OPTIONS="print_stacktrace=1" \
187- "$R_BIN" --vanilla
188- ```
189-
190- In the R session (not from Rstudio/Positron!):
191-
192- ```
193- # Load + compile into the current ASan session (no child R load)
194- devtools::load_all()
195-
196- # Run tests in the same process
197- devtools::test()
198- ```
199-
200170### Air formatter of R code
201171
202172https://usethis.r-lib.org/reference/use_air.html
@@ -264,13 +234,21 @@ pre-commit run clang-format --all-files
264234
265235https://clang.llvm.org/extra/clang-tidy/
266236
237+ The repo uses two ` clang-tidy ` profiles:
238+
239+ * ` .clang-tidy ` : stable low-noise pre-commit gate focused on correctness,
240+ numerics, and a few performance checks.
241+ * ` tools/clang_tidy_audit.yaml ` : broader manual audit profile for occasional
242+ sweeps; do not require this profile to be warning-free on every commit.
243+
267244```
268245echo $(brew --prefix llvm)/bin/clang-tidy
269246# /opt/homebrew/opt/llvm/bin/clang-tidy
270247export CLANG_TIDY="$(brew --prefix llvm)/bin/clang-tidy"
271248./tools/clang_tidy.py src/RcppTskit.cpp
272249./RcppTskit/tools/clang_tidy.py RcppTskit/src/test_tsk_abort_stderr.cpp -- -system-headers '-header-filter=.*' -extra-arg=-Wno-unknown-warning-option
273250./tools/clang_tidy.py src/test_tsk_abort_stderr.cpp -- -system-headers '-header-filter=.*' -extra-arg=-Wno-unknown-warning-option
251+ ./tools/clang_tidy.py src/RcppTskit.cpp -- --config-file=tools/clang_tidy_audit.yaml
274252```
275253
276254or
@@ -280,6 +258,36 @@ pre-commit run clang-tidy src/RcppTskit.cpp
280258pre-commit run clang-tidy --all-files
281259```
282260
261+ ### Debugging C/C++
262+
263+ In ` src/Makevars.in ` uncomment debug flags ...
264+
265+ From terminal run:
266+
267+ ```
268+ # Go to package folder
269+ R_HOME="/Library/Frameworks/R.framework/Resources"
270+ R_BIN="$R_HOME/bin/exec/R"
271+ ASAN="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/17/lib/darwin/libclang_rt.asan_osx_dynamic.dylib"
272+ UBSAN="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/17/lib/darwin/libclang_rt.ubsan_osx_dynamic.dylib"
273+
274+ env R_HOME="$R_HOME" \
275+ DYLD_INSERT_LIBRARIES="$ASAN:$UBSAN" \
276+ ASAN_OPTIONS="abort_on_error=1,detect_leaks=0,verbosity=1" \
277+ UBSAN_OPTIONS="print_stacktrace=1" \
278+ "$R_BIN" --vanilla
279+ ```
280+
281+ In the R session (not from Rstudio/Positron!):
282+
283+ ```
284+ # Load + compile into the current ASan session (no child R load)
285+ devtools::load_all()
286+
287+ # Run tests in the same process
288+ devtools::test()
289+ ```
290+
283291### GitHub actions
284292
285293```
0 commit comments