Skip to content

Conversation

@tdavidcl
Copy link
Member

@tdavidcl tdavidcl commented Dec 7, 2025

No description provided.

@gemini-code-assist
Copy link

Summary of Changes

Hello @tdavidcl, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the project's code quality and static analysis capabilities by integrating a broader range of clang-tidy checks. The changes enable more rigorous code analysis during development by configuring clangd to utilize these new checks. A specific code adjustment was made to the EventList destructor to correctly specify its exception-throwing behavior, ensuring compliance with modern C++ exception handling best practices and aligning with the newly enforced static analysis rules.

Highlights

  • Expanded Clang-Tidy Checks: A comprehensive set of new clang-tidy checks has been enabled in the .clang-tidy configuration file. These checks cover various categories including cppcoreguidelines, modernize, bugprone, performance (with performance-noexcept-destructor explicitly disabled), misc, readability, and google-build-namespaces, aiming to improve code quality and adherence to best practices.
  • Clangd Integration: The .clangd configuration has been updated to enable ClangTidy diagnostics. This ensures that the newly added clang-tidy checks are actively applied and reported by clangd during development, providing immediate feedback to developers.
  • Exception Specification Update for EventList: The destructor for sham::EventList in both EventList.hpp and EventList.cpp has been modified to explicitly declare noexcept(false). This change accurately reflects that the destructor can potentially throw exceptions, likely in response to one of the newly enabled clang-tidy checks. Additionally, the exception throwing mechanism within the destructor was updated from shambase::throw_with_loc to throw shambase::make_except_with_loc for consistency.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request significantly enhances static analysis by adding numerous clang-tidy checks and enabling them in clangd. The code changes in EventList.hpp and EventList.cpp are good fixes to address warnings from the newly enabled checks, specifically performance-noexcept-destructor.

One of the changes in EventList.cpp from shambase::throw_with_loc to throw shambase::make_except_with_loc fixes an issue where the source location was appended twice to the exception message. This indicates a bug in the shambase::throw_with_loc helper function itself. While this PR correctly fixes the issue at this call site, it would be beneficial to fix throw_with_loc in shambase/exception.hpp to prevent this bug in other parts of the codebase.

I've added one suggestion to improve the maintainability of the .clang-tidy configuration file by sorting the checks.

@github-actions
Copy link

Workflow report

workflow report corresponding to commit 9161d88
Commiter email is timothee.davidcleris@proton.me

Light CI is enabled. This will only run the basic tests and not the full tests.
Merging a PR require the job "on PR / all" to pass which is disabled in this case.

Pre-commit check report

Pre-commit check: ✅

trim trailing whitespace.................................................Passed
fix end of files.........................................................Passed
check for merge conflicts................................................Passed
check that executables have shebangs.....................................Passed
check that scripts with shebangs are executable..........................Passed
check for added large files..............................................Passed
check for case conflicts.................................................Passed
check for broken symlinks................................................Passed
check yaml...............................................................Passed
detect private key.......................................................Passed
No-tabs checker..........................................................Passed
Tabs remover.............................................................Passed
Validate GitHub Workflows................................................Passed
clang-format.............................................................Passed
black....................................................................Passed
ruff check...............................................................Passed
Check doxygen headers....................................................Passed
Check license headers....................................................Passed
Check #pragma once.......................................................Passed
Check SYCL #include......................................................Passed
No ssh in git submodules remote..........................................Passed

Test pipeline can run.

Doxygen diff with main

Removed warnings : 0
New warnings : 0
Warnings count : 7595 → 7595 (0.0%)

Detailed changes :

@tdavidcl tdavidcl closed this Jan 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant