-
Notifications
You must be signed in to change notification settings - Fork 45
[wip] compiler with llvm20 #1294
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
PR Review AnalysisTodo List:
Review SummaryThis PR updates the LLVM/ESP Clang toolchain from version 19.1.2 to 20.x to fix issue #1292, which was causing ESP32 compilation failures due to undefined temporary symbols. Code Analysis✅ Positive Aspects
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Summary of Changes
Hello @luoliwoshang, 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 focuses on upgrading the underlying LLVM compiler infrastructure used by the project. The changes involve updating build configurations to leverage the newer LLVM 20 libraries and adjusting the cross-compilation toolchain to a compatible version. This update addresses a reported issue and ensures the project remains current with its compiler dependencies.
Highlights
- LLVM Version Upgrade: The project's build configuration has been updated to link against LLVM 20 libraries instead of LLVM 19 across all supported platforms (macOS AMD64/ARM64, Linux AMD64/ARM64).
- Cross-Compilation Toolchain Update: The ESP-IDF Clang cross-compilation toolchain references have been updated to a newer version (20.x) and point to a different prebuilt repository, addressing issue #1292.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command>
or @gemini-code-assist <command>
. Below is a summary of the supported commands.
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 issue 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
-
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. ↩
There was a problem hiding this 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 aims to upgrade the compiler to use LLVM 20. The changes involve updating LLVM library versions in the GoReleaser configuration and modifying the source URL for ESP-Clang prebuilt binaries. While the LLVM version update seems correct, the change to use a personal repository for ESP-Clang introduces a potential risk that should be addressed.
espClangBaseUrl = "https://github.com/luoliwoshang/espressif-llvm-project-prebuilt/releases/download/20.x_20250911-1" | ||
espClangVersion = "20.x_20250911-1" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The base URL for esp-clang
has been changed to a personal GitHub repository (luoliwoshang
). While this might be for development purposes, as the PR is a work in progress, relying on a personal fork for dependencies introduces potential stability and security risks. For production-readiness, it's highly recommended to use pre-built binaries from an official source or host them under the goplus
organization. If this is a temporary measure, please add a comment explaining the situation and a TODO
to track switching to an official source.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1294 +/- ##
=======================================
Coverage 90.22% 90.22%
=======================================
Files 42 42
Lines 11931 11931
=======================================
Hits 10765 10765
Misses 1032 1032
Partials 134 134 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
fixed #1292