Repository navigation
Commit b11bae1
committed
feat(interop): java.lang.Character complete — full-Unicode surface (47 methods + 70 fields)
Smell-audited: 1: finished-form over ASCII approximation — classification
flipped to generated UCD 16.0.0 tables (the D-057 explicitly-out residual,
now closed); getName is the one explicit-unsupported member (D-561), not a
silent stub; behavior change corpus-locked (154 golden pairs, 0 DIFF).
- gen_unicode_case.py also emits General_Category (categoryOf binary
search, JVM getType byte values), Bidi_Class (getDirectionality),
Bidi_Mirrored, simple-titlecase, contributory properties (PropList:
Other_Uppercase/Lowercase/Alphabetic/ID_Start/ID_Continue, Ideographic),
and decimal/numeric value tables into unicode_category.zig /
unicode_case.zig.
- charset.zig classification = the JVM formulas over those tables
(isLetter excludes Nl; isUpperCase includes Other_Uppercase; JVM
isWhitespace incl. 0x1C-0x1F; digit() takes any Nd + fullwidth letters;
getNumericValue handles Nl/No + -2 fractional sentinel).
- Character.zig: JVM char/int overload pairs (case folds echo the arg
type; out-of-range int = the JVM unassigned answer, not an error); new
statics compare/valueOf/isSpace/isSpaceChar/isTitleCase/toTitleCase/
isDefined/isMirrored/isIdeographic/isJavaIdentifier*/isUnicodeIdentifier*/
isIdentifierIgnorable/getType/getDirectionality/codePointBefore/
codePointCount/offsetByCodePoints/reverseBytes; getName raises explicit
unsupported (D-561).
- Static fields via a new StaticFieldValue .char arm: MIN/MAX_VALUE,
radix/size/codepoint bounds, surrogate bounds, 31 category + 24
directionality constants (Character/TYPE skipped: no primitive Class,
ADR-0059).
- .char instance methods charValue/compareTo on the native descriptor;
valueHash .char arm makes (hash \a) = (.hashCode \a) =
(Character/hashCode \a) = 97 (clj parity).
- compat_tiers.yaml entry refreshed; corpus test/diff/clj_corpus/
character.txt; e2e phase14_character_statics extended (ASCII-era header
rewritten).1 parent 479c783 commit b11bae1
14 files changed
Lines changed: 8262 additions & 177 deletions
File tree
- .dev
- data
- scripts
- src
- eval/analyzer
- lang
- runtime
- java/lang
- test
- diff/clj_corpus
- e2e
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
27 | 45 | | |
28 | 46 | | |
29 | 47 | | |
| |||
2026 | 2044 | | |
2027 | 2045 | | |
2028 | 2046 | | |
2029 | | - | |
2030 | | - | |
2031 | | - | |
| 2047 | + | |
| 2048 | + | |
| 2049 | + | |
| 2050 | + | |
| 2051 | + | |
| 2052 | + | |
2032 | 2053 | | |
2033 | 2054 | | |
2034 | 2055 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
35 | 44 | | |
36 | 45 | | |
37 | 46 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
174 | 174 | | |
175 | 175 | | |
176 | 176 | | |
177 | | - | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
178 | 183 | | |
179 | 184 | | |
180 | 185 | | |
| |||
0 commit comments