Refactor Run modules to use modern record extensions#830
Conversation
|
Hi @jorisdral , I just pushed an update for Run module with the new record language extensions, I'm moving next to Index |
There was a problem hiding this comment.
Thank you very much for the contribution, I like the new field names for the Run and RunReader module 😄.
Two high-level comments:
- In modules where we refactor field names (
Run/RunReader), we should enableDuplicateRecordFields,NoFieldSelectors, andOverloadedRecordDot. In other modules where we only want to use the.fieldsyntax, it should be fine to only enableOverloadedRecordDot, so let's change that so that we only use the.fieldsyntax on values of typeRunandRunReader. That probably makes the diff of this PR also smaller - There are some residual parentheses here and there. In particular, we don't need parentheses around syntax like
value.field
|
Thanks, I will work on the changes |
343017b to
5823d35
Compare
|
Hi @jorisdral I've updated changes based on the feedback |
|
Hello, @jorisdral I'would like to proceed next to index, could you check if what I've done aligns well |
There was a problem hiding this comment.
There are redundant parentheses around record-dot syntax in this module
extension scope
- Remove unnecessary parentheses around dot-access expressions (value.field)
- Only enable DuplicateRecordFields/NoFieldSelectors in Run and RunReader
where field names were actually refactored; other modules get
OverloadedRecordDot only
Snapshot.hs: use exported runFsPaths accessor instead of internal r.fsPaths
Unsafe.hs: restore parens around function applications
Config/Override.hs: fix corrupted override instance for MergeBatchSize
Benchmarks: update to dot syntax with renamed fields (bloomFilter, index,
kOpsFile) and add OverloadedRecordDot pragma to both benchmark files
6568b11 to
04c4cec
Compare
|
Hi, @jorisdral I've solved based on comments. |
|
@jorisdral you are welcome, let me know if I can proceed on index |
Feel free to proceed whenever you want |

Description
Following the successful pilot with Internal.Arena, this PR refactors the Run module and several related components to use the modern record language extensions.
changes
cabal build lsm-tree:lib:core -- Builds successfully
cabal test lsm-tree-test --pattern "Run" -- 129/129 tests pass
cabal test all -- Verified for compilation and linking
link
to the issue.
Checklist