[rustjava-adopt-javac-fixture-provenance-verified-p0] test(fixtures): 다섯 픽스처가 재빌드되지 않는 이유는 -g 다 - #68
Merged
Merged
Conversation
added 2 commits
September 18, 2026 05:28
… 다섯 픽스처가 재빌드되지 않는 이유는 `-g` 다 채택 제안 2026-09-17-javac-fixture-provenance-verified#p0 의 처분. 커밋본은 디버그 정보를 달고 컴파일됐고 스크립트는 그것 없이 재빌드하고 있었다 — javac 기본은 `-g:lines,source` 라 LocalVariableTable 이 안 나온다. `-g` 를 주면 다섯 전건 바이트 동일. ★제안이 댄 두 설명은 둘 다 틀렸다: · 다른 컴파일러 아니다 — 같은 다섯이 26.0.1·26.0.2.1 에서 똑같이 다르고 둘 다 -g 면 똑같이 동일하다. · 소스 발산 아니다 — -g 만 주면 지금 소스가 커밋 바이트를 정확히 낸다. ⇒ 제안 tradeoff 의 「재컴파일이 동작 변경이 될 수 있다」는 성립하지 않는다(재컴파일 불요 · 커밋된 .class 바이트 0 변경). 고친 한 자리: 스크립트가 --release 를 픽스처에서 읽듯 -g 도 픽스처에서 읽는다(상수풀의 LocalVariableTable 유무). 배선 전 판별력 실측 — 보유 5 · 미보유 107 · 5/5 · 오탐 0. 양방향: 정상 109 rebuilt / 109 reproduced / 0 differed ↔ 개악(-g 파생 한 줄 no-op) 104 / 5 differed (✗ 목록이 원래 다섯과 동일) · 복원 0. 잃는 것: 스크립트는 여전히 rc=1(재빌드 불가 3건 = 제안이 미해결로 적은 별 축 · 넓히지 않았다). cargo test --all 579/0/1(불변 — Rust 무접촉) · check-dod-ci-parity OK.
…in — 원장 2파일 합집합(theirs 순서 무재배치 · 시각 순 삽입)
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-17-javac-fixture-provenance-verified#p0— 「루트 픽스처 다섯이 왜 커밋된 바이트로 재빌드되지 않는지 알아내라」의 처분.답 —
-g커밋본은 디버그 정보를 달고 컴파일됐고 검증 스크립트는 그것 없이 재빌드했다. javac 기본은
-g:lines,source라LocalVariableTable이 나오지 않는다.-g를 주면 다섯 전건 바이트 동일.제안이 댄 두 설명은 둘 다 틀렸다
-g면 똑같이 동일하다(두 판본 각각 직접 실행).-g만 주면 지금 소스가 커밋 바이트를 정확히 낸다.⇒ 제안
tradeoff의 「재컴파일이 동작 변경이 될 수 있다」는 성립하지 않는다 — 재컴파일이 불요이고, 커밋된.class바이트는 0 변경이다.고친 한 자리
스크립트가 이미
--release를 픽스처에서 읽으므로-g도 같은 자리에서 읽게 했다(상수풀의LocalVariableTable유무). 배선 전에 판별력을 쟀다 — 보유 5 · 미보유 107 · 5/5 · 오탐 0.검증(양방향)
-g파생 한 줄 no-opcargo test --all579 passed / 0 failed / 1 ignored(불변 — Rust 무접촉) ·check-dod-ci-parityOK.잃는 것
스크립트는 여전히
rc=1— 재빌드 불가 3건(형제 참조 소스 ·-sourcepath미사용)은 제안이 미해결로 적은 별 축이라 넓히지 않았다. 그리고 판정이 한 속성의 유무에 걸린다(-g:none재생성은 조용히 드리프트로 읽힌다).