Skip to content

Bump rain-solmem 0.1.3 -> 0.1.26 - #2839

Draft
thedavidmeister wants to merge 1 commit into
mainfrom
2026-08-22-solmem-0-1-26
Draft

Bump rain-solmem 0.1.3 -> 0.1.26#2839
thedavidmeister wants to merge 1 commit into
mainfrom
2026-08-22-solmem-0-1-26

Conversation

@thedavidmeister

@thedavidmeister thedavidmeister commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

What

Puts raindex on the latest published rain-solmem, 0.1.26 (0.1.3 was 23 patch releases behind).

  • foundry.toml dependency pin 0.1.3 → 0.1.26; soldeer.lock and remappings.txt regenerated via forge soldeer update (no stale remapping lines remain — the old rain-solmem-0.1.3/=… entry is replaced, not appended-around).
  • The three direct importers re-path to the new prefix: src/concrete/raindex/RaindexV6.sol, src/concrete/parser/RaindexV6SubParser.sol, src/lib/LibRaindexSubParser.sol. Raindex imports only LibUint256Matrix, LibUint256Array, LibBytes32Array, LibBytes32Matrix — all still shipped by 0.1.26. LibStackPointer (deleted upstream in the interim) was never imported here.
  • New alias remapping in foundry.toml: rain-solmem-0.1.3/=dependencies/rain-solmem-0.1.26/, following the existing forge-std / rain-sol-codegen / rain-deploy alias pattern. rainlang 0.1.5, rain-interpreter-interface 0.1.0, rain-intorastring 0.1.0 and rain-lib-memkv 0.1.0 still spell solmem under the 0.1.3 prefix, and Soldeer installs one version per package name. The only 0.1.3-prefixed files that import the deleted LibStackPointer are two rainlang concrete test files (LibOpBlockNumber.t.sol, LibOpBlockTimestamp.t.sol) that nothing in this repo's compilation reaches.

Candidates moved

Regenerated via forge script ./script/Build.sol. The solmem internals delta moves the compiled RaindexV6SubParser: its rolling candidate (src/generated/candidate/RaindexV6SubParser.sol — bytecode hash, counterfactual deploy address, creation code) and src/generated/RaindexV6SubParserPointers.sol (operand-handler and literal-parser function pointers) both moved. That is the rolling-candidate model doing its job, not drift: the released record is empty, so no frozen src/generated/<tag>/ snapshot is affected, and the next sol-v* release will deploy the new sub-parser bytecode.

RaindexV6, RouteProcessor4 and the arb/flash-borrower candidates are byte-identical after the bump (with bytecode_hash = "none" and cbor_metadata = false, the re-pathed imports alone move nothing), so those pins stay put.

QA

  • Discriminating tests: n/a - dependency version bump plus Build.sol-regenerated artifacts; no behavior is authored in this repo for a new test to discriminate. The gate is the full existing suite (unit + fork) on CI, which ran green on the pre-bump base in Migrate release machinery to rain-deploy 0.1.7 tag-driven releases #2838.
  • Mutations applied: n/a - the diff is version pins, import-path re-spellings, one alias remapping and generated output; there is no hand-written logic line to mutate. No mutants config is committed.
  • Oracle: the regeneration itself - forge script ./script/Build.sol output committed verbatim, re-asserted independently by CI's copy-artifacts currency check; upstream bytes are pinned by the Soldeer registry checksum + integrity hashes in soldeer.lock.
  • Category check: user ruling asks exactly one thing - "put everything on latest solmem"; covered: dependency pin, lockfile, import re-paths, stale-remapping pruning, dep-internal prefix alias, candidate regeneration.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Updated the SolMem dependency to version 0.1.26.
    • Updated related dependency references throughout the project.
  • Bug Fixes
    • Ensured all components use consistent, up-to-date SolMem libraries for improved compatibility and reliability.

Latest published solmem. The three direct importers (RaindexV6,
RaindexV6SubParser, LibRaindexSubParser) re-path to the 0.1.26 prefix;
raindex imports nothing 0.1.26 dropped (LibStackPointer is gone upstream
but was never imported here).

rainlang 0.1.5, rain-interpreter-interface 0.1.0, rain-intorastring
0.1.0 and rain-lib-memkv 0.1.0 still spell solmem 0.1.3 internally, so
the old prefix is aliased onto the installed 0.1.26 in foundry.toml,
following the existing forge-std/rain-sol-codegen/rain-deploy alias
pattern. The only 0.1.3-prefixed files importing the deleted
LibStackPointer are two rainlang concrete test files nothing in this
repo reaches.

Candidates regenerated via script/Build.sol: the RaindexV6SubParser
candidate moved (bytecode hash, counterfactual address, function
pointers); RaindexV6 and the arb contracts' bytecode is unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 19978799-71de-459e-9aa5-8db5ff0b64a8

📥 Commits

Reviewing files that changed from the base of the PR and between ecd25e0 and c920f79.

⛔ Files ignored due to path filters (3)
  • soldeer.lock is excluded by !**/*.lock
  • src/generated/RaindexV6SubParserPointers.sol is excluded by !**/generated/**
  • src/generated/candidate/RaindexV6SubParser.sol is excluded by !**/generated/**
📒 Files selected for processing (5)
  • foundry.toml
  • remappings.txt
  • src/concrete/parser/RaindexV6SubParser.sol
  • src/concrete/raindex/RaindexV6.sol
  • src/lib/LibRaindexSubParser.sol

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The project updates its Soldeer dependency and remappings from rain-solmem 0.1.3 to 0.1.26. Solidity imports now use version 0.1.26, with a legacy-prefix remapping retained.

Changes

rain-solmem dependency upgrade

Layer / File(s) Summary
Dependency resolution configuration
foundry.toml, remappings.txt
The project installs and maps rain-solmem version 0.1.26. A legacy 0.1.3 import prefix maps to the newer dependency.
Solidity import migration
src/concrete/parser/RaindexV6SubParser.sol, src/concrete/raindex/RaindexV6.sol, src/lib/LibRaindexSubParser.sol
The Solidity imports for array, matrix, and bytes32 libraries now reference rain-solmem version 0.1.26.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to c920f

This PR updates the dependency pin, import paths, lockfile, remappings, and regenerated parser artifacts; no actionable merge-blocking risk remains after normal checks and review.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: updating rain-solmem from version 0.1.3 to 0.1.26.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (5 skipped: 5 unsupported.)
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 2026-08-22-solmem-0-1-26

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@thedavidmeister
thedavidmeister marked this pull request as draft August 22, 2026 17:12
@thedavidmeister

Copy link
Copy Markdown
Contributor Author

Converting to draft: org-level sequencing puts this bump behind the upstream chain (rainlang.interface publishes rainlang-interface 0.2.x, rainlang migrates to it and bumps solmem, then raindex bumps and migrates rain-interpreter-interface 0.1.0 -> rainlang-interface 0.2.x in the same move).

State of this branch as it stands, for the record:

  • Without the dep-prefix alias remapping, the bump is a hard wall: forge build fails with 374 unresolved-import errors, because rainlang 0.1.5 / rain-interpreter-interface 0.1.0 / rain-intorastring 0.1.0 / rain-lib-memkv 0.1.0 vendored sources hard-pin the rain-solmem-0.1.3/ prefix and recursive_deps = false resolves them through this repo's remappings.
  • With the alias (as committed here), the tree compiles and the bulk of the suite ran green on CI; the remaining red is (a) the four RaindexV6SubParser pin-equality tests plus InvalidJump reverts in sub-parser context tests - a pointers fixed-point artifact of a single Build.sol pass (the sub-parser's bytecode embeds the regenerated pointer constants, so regeneration needs re-running to idempotence), and (b) the slither static job. The alias also means vendored rainlang sources compile against solmem 0.1.26 rather than the 0.1.3 they pinned, which is the substantive reason to prefer the upstream-first sequencing.

Not abandoned - parked until rainlang publishes a solmem-0.1.26-aligned release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant