Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/language_status/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ epic #813), not that no cases exist.
| embedded_python | production | line_exclusive | 51/52 | 64 | 107 | not written |
| **[fortran](fortran.md)** | production | positional_anchored | 45/52 | 35 | 101 | **written** |
| go | production | standard_block | 51/52 | 47 | 84 | not written |
| groovy | production | standard_block | 44/48 | 53 | 91 | not written |
| **[groovy](groovy.md)** | production | standard_block | 44/48 | 53 | 91 | **written** |
| haskell | production | recursive_block_haskell | 52/52 | 48 | 97 | not written |
| html | production | block_exclusive | 39/48 | 91 | 123 | not written |
| **[java](java.md)** | production | standard_block | 50/52 | 70 | 91 | **written** |
Expand Down
427 changes: 427 additions & 0 deletions docs/language_status/groovy.md

Large diffs are not rendered by default.

18 changes: 17 additions & 1 deletion docs/self_scan/manual_verification.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,22 @@
"verified_by": "Claude Sonnet 5"
}
},
"groovy": {
"class": {
"note": "class_start verified against the same 188-file language-crucible v1.2.0 groovy corpus, same independent grep-based ground-truth methodology as the function entry above (zero shared implementation, triple-quoted-string-aware). Fixed one real GitGalaxy defect found in the process: class_start's capture group was entirely missing (pattern.groups() == 0) -- class *existence* was detected correctly (struct_class_start's raw count matched real declarations exactly), but detector.py's _resolve_class_start_match could never extract a name from a group that didn't exist, so every single one of the 286 pre-fix class_data rows was literally named the generic placeholder 'Anonymous_Class' instead of its real name -- confirmed the only language in _CLASS_START_NAMED_EXTRACTION_LANGS with this defect (checked all 36). Post-fix: zero unexplained recall gaps found across the whole corpus, and a precision spot-check found no false-positive class of the kind found for functions (class_start requires an explicit class/interface/trait/enum/record keyword, a far more constrained grammar shape than func_start's zero-prefix branch, so the MarkupBuilder/DSL-call ambiguity filed as #2530 doesn't apply here). See docs/language_status/groovy.md \u00a79.",
"total": 222,
"verified": 222,
"verified_at": "2026-08-31",
"verified_by": "Claude Sonnet 5"
},
"function": {
"note": "func_start verified against the language-crucible v1.2.0 groovy corpus (188 files, 9 real-world repos -- fineract's Gradle plugin, Gradle's own build-logic/integTest sources, Spock's own core+smoke+spec suites, Jenkins .groovy view templates). tree-sitter has no usable grammar for this language (see NODE_MAPS's own groovy exclusion comment in tree_sitter_accuracy_audit.py) and ctags has zero Groovy support at all (confirmed via `ctags --list-languages`), so this is a genuine 1-tool language despite tree-sitter nominally loading a 'groovy' grammar. Verification method: an independent grep-based ground-truth scan (no shared implementation with func_start) across every one of the 188 files, cross-checked against the real pipeline's function_data output by name, with triple-quoted string spans excluded via quote-parity tracking (both sides must agree a candidate is real top-level code, not fixture text embedded in a multi-line string) -- zero unexplained recall gaps found after fixing three real GitGalaxy defects surfaced along the way: func_start's zero-prefix branch matched the bare 'def' keyword once a quoted Spock feature-method name got correctly blanked for brace-safety (fixed by excluding 'def' from the branch's own exclusion lookahead, plus preserving the quoted name in detector.py's brace-safety shield instead of blanking it); Prism never shielded groovy's \"\"\"/''' multi-line strings at all, letting embedded fixture/template code (Gradle build-script snippets, Spock's own compiler-smoke-test source samples) leak into the real code stream and corrupt extraction for the rest of the file; and _extract_name's generic last-token heuristic silently reduced a quoted multi-word Spock description down to its last word. A manual precision spot-check (50+ random named entries read against source) found one remaining, unfixed defect class: MarkupBuilder/Jenkins-Pipeline-DSL calls with a trailing closure (`button(name: \"clear\") { ... }`) are syntactically indistinguishable from a real zero-prefix declaration and get misdetected the same way -- filed as #2530 (a genuine grammar ambiguity needing its own design pass, not a drive-by regex fix). Confirmed confined to the jenkins_view_groovy/ corpus folder (29 files): all 57 functions detected there are this shape, subtracted from `verified` below. See docs/language_status/groovy.md \u00a79.",
"total": 718,
"verified": 661,
"verified_at": "2026-08-31",
"verified_by": "Claude Sonnet 5"
}
},
"jcl": {
"class": {
"note": "class_start (JCL JOB cards) verified against the language-crucible v1.2.0 corpus (186 .jcl files, 6 repos; 185 pipeline-scanned, same DFH$SIP1.jcl zero-density exclusion as the function entry). Three checks over the whole corpus: (1) GitGalaxy's class_start regex vs. an independent JOB-card grep (^//[A-Za-z0-9@#$][A-Za-z0-9@#$]{0,7}[ \\t]+JOB([ \\t]|$), no shared implementation, independently rejects //*-commented job cards) -- exact agreement, 118 == 118, zero per-file mismatches. The 12 cics-banking-sample-application-cbsa/CREL0*.jcl + CREDB2L.jcl files whose entire JOB card is commented out (//*NAME JOB ...) and the 2 cics-genapp sampcma/sampwui.jcl angle-bracket placeholders (//<CMASAPPL> JOB) remain correctly NOT counted. (2) real pipeline DB output: struct_class_start == class_count == 118 on every file, class_data carries 118 rows (JCL is in _CLASS_START_NAMED_EXTRACTION_LANGS since #2203, no brace-slice fallback). (3) direct source read of the v1.2.0 delta: cics-java-jcics-samples/etc_VSAM_DEFVSAM.jcl contributes exactly one JOB card (//DEFVSAM JOB). Every corpus file carries at most one JOB card. Count moved 117 -> 118 on 2026-08-30 solely from that one new file (crucible v1.1.0 -> v1.2.0, gitgalaxy pin bump #2478). Zero false positives. See docs/language_status/jcl.md #9.",
Expand All @@ -73,7 +89,7 @@
"verified_by": "Claude Sonnet 5"
},
"function": {
"note": "func_start named extraction, verified by a string-aware independent scanner + full name-diff against EVERY detected handler across the whole language-crucible/data/livecode corpus (98 ingested files): 964/964 handler headers map 1:1 to a real definition, ZERO false positives, ZERO missed. Both dialects handled after #2409/#2410: LiveCode Script `[public|private] on|command|function|getprop|setprop <name>` (unparenthesized args) and LiveCode Builder `.lcb` `[public|private] handler <name>(...)` (typed, parenthesized). `foreign handler` FFI binding declarations (C-prototype shaped, `binds to \"<builtin>\"`, no body) are correctly NOT counted, and `handler type <Name>()` (a function-pointer typedef) is not counted. `total` is GitGalaxy's own live func-claim count (964), the chart's staleness anchor (matches both func_recall.matched_consensus and func_precision.total_slots); this is a PRECISION record for handler *existence*. #2410 routed livecode to detector.py Mode D (keyword depth-tracking) -- before that, Mode B brace-slicing produced ONE FunctionNode for the entire corpus. Count moved 934 -> 964 on 2026-08-29 when #2419 was fixed: `_apply_literal_shield` / prism's `multi_style_live` string mask was C-escape-aware, so `\"\\\\\"` (a real one-char LiveCode string containing a backslash) was misread as an escaped quote, desyncing quote pairing until a `/*` inside a later string literal (`\"Android/*\"`) opened a bogus block comment that blanked ~30 real handlers in revsaveasandroidstandalone.livecodescript alone. Both the earlier 934 count AND its verification undercounted for the same reason. No truncation markers remain anywhere in the corpus. See docs/language_status/livecode.md §9.",
"note": "func_start named extraction, verified by a string-aware independent scanner + full name-diff against EVERY detected handler across the whole language-crucible/data/livecode corpus (98 ingested files): 964/964 handler headers map 1:1 to a real definition, ZERO false positives, ZERO missed. Both dialects handled after #2409/#2410: LiveCode Script `[public|private] on|command|function|getprop|setprop <name>` (unparenthesized args) and LiveCode Builder `.lcb` `[public|private] handler <name>(...)` (typed, parenthesized). `foreign handler` FFI binding declarations (C-prototype shaped, `binds to \"<builtin>\"`, no body) are correctly NOT counted, and `handler type <Name>()` (a function-pointer typedef) is not counted. `total` is GitGalaxy's own live func-claim count (964), the chart's staleness anchor (matches both func_recall.matched_consensus and func_precision.total_slots); this is a PRECISION record for handler *existence*. #2410 routed livecode to detector.py Mode D (keyword depth-tracking) -- before that, Mode B brace-slicing produced ONE FunctionNode for the entire corpus. Count moved 934 -> 964 on 2026-08-29 when #2419 was fixed: `_apply_literal_shield` / prism's `multi_style_live` string mask was C-escape-aware, so `\"\\\\\"` (a real one-char LiveCode string containing a backslash) was misread as an escaped quote, desyncing quote pairing until a `/*` inside a later string literal (`\"Android/*\"`) opened a bogus block comment that blanked ~30 real handlers in revsaveasandroidstandalone.livecodescript alone. Both the earlier 934 count AND its verification undercounted for the same reason. No truncation markers remain anywhere in the corpus. See docs/language_status/livecode.md \u00a79.",
"total": 964,
"verified": 964,
"verified_at": "2026-08-29",
Expand Down
22 changes: 14 additions & 8 deletions docs/self_scan/tri_comparison_chart.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading