Feat: Update to .NET 10#17
Conversation
📝 WalkthroughWalkthroughCI workflows and project files are upgraded to .NET 10.0 and NuGet packages are bumped; ChangesUnified .NET 10.0 Infrastructure and Semantics Upgrade
🎯 3 (Moderate) | ⏱️ ~20 minutes
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
d2ce713 to
1929976
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/dotnet.yml:
- Around line 18-22: Update the workflow to harden action references by
replacing the mutable tags for actions/checkout and actions/setup-dotnet with
their corresponding immutable commit SHAs (replace usages of actions/checkout@v6
and actions/setup-dotnet@v5 with the exact commit SHA pins for those releases)
and add persist-credentials: false to the checkout step (the actions/checkout
step) so the workflow does not retain persisted GitHub credentials during the
build/test run.
In `@ExecuteI.fs`:
- Around line 291-294: The RV32 shift-count masking is wrong: in execSLL,
execSRL and execSRA (in ExecuteI.fs) you must mask rs2 to 5 bits (use rs2 &&&
0x1f) for the RV32 branch instead of using the full register; perform the shift
on a 32-bit value (use uint32 shifts for SLL/SRL and int32 for SRA) and then
convert/extend the result back to the machine register width as the existing
code expects. Locate the RV32 pattern matches (the branches using "RV32 ->" in
execSLL/execSRL/execSRA) and replace the unmasked shifts with masked-shamt =
(mstate.getRegister rs2) &&& 0x1f, apply the appropriate 32-bit shift, and then
return the correctly-typed result.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: dafd832e-678e-47b3-9882-402a78928a18
📒 Files selected for processing (86)
.github/ISSUE_TEMPLATE/bug_report.md.github/ISSUE_TEMPLATE/feature_request.md.github/workflows/dotnet.yml.gitignore.travis.ymlArch.fsBits.fsCLI.fsCODE_OF_CONDUCT.mdCONTRIBUTING.mdDecodeA.fsDecodeA64.fsDecodeI.fsDecodeI64.fsDecodeM.fsDecodeM64.fsDecoder.fsExecuteA.fsExecuteA64.fsExecuteI.fsExecuteI64.fsExecuteM.fsExecuteM64.fsLICENSEMachineState.fsProgram.fsREADME.mdRun.fsTests/Program.fsTests/Tests.fsprojTests/asm/.gitignoreTests/asm/MakefileTests/asm/asm-source-tests/rv64ua/MakefragTests/asm/asm-source-tests/rv64ua/amoadd_d.STests/asm/asm-source-tests/rv64ua/amoadd_w.STests/asm/asm-source-tests/rv64ua/amoand_d.STests/asm/asm-source-tests/rv64ua/amoand_w.STests/asm/asm-source-tests/rv64ua/amomax_d.STests/asm/asm-source-tests/rv64ua/amomax_w.STests/asm/asm-source-tests/rv64ua/amomaxu_d.STests/asm/asm-source-tests/rv64ua/amomaxu_w.STests/asm/asm-source-tests/rv64ua/amomin_d.STests/asm/asm-source-tests/rv64ua/amomin_w.STests/asm/asm-source-tests/rv64ua/amominu_d.STests/asm/asm-source-tests/rv64ua/amominu_w.STests/asm/asm-source-tests/rv64ua/amoor_d.STests/asm/asm-source-tests/rv64ua/amoor_w.STests/asm/asm-source-tests/rv64ua/amoswap_d.STests/asm/asm-source-tests/rv64ua/amoswap_w.STests/asm/asm-source-tests/rv64ua/amoxor_d.STests/asm/asm-source-tests/rv64ua/amoxor_w.STests/asm/asm-source-tests/rv64ua/lrsc.STests/asm/disasmTests/asm/init.STests/asm/mmio.ldTests/asm/src/add.STests/asm/src/alu.STests/asm/src/alui.STests/asm/src/amo.lrsc.w.STests/asm/src/amo_d.STests/asm/src/amo_w.STests/asm/src/br.STests/asm/src/j.STests/asm/src/mem.STests/asm/src/sys.STests/asm/src/ui.STests/rv32i/alu.fsTests/rv32i/alui.fsTests/rv32i/br.fsTests/rv32i/j.fsTests/rv32i/mem.fsTests/rv32i/sys.fsTests/rv32i/ui.fsTests/rv32m/alu.fsTests/rv64a/amo.fsTests/rv64i/alu.fsTests/rv64i/alui.fsTests/rv64i/br.fsTests/rv64i/j.fsTests/rv64i/mem.fsTests/rv64i/sys.fsTests/rv64i/ui.fsTests/rv64m/alu.fsrisc-v.fsprojrisc-v.slnrisc-v.sln.DotSettings.user
There was a problem hiding this comment.
🧹 Nitpick comments (1)
.github/workflows/dotnet.yml (1)
18-18: ⚡ Quick winConfirm upgraded versions: actions/checkout@v6, actions/setup-dotnet@v5, and .NET 10.0.x are available/stable (no availability/stability issue).
- In
.github/workflows/dotnet.yml(lines 18–22), consider pinningactions/checkout/actions/setup-dotnetto a full commit SHA and pinningdotnet-versionto a specific patch (instead of10.0.x) for fully reproducible builds.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/workflows/dotnet.yml at line 18, Update the workflow to pin third-party GitHub Actions and the .NET SDK to immutable versions: replace the floating tag actions/checkout@v6 and actions/setup-dotnet@v5 with their full commit SHAs (the checkout and setup-dotnet uses entries) and change the dotnet-version input from "10.0.x" to an exact patch version like "10.0.Y" (use the specific SDK patch you tested) so the workflow uses reproducible, stable artifacts; make these edits around the steps referencing actions/checkout and actions/setup-dotnet and the input name dotnet-version.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In @.github/workflows/dotnet.yml:
- Line 18: Update the workflow to pin third-party GitHub Actions and the .NET
SDK to immutable versions: replace the floating tag actions/checkout@v6 and
actions/setup-dotnet@v5 with their full commit SHAs (the checkout and
setup-dotnet uses entries) and change the dotnet-version input from "10.0.x" to
an exact patch version like "10.0.Y" (use the specific SDK patch you tested) so
the workflow uses reproducible, stable artifacts; make these edits around the
steps referencing actions/checkout and actions/setup-dotnet and the input name
dotnet-version.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: d4761cf8-cf1f-447b-b547-b3ba986272c9
📒 Files selected for processing (86)
.github/ISSUE_TEMPLATE/bug_report.md.github/ISSUE_TEMPLATE/feature_request.md.github/workflows/dotnet.yml.gitignore.travis.ymlArch.fsBits.fsCLI.fsCODE_OF_CONDUCT.mdCONTRIBUTING.mdDecodeA.fsDecodeA64.fsDecodeI.fsDecodeI64.fsDecodeM.fsDecodeM64.fsDecoder.fsExecuteA.fsExecuteA64.fsExecuteI.fsExecuteI64.fsExecuteM.fsExecuteM64.fsLICENSEMachineState.fsProgram.fsREADME.mdRun.fsTests/Program.fsTests/Tests.fsprojTests/asm/.gitignoreTests/asm/MakefileTests/asm/asm-source-tests/rv64ua/MakefragTests/asm/asm-source-tests/rv64ua/amoadd_d.STests/asm/asm-source-tests/rv64ua/amoadd_w.STests/asm/asm-source-tests/rv64ua/amoand_d.STests/asm/asm-source-tests/rv64ua/amoand_w.STests/asm/asm-source-tests/rv64ua/amomax_d.STests/asm/asm-source-tests/rv64ua/amomax_w.STests/asm/asm-source-tests/rv64ua/amomaxu_d.STests/asm/asm-source-tests/rv64ua/amomaxu_w.STests/asm/asm-source-tests/rv64ua/amomin_d.STests/asm/asm-source-tests/rv64ua/amomin_w.STests/asm/asm-source-tests/rv64ua/amominu_d.STests/asm/asm-source-tests/rv64ua/amominu_w.STests/asm/asm-source-tests/rv64ua/amoor_d.STests/asm/asm-source-tests/rv64ua/amoor_w.STests/asm/asm-source-tests/rv64ua/amoswap_d.STests/asm/asm-source-tests/rv64ua/amoswap_w.STests/asm/asm-source-tests/rv64ua/amoxor_d.STests/asm/asm-source-tests/rv64ua/amoxor_w.STests/asm/asm-source-tests/rv64ua/lrsc.STests/asm/disasmTests/asm/init.STests/asm/mmio.ldTests/asm/src/add.STests/asm/src/alu.STests/asm/src/alui.STests/asm/src/amo.lrsc.w.STests/asm/src/amo_d.STests/asm/src/amo_w.STests/asm/src/br.STests/asm/src/j.STests/asm/src/mem.STests/asm/src/sys.STests/asm/src/ui.STests/rv32i/alu.fsTests/rv32i/alui.fsTests/rv32i/br.fsTests/rv32i/j.fsTests/rv32i/mem.fsTests/rv32i/sys.fsTests/rv32i/ui.fsTests/rv32m/alu.fsTests/rv64a/amo.fsTests/rv64i/alu.fsTests/rv64i/alui.fsTests/rv64i/br.fsTests/rv64i/j.fsTests/rv64i/mem.fsTests/rv64i/sys.fsTests/rv64i/ui.fsTests/rv64m/alu.fsrisc-v.fsprojrisc-v.slnrisc-v.sln.DotSettings.user
💤 Files with no reviewable changes (1)
- ExecuteI.fs
✅ Files skipped from review due to trivial changes (1)
- .travis.yml
🚧 Files skipped from review as they are similar to previous changes (2)
- risc-v.fsproj
- Tests/Tests.fsproj
Summary by CodeRabbit
Bug Fixes
Chores