Commit 3b04712
jun0
[rustjava-adopt-link-stringconcatfactory-p0] feat(jvm-bytecode): 레시피 없는 makeConcat 도 링크한다
제안의 전제는 틀렸다. javac 은 release 9·11·17·21·26 전부 makeConcatWithConstants 를 내고,
상수 텍스트가 없는 a + b 도 그렇다 — 레시피가 자리표시자뿐일 따름이다. makeConcat 은 비기본
내부 플래그에서만 나오므로 「javac 산출물이 더 많이 돈다」는 거짓이다.
그래도 한 이유는 셋이다: 만들 수 있는 형상이고(그 플래그로 직접 만들었다), 문서화된 공개
진입점이며, 실행기에 새 경로가 필요 없다 — makeConcat(n) 은 레시피가 \u0001 n개인
makeConcatWithConstants 와 같아서 콜사이트 인자 수로 합성하면 된다.
이름과 서술자를 쌍으로 매칭해 한쪽 이름에 다른 쪽 서술자를 붙인 것은 링크되지 않게 했다 —
그 덕에 #55 의 name 축 근접 실패 픽스처가 그대로 살아 있다.
개악 4종 중 M3(쌍 검사를 이름만으로)·M4(정적 인자 가드 제거)가 처음엔 살아남았다. 직전 회차가
세운 「죽었다 ≠ 그 가지가 전부 덮였다」가 내 새 코드에 그대로 적용된 것이라, 축마다 근접 실패를
더해 4종 전건 red 로 만들었다.1 parent 4b89f18 commit 3b04712
10 files changed
Lines changed: 333 additions & 21 deletions
File tree
- docs/worklog
- jvm-bytecode/src
- test-data
- indy
- src/indy
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
2 | 21 | | |
3 | 22 | | |
4 | 23 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
7 | 36 | | |
8 | 37 | | |
9 | 38 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
0 commit comments