-
Notifications
You must be signed in to change notification settings - Fork 6
Large-tree robustness: int32 migration + heap-aware guards #199
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 18 commits
Commits
Show all changes
23 commits
Select commit
Hold shift + click to select a range
b5e98b8
Add split_int type alias
ms609 bcf3876
Complete int16→split_int migration for large-tree robustness
ms609 ff8fa88
R soft cap: accept up to 32767 tips when TreeTools >= 2.3.0
ms609 8d40294
Add large-tree smoke tests (Phase 4)
ms609 f0d468f
NEWS: document large-tree support (Phase 5)
ms609 51305e4
Refine version guards: remove TT_HAS_HEAP_FALLBACK; split version tests
ms609 7ca7635
Remove mutable .SL_MAX_TIPS package variable
ms609 2567910
Gate version-split tests on cpp_sl_max_tips(), not packageVersion()
ms609 3c5be57
Update memcheck flow
ms609 7b530a5
Skip if no TBRDist
ms609 0709699
Cover uncovered lines; exclude large-tree fallbacks from coverage
ms609 d461fb8
test_local()
ms609 97eda24
rm obselete file
ms609 4eb6d71
Expand large-tree tests: add CID/DPI/MSI; use n=2049 not 4000
ms609 ab32955
roxygen v8
ms609 663f62d
Rounding
ms609 99e4834
-vtunes
ms609 496732c
Quick benchmark
ms609 46663c9
Inline to improve performance
ms609 6fce575
template fast vs slow paths for PID
ms609 86980d5
Coverage
ms609 d48c62e
Correct nocov syntax
ms609 b3df6a4
Merge branch 'main' into large-tree-robustness
ms609 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -15,6 +15,7 @@ cran-comments.md | |
| man-roxygen | ||
| data-raw | ||
| docs | ||
| ^.*vtune.*$ | ||
| revdep | ||
| \.covrignore | ||
| ^\.git$ | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| { | ||
| "permissions": { | ||
| "allow": [ | ||
| "Bash(Rscript *)" | ||
| ] | ||
| } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,162 @@ | ||
| # For help debugging build failures open an issue on the RStudio community with the 'github-actions' tag. | ||
| # https://community.rstudio.com/new-topic?category=Package%20development&tags=github-actions | ||
| on: | ||
| schedule: | ||
| - cron: "24 06 * * 1" | ||
| workflow_dispatch: | ||
| push: | ||
| branches: ["*"] | ||
| paths-ignore: | ||
| - "Meta**" | ||
| - "memcheck**" | ||
| - "docs**" | ||
| - "**.git" | ||
| - "**.json" | ||
| - "**.md" | ||
| - "**.yaml" | ||
| - "**.yml" | ||
| - "!**R-CMD-check.yml" | ||
| - "**.R[dD]ata" | ||
| - "**.Rpro*" | ||
| pull_request: | ||
| branches: ["*"] | ||
| paths-ignore: | ||
| - "Meta**" | ||
| - "memcheck**" | ||
| - "docs**" | ||
| - "**.git" | ||
| - "**.json" | ||
| - "**.md" | ||
| - "**.yaml" | ||
| - "**.yml" | ||
| - "!**R-CMD-check.yml" | ||
| - "**.R[dD]ata" | ||
| - "**.Rpro*" | ||
|
|
||
| name: R-CMD-check | ||
|
|
||
| jobs: | ||
| benchmark: | ||
| runs-on: ubuntu-latest | ||
| name: benchmark | ||
|
|
||
| env: | ||
| GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | ||
| RSPM: "https://packagemanager.posit.co/cran/__linux__/noble/latest" | ||
| _R_CHECK_BUILD_VIGNETTES_: false | ||
| _R_CHECK_CRAN_INCOMING_: false | ||
| _R_CHECK_FORCE_SUGGESTS_: false | ||
| R_REMOTES_STANDALONE: true | ||
| R_REMOTES_NO_ERRORS_FROM_WARNINGS: true | ||
| R_REALLY_FORCE_SYMBOLS: true | ||
| PKG_CXXFLAGS: "-O3" | ||
|
|
||
| steps: | ||
| - name: Checkout PR branch | ||
| uses: actions/checkout@v6 | ||
| with: | ||
| path: pr | ||
|
|
||
| - name: Checkout target branch | ||
| uses: actions/checkout@v6 | ||
| with: | ||
| ref: ${{ github.event.pull_request.base.ref || 'main' }} | ||
| path: main | ||
|
|
||
| - name: Set up R | ||
| uses: r-lib/actions/setup-r@v2 | ||
| with: | ||
| extra-repositories: https://ms609.github.io/packages/ | ||
|
|
||
| - name: Install R dependencies | ||
| uses: r-lib/actions/setup-r-dependencies@v2 | ||
| with: | ||
| dependencies: '"hard"' | ||
| extra-packages: | | ||
| TreeTools@2.2.0 | ||
| needs: benchmark | ||
|
|
||
| - name: Benchmark PR | ||
| uses: ms609/actions/benchmark-step@main | ||
| with: | ||
| path: pr | ||
| output: pr | ||
|
|
||
| - name: Benchmark target | ||
| uses: ms609/actions/benchmark-step@main | ||
| with: | ||
| path: main | ||
| output: main | ||
|
|
||
| - name: Benchmark PR again | ||
| uses: ms609/actions/benchmark-step@main | ||
| with: | ||
| path: pr | ||
| output: pr2 | ||
|
|
||
| - run: dir pr-benchmark-results | ||
| working-directory: pr | ||
| - run: dir main-benchmark-results | ||
| working-directory: pr | ||
|
|
||
| - name: Compare benchmarks | ||
| id: compare_results | ||
| working-directory: pr | ||
| run: | | ||
| Rscript benchmark/_compare_results.R | ||
| shell: bash | ||
|
|
||
| - name: Upload PR benchmark results | ||
| if: failure() | ||
| uses: actions/upload-artifact@v6 | ||
| with: | ||
| name: pr-benchmark-results | ||
| path: pr/pr-benchmark-results/*.bench.Rds | ||
|
|
||
| - name: Upload main benchmark results | ||
| if: failure() | ||
| uses: actions/upload-artifact@v6 | ||
| with: | ||
| name: main-benchmark-results | ||
| path: pr/main-benchmark-results/*.bench.Rds | ||
|
|
||
| - name: Comment on PR | ||
| if: always() && github.event_name == 'pull_request' && steps.compare_results.outputs.report != '' | ||
| uses: actions/github-script@v7 | ||
| env: | ||
| BENCHMARK_MESSAGE: ${{ steps.compare_results.outputs.report }} | ||
| with: | ||
| github-token: ${{ secrets.GITHUB_TOKEN }} | ||
| script: | | ||
| const benchmarkIdentifier = '<!-- benchmark-comment -->'; | ||
| const outdatedPrefix = '> **⚠️ This benchmark result is outdated. See the latest comment below.**\n\n'; | ||
|
|
||
| const comments = await github.rest.issues.listComments({ | ||
| owner: context.repo.owner, | ||
| repo: context.repo.repo, | ||
| issue_number: context.issue.number | ||
| }); | ||
|
|
||
| const previousBenchmarkComments = comments.data.filter(comment => | ||
| comment.user.type === 'Bot' && | ||
| comment.body.includes(benchmarkIdentifier) && | ||
| !comment.body.startsWith('> **⚠️ This benchmark result is outdated.') | ||
| ); | ||
|
|
||
| for (const comment of previousBenchmarkComments) { | ||
| await github.rest.issues.updateComment({ | ||
| owner: context.repo.owner, | ||
| repo: context.repo.repo, | ||
| comment_id: comment.id, | ||
| body: outdatedPrefix + comment.body | ||
| }); | ||
| } | ||
|
|
||
| const newCommentBody = benchmarkIdentifier + '\n' + process.env.BENCHMARK_MESSAGE; | ||
|
|
||
| await github.rest.issues.createComment({ | ||
| owner: context.repo.owner, | ||
| repo: context.repo.repo, | ||
| issue_number: context.issue.number, | ||
| body: newCommentBody | ||
| }); | ||
Check warningCode scanning / CodeQL Workflow does not contain permissions Medium
Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.