Skip to content

Conversation

@InitialMoon
Copy link

This pull request introduces several improvements and refactors to the codebase, focusing on updating integrations with third-party LLM APIs (especially Google's Gemini), improving logging and error handling, and modernizing the way Tree-sitter language libraries are loaded. The changes enhance compatibility, robustness, and observability across key modules.

LLM Integration and Logging Improvements:

  • Refactored Gemini API integration in LLM_utils.py to use the latest google-genai SDK, updated safety settings, improved model selection logic, and enhanced error/log reporting for better observability.
  • Improved logging for DeepSeek and Claude model inference calls to provide clearer runtime feedback.

Tree-sitter Language Loading Modernization:

  • Updated TS_analyzer.py to use ctypes for loading Tree-sitter language libraries, avoiding deprecation warnings and improving compatibility with Tree-sitter 0.21.x; includes a fallback to the deprecated method for stability.
  • Added ctypes import to TS_analyzer.py to support the new loading mechanism.

Minor Dependency and Import Cleanups:

  • Cleaned up unused imports in build.py and adjusted the import style for tree_sitter's Language.

These changes collectively improve maintainability, API compatibility, and developer experience.

Use ctypes for compatibility with tree-sitter 0.21.x
- Implement Cpp_RACE_extractor for extracting sources and sinks related to race conditions.
- Update dfbscan.py to include Cpp_RACE_extractor.
- Modify path_validator.json to include RACE detection guidelines.
- Update repoaudit.py to support RACE as a bug type.
- Adjust run_repoaudit.sh to set default bug type to RACE.
- Create race.c as a benchmark for testing race condition detection.
Copy link
Contributor

@chengpeng-wang chengpeng-wang left a comment

Choose a reason for hiding this comment

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

Thank you for your contribution! The patch looks good overall. However, race detection is essentially quite complex and the one you currently implemented only models a specific pattern. To fully support race detection, we need to implement additional symbolic components for the thread reasoning in the tsanalyzer. Therefore, we prefer not to integrate the race detector in this version.

To move forward with the patch merge, could you please remove the changes from commit 238719? This will allow us to merge the other changes first.

Thank you!

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