You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit a1af90a
Browse filesBrowse the repository at this point in the historyBrowse files
Smell-audited: 1: the campaign's REMAINING note claimed (String. char-array)
was missing — probing showed it already works (stale note, corrected in the
discharge); the real gap was valueOf's char[] overloads silently rendering
"#<array>" (a bug, not just a missing method).
String/valueOf gained the char[] and char[]/offset/count overloads
(building the string FROM the characters; bounds-checked window);
String/copyValueOf (1+3 arg JVM alias) registered on the static surface.
Corpus string_join_static +5 clj-byte-matched goldens. D-526 discharged —
9 drains total (java.lang scalars, Objects, Arrays, Collections, String);
deliberate omissions doc'd at their surfaces per the dead-interop lesson.
Repeatable drain (ADR-0166). Code-touching → diff oracle + corpus apply.
231
-
Per /continue: catalog or fill one interop surface's missing statics.
232
-
SSOT: ADR-0166 row 5.
233
-
last_reviewed: "2026-06-25"
234
155
- id: "D-527"
235
156
status: |-
236
157
USER RECONFIRMED 2026-07-02: direction stands — Clojure stdlib near-total equivalence is the goal; NOT a priority raise (easiest-first order unchanged).
status: "DISCHARGED 2026-07-07 — the Java-interop static-member catalog+fill campaign is COMPLETE across 9 drains. DRAIN 9 (final): String char[] forms — `String/valueOf` gained the char[] and char[]/offset/count overloads (was falling into the generic \"#<array>\" render — a real bug), `String/copyValueOf` (1+3 arg, the JVM alias) registered, `(String. (char-array …))` verified already working (the campaign's stale REMAINING note). Corpus string_join_static +5 clj-byte-matched goldens. FULL CAMPAIGN LEDGER: D1 java.lang scalar sweep (String/join was the only gap — filled); D2 unsigned-arithmetic + JDK-edge Long/Integer statics; D3-D4 (see history); D5 java.util.Objects (new surface); D6 java.lang scalar close-out (hashCode formulas + Math ceilDiv family); D7 java.util.Arrays (new surface: asList/toString/copyOf/sort/equals/fill); D8 java.util.Collections (new surface: emptyList/singletonList/sort/reverse/max/min); D9 String char[] forms. Deliberate omissions (all doc'd at their surfaces, dead-interop lesson): Arrays binarySearch/hashCode/typed-primitive overloads; Collections unmodifiable*/shuffle/synchronized*; Objects hash/hashCode (Java hashCode contract ≠ cljw value hash). Any future static gap is a NEW discovery against a then-current consumer, not this row."
6472
+
category: "interop"
6473
+
barrier: "DISCHARGED (was: static-member gap catalog+fill, ADR-0166 row 5)."
6474
+
last_reviewed: "2026-07-07"
6475
+
6549
6476
conventions: |-
6550
6477
- Structure: two top-level lists — `active:` and `discharged:`. Active entries carry id / status / category / barrier (+ optional quality_floor / last_reviewed); discharged entries carry id / discharged_at / resolution. Edit as YAML (no Markdown table to align).
6551
6478
- New debt: grep `.dev/debt.yaml` for class-overlap before adding (per `.claude/rules/debt_dedup.md`).
0 commit comments