Multi lang support#126
Open
cuzzo wants to merge 48 commits into
Open
Conversation
Improve Decomplex SARIF messages, suppress generated Lua compatibility-prelude noise, and preserve Go name-type struct field types through static evidence. Document the multi-language Lineage validation pass and the current quality level for Python, TypeScript, Go, Lua, C, C++, C#, Java, Swift, and Kotlin. Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
Migrates all remaining Tier 1 detectors (Redundant Nil Guard, State Mesh, Temporal Ordering Pressure, State-Based Branch Density) to Rust with strict function-for-function parity with the Ruby gem. Ensures byte-for-byte JSON compatibility by matching discovery-order grouping and implementing Ruby regex logic in Rust. Co-authored-by: gemini-cli <218195315+gemini-cli@users.noreply.github.com>
Migrates all Tier 2 detectors to Rust: - Inconsistent Rename Clones - Derived-State Staleness - Implicit Control Flow - Weighted Inlined Cognitive Complexity - Locality Drag - Operational Discontinuity Strict function-for-function parity maintained with the Ruby source. Refactored existing Tier 2/Tier 3 detectors (Miner, SemanticAlias) to ensure identical discovery order and grouping semantics. All tests pass with byte-for-byte JSON identity. Co-authored-by: gemini-cli <218195315+gemini-cli@users.noreply.github.com>
Migrates the final Tier 3 detectors to Rust: - False Simplicity - Fat Unions - Function LCOM - Oversized Predicate - Path Condition - Sequence Mine (Broken Protocols) Maintains strict function-for-function parity with the Ruby source. All 25 comparison tests pass with byte-for-byte JSON identity. Co-authored-by: gemini-cli <218195315+gemini-cli@users.noreply.github.com>
- Refactored co_update.rs and predicate_alias.rs grouping mechanisms from O(N^2) array scans to O(N log N) utilizing a hybrid BTreeMap/Vec approach, dropping execution time from ~10s to near-zero. - Capped recursion depth in implicit_control_flow.rs AST traversal to prevent stack overflow during nested path evaluations in large files. Co-authored-by: gemini-cli <218195315+gemini-cli@users.noreply.github.com>
Comment on lines
+141
to
+152
| elsif is_memo | ||
| "immutable_convention" | ||
| elsif all_one_method | ||
| "pass_through" | ||
| elsif shadow | ||
| "shadow_state" | ||
| elsif ws >= 2 && rs <= 1 | ||
| "one_way_state" | ||
| elsif ws >= 2 && rs >= 2 | ||
| "mutable_entity" | ||
| else | ||
| "immutable_convention" |
| "one_way_state" | ||
| elsif ws >= 2 && rs >= 2 | ||
| "mutable_entity" | ||
| else |
| when ".c", ".h" then "c" | ||
| when ".cpp", ".cc", ".cxx", ".hpp", ".hh", ".hxx" then "cpp" | ||
| when ".cs" then "csharp" | ||
| else "ruby" |
| reader_method_count: 0, | ||
| write_sites: writers.map { |w| "#{w.file}:#{w.defn}:#{w.line}" }.uniq, | ||
| read_sites: [], | ||
| write_sites: writers.map { |w| "#{w.file}:#{w.defn}:#{w.line}" }.uniq, |
| write_sites: writers.map { |w| "#{w.file}:#{w.defn}:#{w.line}" }.uniq, | ||
| read_sites: [], | ||
| write_sites: writers.map { |w| "#{w.file}:#{w.defn}:#{w.line}" }.uniq, | ||
| read_sites: [], |
Comment on lines
+95
to
+97
| when comment | ||
| out << rest[0...comment] | ||
| return strip_strings(out) |
|
| Branch | multi-lang-support |
| Testbed | ubuntu-latest |
⚠️ WARNING: No Threshold found!Without a Threshold, no Alerts will ever be generated.
Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the--ci-only-thresholdsflag.
Click to view all benchmark results
| Benchmark | leak-build-ms | Measure (units) x 1e3 | leak-count | Measure (units) | leak-run-ms | Measure (units) |
|---|---|---|---|---|---|---|
| benchmarks/concurrent/01_socket_throughput/bench | 📈 view plot | 6.17 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 7.59 units |
| benchmarks/concurrent/06_dynamic_spawn/bench | 📈 view plot | 5.95 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 39.05 units |
| benchmarks/concurrent/11_parallel_aggregation/bench | 📈 view plot | 6.18 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 15.33 units |
| benchmarks/concurrent/18_atomic_counter/bench | 📈 view plot | 5.91 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 5.63 units |
| benchmarks/inter-clear/04_concurrent_mvcc_fat_struct/bench | 📈 view plot | 6.04 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 165.11 units |
| benchmarks/sequential/03_alloc_throughput/bench | 📈 view plot | 5.81 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 24.01 units |
| benchmarks/sequential/08_sort/bench | 📈 view plot | 6.04 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 5.02 units |
| benchmarks/sequential/13_soa_layout/bench | 📈 view plot | 5.83 units x 1e3 | 📈 view plot | 0.00 units | 📈 view plot | 741.47 units |
Diff Coverage BucketsDiff base:
Src Ruby Visibility BreakdownScope: Files: 163 Counts are nonblank, non-comment Ruby source lines. Protected methods are grouped into
Zig Special Coverage AlertsNo added production Zig lines require missing Loom/VOPR/wait-loop coverage alerts. |
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
|
|
||
| def check(input) | ||
| cached = input + 1 | ||
| input = 2 |
| total = cart.total | ||
| if total > 100 | ||
| if cart.discountable? | ||
| discount = 10 |
| end | ||
| if cart.taxable? | ||
| if cart.region | ||
| tax = total * 0.2 |
| end | ||
| if cart.valid? | ||
| if cart.ready? | ||
| status = :ready |
| # frozen_string_literal: true | ||
|
|
||
| def phase_shift | ||
| a = 1 |
| node | ||
| end | ||
|
|
||
| private |
| class TreeSitterLanguageAdapter | ||
| private | ||
|
|
||
| def effect_lexicon |
| node.named_children.last | ||
| elsif hidden_if?(node) | ||
| node.named_children.first | ||
| else |
Comment on lines
+952
to
+953
| elsif (match = line.match(/\A\s*([A-Z]\w*)\s*=\s*([A-Z]\w*(?:::[A-Z]\w*)*)\b/)) | ||
| aliases[match[1]] = match[2] |
| def audit(name) | ||
| puts(name) | ||
| send(:record, name) | ||
| $GLOBAL_STATE |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.