Skip to content

[rustjava-adopt-loadable-bootstrap-arguments-diagnostic] docs: 이 회차는 대전제 ⓒ 에서 끝난다 — 그 일을 하는 축이 이미 떠 있다 [rustjava-adopt-loadable-bootstrap-arguments-diagnostic-fix] [rustjava-adopt-loadable-bootstrap-arguments-diagnostic-fix2] - #70

Merged
Jun025 merged 4 commits into
mainfrom
feat/rustjava-bootstrap-argument-diagnostic
Sep 18, 2026

Conversation

@Jun025

@Jun025 Jun025 commented Sep 17, 2026

Copy link
Copy Markdown
Owner

채택 제안 2026-09-17-loadable-bootstrap-arguments#p0 의 처분. ★코드 0행 — classfile/src/{error,validation}.rs 무접촉.

제안의 전제는 참이다 — CLI 로 돌려서 확인했다

main @ 8c7b473f 에서 서로 다른 세 규칙이 글자 하나 다르지 않은 같은 문장을 낸다:

LdcDynamicBSMArgPastEnd  (나쁜 argument)   → java.lang.ClassFormatError: Invalid class file
LdcDynamicDuplicateBSM   (중복 속성)        → java.lang.ClassFormatError: Invalid class file
LdcDynamicOldMajor       (버전 게이트)      → java.lang.ClassFormatError: Invalid class file

★그런데 겹침이 «부분»이 아니라 «전부»다

축 제안 PR #67
target error.rs · validation.rs ★정확히 그 둘(error.rs 10/1 · validation.rs 61/27)
이 술어 「어느 argument 가 왜」를 말하게 하라 ★이미 사유를 준다
밋밋한 문면 없애라 ★두 경계 자리를 둘 다 고쳤다

★제안 자신이 적어 두었다 — tradeoff: 「the two should be done together rather than twice」.

main 에서 시작하면 같은 enum 을 세 번째로 고치고, #67 회차가 이미 보고한 커버리지 구멍을 다시 발견한다.

남는 잔여는 있다 — 다만 좁다

#67 의 payload 는 &'static str 이라 ★런타임 인덱스를 구조적으로 담을 수 없다.

제안이 요구한 것 #67 착지 후
「기대」 ★달성(규칙 문면)
「인덱스」·「실제」 ★미달

⇒ 새 카드를 좁혀 냈다(effort S). 원 제안은 adoptedProposals 로 처분하되 잔여를 정확한 범위로 다시 세운다 — 안 그러면 카드와 함께 잔여도 사라진다.

제안이 적지 않은 설계 제약

ClassFileError 는 Copy 이고 네 크레이트가 기댄다(tests/test.rs 13 · validation.rs 8 · class.rs 7 · jvm-bytecode/src/error.rs 5). String 을 넣으면 깨지지만 정적사유 + u16 인덱스 + u8 태그면 셋 다 Copy 라 깨지 않고 된다. 후속이 다시 발견하지 않도록 새 카드에 적었다.

잃는 것

★main 은 #67 착지까지 밋밋한 채로 남는다(오늘 사용자는 규칙 이름조차 못 받는다) · 이 회차가 전달한 것은 값이 아니라 순서다 · #67 이 폐기되면 이 판단은 한 회차를 버린 것이 된다.

cargo test --all 583/0/1(불변 · base 8c7b473f) · check-dod-ci-parity OK.

jun0 added 2 commits September 18, 2026 07:31
…대전제 ⓒ 에서 끝난다 — 그 일을 하는 축이 이미 떠 있다

채택 제안 2026-09-17-loadable-bootstrap-arguments#p0 의 처분. ★코드 0행
(classfile/src/{error,validation}.rs 무접촉).

제안의 전제는 참이다 — CLI 로 돌려 확인했다: 서로 다른 세 규칙(나쁜 argument · 중복 속성 ·
버전 게이트)이 글자 하나 다르지 않은 `ClassFormatError: Invalid class file` 을 낸다.

그런데 겹침이 부분이 아니라 전부다. PR #67 이 제안의 target 바로 그 두 파일을 고치고, 이 술어에
이미 사유를 주며, 밋밋한 문면이 박힌 두 경계 자리를 둘 다 고쳤다. main 에서 시작하면 같은 enum 을
세 번째로 고치고 같은 커버리지 구멍을 다시 발견한다. ★제안 자신이 tradeoff 에 「두 번 하지 말고
함께 하라」고 적어 두었다.

남는 잔여는 있으나 좁다 — #67 의 payload 는 &'static str 이라 런타임 인덱스를 구조적으로 못 담는다
⇒ 「기대」는 달성 · 「인덱스」·「실제」는 미달. 그래서 새 카드를 좁혀 냈다(S). 원 제안은
adoptedProposals 로 처분하되 잔여를 정확한 범위로 다시 세운다 — 안 그러면 카드와 함께 잔여도 사라진다.

설계 제약 하나를 기록했다: ClassFileError 는 Copy 이고 네 크레이트가 기댄다. String 을 넣으면 깨지지만
정적사유+u16 인덱스+u8 태그면 셋 다 Copy 라 깨지 않고 된다.

잃는 것: main 은 #67 착지까지 밋밋한 채로 남는다(오늘 사용자는 규칙 이름조차 못 받는다) ·
이 회차가 전달한 것은 값이 아니라 순서다 · #67 이 폐기되면 이 판단은 한 회차를 버린 것이 된다.

cargo test --all 583/0/1(불변 · base 8c7b473) · check-dod-ci-parity OK.
… 카드를 실측에 맞추고 「전부 겹친다」를 두 축으로 가른다

게이트② 반려 3건. 세 지적이 «한 뿌리»에서 나왔다 — 「겹침이 전부다」로 읽고 그 위에 S 를 얹었다.
코드 0행(이 회차는 대전제 ⓒ 로 «멈춘» 회차다 — 구현은 그 카드가 진다).

⑶ verification[1] 을 두 축으로 갈랐다: 편집 영역은 «전부» 겹치지만(target 두 파일을 #67 이 정확히
고친다) 전달된 값은 «3 중 1» 이다(기대만 · 인덱스·실제는 &'static str 이라 구조적으로 불가).
대전제 ⓒ 가 묻는 것은 후자이므로 「전부」는 축을 갈아탄 말이었다.

⑴ 카드를 실측에 맞췄다. 두 선택지를 각각 재서 골랐다:
  ⒝ 페이로드를 넓힌다 → 생성 17곳(validation 14 + class 3) + 값 매치 11곳 전건
  ⒜ 새 variant      → 생성 1곳 · 값 매치 0곳 강제
⒜ 를 고르되 effort 는 S → M 으로 올렸다. 크기를 정하는 것은 편집 수가 아니라 «건너는 층»이고,
잔여도 #67 과 같은 3층을 건넌다(중간층 jvm-bytecode 도 &'static str · 경계 exception(&str) 이라
runtime.rs·test-utils 에서 포맷해야 한다) ⇒ target 5파일 / 3크레이트를 전부 적었다.
★원 제안이 «전체»를 M 으로 값했는데 «미전달된 절반»을 S 로 값하면 순서가 뒤집힌다.
⒜ 의 대가도 카드에 적었다 — 거부 오류가 두 갈래가 되고 이후 규칙마다 어느 쪽인지 답해야 한다.

⑵ 「네 크레이트」의 «명사»를 고쳤다(수 13·8·7·5 는 맞으니 무접촉). Cargo.toml 로 확인하니
classfile 3 + jvm-bytecode 1 = 파일 4 / 크레이트 2 이고, 루트 2건은 주석이다. 5곳 전부 고쳤다.

cargo test --all 583/0/1(base 8c7b473, 불변) · adoptedProposals 원 ref 유지 · #67 무접촉.
@Jun025 Jun025 changed the title [rustjava-adopt-loadable-bootstrap-arguments-diagnostic] docs: 이 회차는 대전제 ⓒ 에서 끝난다 — 그 일을 하는 축이 이미 떠 있다 [rustjava-adopt-loadable-bootstrap-arguments-diagnostic] docs: 이 회차는 대전제 ⓒ 에서 끝난다 — 그 일을 하는 축이 이미 떠 있다 [rustjava-adopt-loadable-bootstrap-arguments-diagnostic-fix] Sep 18, 2026
…층 3」을 「크레이트 3」으로 옮겨 적은 칸을 4로 고치고 STATE 의 잔존 주장을 지운다
@Jun025 Jun025 changed the title [rustjava-adopt-loadable-bootstrap-arguments-diagnostic] docs: 이 회차는 대전제 ⓒ 에서 끝난다 — 그 일을 하는 축이 이미 떠 있다 [rustjava-adopt-loadable-bootstrap-arguments-diagnostic-fix] [rustjava-adopt-loadable-bootstrap-arguments-diagnostic] docs: 이 회차는 대전제 ⓒ 에서 끝난다 — 그 일을 하는 축이 이미 떠 있다 [rustjava-adopt-loadable-bootstrap-arguments-diagnostic-fix] [rustjava-adopt-loadable-bootstrap-arguments-diagnostic-fix2] Sep 18, 2026
…rigin/main — 원장 2파일 합집합(PR #69 착지분과 같은 자리)
@Jun025
Jun025 merged commit 5a8351b into main Sep 18, 2026
10 checks passed
@Jun025
Jun025 deleted the feat/rustjava-bootstrap-argument-diagnostic branch September 18, 2026 06:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant