Skip to content

upgrading cpp#435

Merged
sanchitmonga22 merged 1 commit intosmonga/cpp_optmfrom
shubham/upgrade-cpp
Mar 2, 2026
Merged

upgrading cpp#435
sanchitmonga22 merged 1 commit intosmonga/cpp_optmfrom
shubham/upgrade-cpp

Conversation

@shubhammalhotra28
Copy link
Contributor

@shubhammalhotra28 shubhammalhotra28 commented Feb 28, 2026

Description

Brief description of the changes made.

Type of Change

  • Bug fix
  • New feature
  • Documentation update
  • Refactoring

Testing

  • Lint passes locally
  • Added/updated tests for changes

Platform-Specific Testing (check all that apply)

Swift SDK / iOS Sample:

  • Tested on iPhone (Simulator or Device)
  • Tested on iPad / Tablet
  • Tested on Mac (macOS target)

Kotlin SDK / Android Sample:

  • Tested on Android Phone (Emulator or Device)
  • Tested on Android Tablet

Flutter SDK / Flutter Sample:

  • Tested on iOS
  • Tested on Android

React Native SDK / React Native Sample:

  • Tested on iOS
  • Tested on Android

Playground:

  • Tested on target platform
  • Verified no regressions in existing Playground projects
    Web SDK / Web Sample:
  • Tested in Chrome (Desktop)
  • Tested in Firefox
  • Tested in Safari
  • WASM backends load (LlamaCpp + ONNX)
  • OPFS storage persistence verified (survives page refresh)
  • Settings persistence verified (localStorage)

Labels

Please add the appropriate label(s):

SDKs:

  • Swift SDK - Changes to Swift SDK (sdk/runanywhere-swift)
  • Kotlin SDK - Changes to Kotlin SDK (sdk/runanywhere-kotlin)
  • Flutter SDK - Changes to Flutter SDK (sdk/runanywhere-flutter)
  • React Native SDK - Changes to React Native SDK (sdk/runanywhere-react-native)
  • Web SDK - Changes to Web SDK (sdk/runanywhere-web)
  • Commons - Changes to shared native code (sdk/runanywhere-commons)

Sample Apps:

  • iOS Sample - Changes to iOS example app (examples/ios)
  • Android Sample - Changes to Android example app (examples/android)
  • Flutter Sample - Changes to Flutter example app (examples/flutter)
  • React Native Sample - Changes to React Native example app (examples/react-native)
  • Web Sample - Changes to Web example app (examples/web)

Checklist

  • Code follows project style guidelines
  • Self-review completed
  • Documentation updated (if needed)

Screenshots

Attach relevant UI screenshots for changes (if applicable):

  • Mobile (Phone)
  • Tablet / iPad
  • Desktop / Mac

Important

Upgrade C++ standard from C++17 to C++20 across the project, including core, backend, and testing components, and update related documentation.

  • C++ Standard Upgrade:
    • Upgrade C++ standard from C++17 to C++20 in Playground/linux-voice-assistant/CMakeLists.txt, sdk/runanywhere-commons/CMakeLists.txt, and sdk/runanywhere-commons/tests/CMakeLists.txt.
    • Update Standard to c++20 in .clang-format.
    • Reflect C++20 requirement in sdk/runanywhere-commons/CLAUDE.md and sdk/runanywhere-commons/README.md.
  • Documentation:
    • Update C++ version requirement in Playground/README.md and Playground/linux-voice-assistant/README.md.
  • Miscellaneous:
    • Adjust C++ standard in backend CMakeLists for llamacpp, onnx, rag, whispercpp, and whisperkit_coreml to C++20.
    • Ensure C++20 standard in sdk/runanywhere-commons/src/jni/CMakeLists.txt and sdk/runanywhere-commons/src/server/CMakeLists.txt.

This description was created by Ellipsis for 632d08a. You can customize this summary. It will automatically update as commits are pushed.

Summary by CodeRabbit

  • Chores
    • Upgraded C++ language standard requirement from C++17 to C++20 across all build configurations and projects to leverage modern language features and compiler support.

Greptile Summary

This PR upgrades the C++ standard from C++17 to C++20 across the entire codebase. The upgrade is comprehensive and consistent, touching all CMakeLists.txt files, documentation, and code formatting configuration.

Key changes:

  • Updated all CMAKE_CXX_STANDARD and target_compile_features from 17/cxx_std_17 to 20/cxx_std_20
  • Updated .clang-format Standard from c++17 to c++20
  • Updated documentation (CLAUDE.md, README.md, Playground READMEs) to reflect C++20 requirement
  • Added MSVC to the list of supported compilers in README.md
  • Minor cleanup: removed trailing whitespace in RAG backend CMakeLists.txt

Scope:
The changes affect 18 files across the commons SDK, web SDK, and playground projects. All build configurations, tests, backends, and tools have been updated consistently.

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk
  • The changes are purely mechanical and consistent across all files. Upgrading from C++17 to C++20 is backward compatible for existing code, and all CMake configurations have been updated uniformly. No code logic was changed.
  • No files require special attention

Important Files Changed

Filename Overview
sdk/runanywhere-commons/CMakeLists.txt Updated C++ standard from 17 to 20 consistently across main CMake configuration
sdk/runanywhere-commons/.clang-format Updated clang-format Standard from c++17 to c++20 for code formatting
sdk/runanywhere-commons/CLAUDE.md Updated documentation to reflect C++20 requirement
sdk/runanywhere-commons/README.md Updated prerequisites and compiler requirements to C++20, added MSVC to supported compilers
sdk/runanywhere-commons/src/backends/llamacpp/CMakeLists.txt Updated LlamaCPP backend to use C++20 standard
sdk/runanywhere-commons/src/backends/onnx/CMakeLists.txt Updated ONNX backend to use C++20 standard
sdk/runanywhere-commons/src/backends/rag/CMakeLists.txt Updated RAG backend to C++20, updated comment to reflect minimum requirement, removed trailing whitespace

Last reviewed commit: 632d08a

@coderabbitai
Copy link

coderabbitai bot commented Feb 28, 2026

📝 Walkthrough

Walkthrough

The pull request systematically updates the C++ language standard requirement from C++17 to C++20 across the entire project, including build configuration files, documentation, and formatter settings.

Changes

Cohort / File(s) Summary
Documentation
Playground/README.md, Playground/linux-voice-assistant/README.md, sdk/runanywhere-commons/README.md, sdk/runanywhere-commons/CLAUDE.md
Updated C++ version requirement from C++17 to C++20 in platform prerequisites and design guidelines. Added MSVC as a supported compiler to README.
Playground Build Configuration
Playground/linux-voice-assistant/CMakeLists.txt, Playground/openclaw-hybrid-assistant/CMakeLists.txt
Bumped CMAKE_CXX_STANDARD from 17 to 20 in top-level CMakeLists.txt files.
RunAnywhere Commons Core Build
sdk/runanywhere-commons/CMakeLists.txt
Updated global CMAKE_CXX_STANDARD and rac_commons target CXX_STANDARD property from 17 to 20.
Backend CMakeLists Configuration
sdk/runanywhere-commons/src/backends/llamacpp/CMakeLists.txt, sdk/runanywhere-commons/src/backends/onnx/CMakeLists.txt, sdk/runanywhere-commons/src/backends/rag/CMakeLists.txt, sdk/runanywhere-commons/src/backends/whispercpp/CMakeLists.txt, sdk/runanywhere-commons/src/backends/whisperkit_coreml/CMakeLists.txt
Updated CXX_STANDARD and target_compile_features from cxx_std_17 to cxx_std_20 across all backend targets (ONNX, LlamaCPP, RAG, WhisperCPP, WhisperKit CoreML).
Additional Build Configuration
sdk/runanywhere-commons/src/jni/CMakeLists.txt, sdk/runanywhere-commons/src/server/CMakeLists.txt, sdk/runanywhere-commons/tools/CMakeLists.txt, sdk/runanywhere-web/wasm/CMakeLists.txt
Updated CMAKE_CXX_STANDARD and target_compile_features from C++17 to C++20 for JNI, server, tools, and WASM targets.
Test Targets
sdk/runanywhere-commons/tests/CMakeLists.txt
Updated target_compile_features from cxx_std_17 to cxx_std_20 for all test targets including test_core, test_vad, test_stt, test_tts, test_wakeword, test_llm, test_voice_agent, and RAG-related tests.
Development Tools
sdk/runanywhere-commons/.clang-format
Updated formatter configuration C++ language standard from c++17 to c++20.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

Poem

🐰 Hopping through the code with glee,
C++20 now we see!
Standards raised from seventeen high,
New features make the future fly,
Consistent bumps throughout the land, 🎉
A hoppy update, oh so grand!

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description lacks substantive content in all key sections. While the template structure is present, critical sections like brief description, type of change selection, testing completion, and label selection are entirely empty or unchecked. Fill in the brief description with a summary of the C++20 upgrade, select 'Refactoring' as the change type, complete testing checklists and platform-specific testing, and select appropriate labels (Commons, Web SDK, Playground).
Title check ❓ Inconclusive The title 'upgrading cpp' is vague and generic; it lacks specificity about what C++ upgrade (e.g., C++17 to C++20) or scope of changes is involved. Use a more specific title like 'Upgrade C++ standard from C++17 to C++20' to clearly convey the main change.
✅ Passed checks (1 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch shubham/upgrade-cpp

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 and usage tips.

Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

Important

Looks good to me! 👍

Reviewed everything up to 632d08a in 14 seconds. Click for details.
  • Reviewed 358 lines of code in 18 files
  • Skipped 0 files when reviewing.
  • Skipped posting 0 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.

Workflow ID: wflow_SO55sm7cddvuN2iY

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

@sanchitmonga22 sanchitmonga22 changed the base branch from main to smonga/cpp_optm March 2, 2026 03:32
@sanchitmonga22 sanchitmonga22 merged commit 40868b7 into smonga/cpp_optm Mar 2, 2026
17 of 22 checks passed
@coderabbitai coderabbitai bot mentioned this pull request Mar 6, 2026
37 tasks
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.

2 participants