[rustjava-adopt-indy-fixture-jdk-pin-and-slot-accounting-p1] test(fixtures): 「어느 javac 이 만들었나」를 기록에서 「검증」으로 바꾼다 - #58
Merged
Conversation
…tures): 어느 javac 이 만들었나를 기록에서 검증으로 바꾼다 제안의 결론 둘이 실측으로 반증됐다. 「offline 으로 검증할 수 없다」는 거짓이다 — javac 은 같은 소스·플래그·컴파일러에 결정적이라 기록된 도구로 재빌드하면 indy 6개가 바이트 단위로 재현된다. 「형상 단언이 한 픽스처만 덮는다」도 거짓이다 — javac 산출 indy 3/3 이 이미 갖고 있고, 제안이 든 condy 위험은 ConstantKinds 의 Dynamic 개수가 잠근다. 그래서 제안이 불가능하다고 본 쪽을 만들었다. --release 는 픽스처 자신의 major-44 로 읽어 외부 표에 의존하지 않고, 명시한 JAVAC 가 안 되면 조용히 대체하지 않고 rc=2 로 멈추며, 「못 만들었다」와 「만들었는데 다르다」를 가른다. JDK 가 CI 에도 PATH 에도 없어 배선하지 않았다. -sourcepath 는 넣었다가 되돌렸다: test-data/src/Exception.java 가 java.lang.Exception 을 가린다. 루트 일반화는 109 rebuilt / 104 재현 / 5 상이 — 원인은 단정하지 않고 후속으로 넘겼다.
added 4 commits
September 17, 2026 09:29
Jun025
pushed a commit
that referenced
this pull request
Sep 17, 2026
Jun025
pushed a commit
that referenced
this pull request
Sep 17, 2026
#59·#58·#56 착지분 흡수 충돌 3파일: 원장 2(REPORT·STATE)는 합집합·시간순(이 회차 09:06 > main 최신 06:52 ⇒ 위), make_indy_fixtures.py 는 형제 두 회차의 «각자 추가»라 합집합으로 합쳤다 (#59 의 fieldref·MAKECONCAT_DESCRIPTOR·make_concat_call_site·LINKED + 이 PR 의 method_type·method_handle·METAFACTORY_*·lambda_near_miss·METAFACTORY_FIXTURES). ★검증: 재생성 후 기존 픽스처 «바이트 변동 0» — 두 생성기가 둘 다 살아 있다.
Jun025
pushed a commit
that referenced
this pull request
Sep 17, 2026
…ge origin/main + 표 3행 — 형제 #59 픽스처를 이 PR 이 책임진다 게이트③ 회차가 «옳게» 막힌 자리를 푼다. base 를 당기면 이 PR 자신의 핀 테스트가 실패했다: #59 가 들여온 MakeConcat·MakeConcatWithArgument·MakeConcatWrongDescriptor 가 표에 없었다. 검사기가 옳게 물은 것이므로 완화하지 않고 표를 고쳤다. ★표 갱신을 «이 머지 커밋 안»에 둔 이유: 이 PR 이 세운 AGENTS.md 규율이 「.class 를 더하거나 재생성하면 «같은 커밋에» 표를 고쳐라」다. 그 셋을 들여오는 것이 이 머지이므로 같은 커밋이 그 규율에 맞다. record-class-file-versions.py 1회 · diff = 3 0(★추가만 · 삭제 0) ⇒ 기존 156행 중 바뀐 것 없음 = 픽스처 재생성 0. 원장 2파일 충돌은 합집합·시간순(이 회차 06:16 은 #59 06:52 아래 · #58 05:22 위).
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.
채택 제안
2026-09-16-indy-fixture-jdk-pin-and-slot-accounting#p1. ★제품 코드 무접촉(Rust 변경은 doc 주석 1곳).★★제안의 결론 «둘»이 실측으로 반증됐다 — 그래서 제안이 «불가능»하다고 본 쪽을 만들었다
⑴ 「Nothing offline can verify a recorded compiler version … buys provenance, not enforcement」 → ★거짓.
javac 은 같은 소스·플래그·컴파일러에 결정적이다:
⇒ ★기록이 «재현»으로 검증된다.
⑵ 「강제 가능한 축은
constant_pool.rs의 상수 개수뿐이고 한 픽스처만 덮는다」 → ★거짓.ConstantKindsStringConcat"a\u{1}") + ★바이트 창[15,6,0,35](「layout changed」로 실패)LambdaLambdaMetafactory.metafactory· 인자 3 · ★args[0]==args[2]!=args[1]★제안이 든 위험(「현대 javac 은 enum switch 를 condy 로 낸다」)은 ★**
ConstantKinds의 Dynamic 3 이 이미 잠그고 있다.**만든 것 —
test-data/src/verify-javac-fixtures.sh--release를 픽스처 자신의major − 44에서 읽는다 ⇒ 외부 표 의존 0(형제 PR 미착지에도 무관).JAVAC가 안 되면 조용히 대체하지 않고 rc=2 — 「무엇이 검증했나」가 흐려지면 안 된다.★실패담 둘 — 밟은 대로 적는다
⑴
command -v javac이 macOS 스텁(실행되는데 「JDK 없음」을 출력)을 고른다 ⇒ 실행해서 판별.⑵★**
-sourcepath를 넣었다가 되돌렸다** —test-data/src/Exception.java가java.lang.Exception을 가려서멀쩡히 재현되던 파일들이
incompatible types: Exception cannot be converted to Throwable로 무너졌다(실측).⇒ 그 대가(형제 참조 소스는 홀로 재빌드 불가)는 「could not be rebuilt」로 따로 보고한다.
개악 대조
StringConcat.class마지막 1바이트 반전JAVAC부재★일반화 — 값만 적고 고치지 않았다
sh … test-data→ 109 rebuilt · 104 재현 · ★5 상이 · 3 재빌드 불가(상이:
MonitorSemantics+내부 2 ·NativeMethod@--release 8·OddEven@21).★원인은 단정하지 않는다 — 「다른 컴파일러」와 「빌드 뒤 소스 수정」이 둘 다 맞는다. 범위 밖이라 후속(M)으로 넘겼다.
★그래도 적는 이유: ★제안이 걱정한 드리프트가 «실재»한다는 첫 «직접» 증거다.
검증
cargo test --all --no-fail-fast572 passed / 0 failed / 1 ignored(doc 주석만 바꿔 불변) ·sh -nrc=0 · DoD 7명령 rc=0.