Skip to content

Conversation

@ben-schwen
Copy link
Member

@ben-schwen ben-schwen commented Oct 28, 2025

Adds arithmetic for GForce as demanded in #3815 but does not add support for blocks in j like d[, j={x<-x; .(min(x))}, by=y].

@codecov
Copy link

codecov bot commented Oct 28, 2025

Codecov Report

❌ Patch coverage is 99.23664% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 99.00%. Comparing base (20b463c) to head (bb6c6ed).
⚠️ Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
R/data.table.R 99.58% 1 Missing ⚠️
R/test.data.table.R 95.23% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #7401      +/-   ##
==========================================
- Coverage   99.02%   99.00%   -0.02%     
==========================================
  Files          87       87              
  Lines       16806    16893      +87     
==========================================
+ Hits        16642    16725      +83     
- Misses        164      168       +4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions
Copy link

github-actions bot commented Oct 28, 2025

No obvious timing issues in HEAD=modular_gforce
Comparison Plot

Generated via commit bb6c6ed

Download link for the artifact containing the test results: ↓ atime-results.zip

Task Duration
R setup and installing dependencies 2 minutes and 40 seconds
Installing different package versions 42 seconds
Running and plotting the test cases 4 minutes and 26 seconds

@ben-schwen ben-schwen marked this pull request as ready for review November 2, 2025 18:01
@ben-schwen
Copy link
Member Author

I'm also not sure about moving the tests to optimize.Rraw since this feels kind of wrong and not needed after introducing the new levels/optimization parameter to test.

@ben-schwen ben-schwen mentioned this pull request Nov 2, 2025
Copy link
Member

@MichaelChirico MichaelChirico left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, I think last round of review here. Looking great!

ben-schwen and others added 2 commits January 13, 2026 23:21
Co-authored-by: Michael Chirico <chiricom@google.com>
ben-schwen and others added 4 commits January 13, 2026 23:39
for the case of `is.null(names(jl__))` this should result in `logical(0)` differently from current version which returns `c(FALSE, FALSE, ...)`

Co-authored-by: Michael Chirico <chiricom@google.com>
Co-authored-by: Michael Chirico <chiricom@google.com>
Co-authored-by: Michael Chirico <chiricom@google.com>
R/data.table.R Outdated
# Case 2b: list(...)
else if (this[[1L]] == "list") {
# also handle c(lapply(.SD, sum), list()) - silly, yes, but can happen
if (length(this) == 1L) next
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks like this case was never actually tested

Copy link
Member

@MichaelChirico MichaelChirico left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's ready to go! Bravo! Be sure to revisit all the open review threads and then submit when you're happy :)

@MichaelChirico
Copy link
Member

Great news -- as of now, this PR reduces the cyclomatic complexity of [.data.table by 15% (1038 📉 872)

@ben-schwen ben-schwen merged commit 0216983 into master Jan 15, 2026
12 of 13 checks passed
@ben-schwen ben-schwen deleted the modular_gforce branch January 15, 2026 09:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

4 participants