Skip to content

[S7] upstream 동기 — 컷 ba5797b (가상 디스패치 해석 · 충돌 1) + §5 서식에 델타/누적 축 [rustjava-upstream-sync-s7-and-fix-the-conflict-count-format] - #23

Merged
Jun025 merged 5 commits into
mainfrom
feat/rustjava-upstream-sync-s7
Sep 4, 2026

Conversation

@Jun025

Copy link
Copy Markdown
Owner

upstream ba5797b(dlunch#201 · 1커밋 · 319파일 +20,118/−5,729)을 --merge 로 흡수하고 충돌 1건을 해소했다.
함께 ★**§5 「충돌 수」 정본 서식에 «델타/누적» 축을 넣었다.** ⇒ ★★계획 「7회차」(S1~S7) 완주.

계보

착지 전착지 후
merge-base origin/main upstream/main95ebc5c★**ba5797b**
behind1312
머지커밋 부모2개(3e02f8c + ba5797b)

★★게이트③이 --squash 면 이 전진이 통째로 사라진다<id>-mergemerge_strategy: merge 필수.

★착수 재측정 — 신 서식으로 적은 «첫 수»

ba5797b 충돌 = ★누적 1 · 델타 +1(base 3e02f8c · merge-base 95ebc5c) — thread.rs

★**「예측대로였다」가 아니라 「재서 1 이었다」.**
★★**string.rs 가 집합에서 «빠졌다»(S6 해소 뒤 이 1커밋 구간에서 upstream 무접촉)
⇒ ★
누적은 «줄어들 수도» 있다** — 누적을 델타로 대신할 수 없다는 실측 근거이고, 서식 절의 본보기로 넣었다.

★§5 정본 서식 수정 (이 티켓의 «절반»)

문면
<수>(base <sha> · merge-base <sha>)
★후★**<수> <델타|누적>(base <sha> · merge-base <sha>)**
  • 누적/델타 정의 · ★「델타 0 은 «풀 것이 없다»가 아니다」 · S6 실사고 인용(티켓 Goal 이 실제로 그렇게 읽었다) ·
    본보기 = 위 S7 수 · ★「과거 기록 소급 수정 0 · 옛 값은 대체로 누적」 한 줄.

thread.rs — ★**«직교»다. 「어느 쪽이 이기나」가 아니다**

규모한 일
upstream 95ebc5c→ba5797b+23/−10invoke_virtual 에 ★**«선언 클래스» 인자 추가** + <init>(Z)VPRIVATE
우리 95ebc5c→origin/main+50/−42PR #4수동 span. ★의미 변경은 3줄, 나머지는 async {} 로 감싼 들여쓰기

⇒ ★★**«호출 인자» ↔ «그 호출들을 감싸는 span» — 의미가 겹치지 않는다. 우열 판정 대상이 아니다.**
우리 구조를 뼈대로 두고 upstream 새 인자 3곳을 얹었다(S1·S3·S4 와 같은 전략 · 4회째).
검증: 수동 span 2요소 생존 · invoke_virtual9곳 전건 새 시그니처 · 어트리뷰트 실사용 0(주석 1건).

★★「충돌 0으로 들어온」 파손 — 4회째인데 ★축은 «처음»

upstream 이 invoke_virtual공용 API 시그니처를 바꾸자 ★우리 고유 테스트 5곳(PR #5 자산)이
구식 4인자로 남아 컴파일 실패(E0061×5). ★우리 줄이라 upstream 이 안 건드렸고 ⇒ 충돌이 «날 수가 없다».

회차방향무엇이 잡았나
S3·S5·S6upstream 이 **«새 파일»**로 우리 규격을 안 지킨다정독 / 자산 grep / 테스트
S7upstream 이 **«공용 API»**를 바꿔 «우리 파일»이 낡는다컴파일

⇒ ★**「신규 파일을 훑는다」로는 못 잡는다.** 처분은 ★upstream 자신의 관용구를 그대로 채택(발명 0) ·
단언 무접촉.

green · 「해소분 0」

명령stable★beta
fmt --check0
clippy -D warnings00
clippy wasm32 -D warnings00
test --all0 — 554 / 0 / 10 — 554 / 0 / 1
check-worklog-json.py0

★★시험 수 증감 «0» 이고 그것이 «맞다» — upstream 테스트 함수도 95ebc5c547ba5797b547
(78개 테스트 파일 +14,730/−3,536 이지만 시그니처 스윕이지 추가가 아니다) ⇒ 「스윕이 통과했다」이다.
★약화 0: #[ignore] 1→1 · 우리 테스트 함수 558→558 · 단언 삭제 0.
「해소분 0」: ba5797b 대비 삭제 0 · 다른 파일 52건 전수 우리 자산 ·
Cargo.lock ★내려감 0 · 올라감 0 · 추가 0 · 제거 0
.
정독은 양쪽이 둘 다 만진 15건만(우리 52 ∩ upstream 319) — charset 7곳 · setProperty 서술자 · allow 7곳 전건 생존.

경계

머지 0 · 새 PR 1(base main · 스택 아님) · force-push 0 · 리베이스 0 · main 직접 push 0 ·
S8 집행 0(총괄 보류분 · 남은 behind 12 = 개명 스윕) · upstream 코드 «개선» 0 ·
★**§5 과거 기록 소급 수정 0** · upstream 발신 0 · 시크릿 출력 0.

dlunchand others added 5 commits August 16, 2026 21:01
* Fix virtual method dispatch resolution
* Complete runtime access flags
착수 시 재측정(★base 병기 + 델타/누적 «둘 다»): base = origin/main 3e02f8c ·
merge-base 95ebc5c ⇒ ★누적 1 · 델타 +1(java/lang/thread.rs).
★「재서 1 이었다」— §5 예측(1)과 같은 수이나 «예측대로였다»로 적지 않는다.
※string.rs 는 이번 집합에서 빠졌다(S6 해소 뒤 이 1커밋 구간에서 upstream 이 안 건드렸다).
★계약5 thread.rs — 「어느 쪽이 이기나」가 아니라 «직교»다:
⒜upstream(+23/−10) = invoke_virtual 에 «선언 클래스» 인자 추가(dlunch#201 가상 디스패치 해석) +
<init>(Z)V 에 PRIVATE.
⒝우리(+50/−42) = PR #4 의 수동 span(#[tracing::instrument] 금지 · tokio-rs/tracing#3388).
그중 의미 변경은 3줄이고 나머지는 span 으로 감싸며 생긴 들여쓰기다.
⒞두 변경은 «호출 인자»와 «그 호출들을 감싸는 span»이라 의미가 겹치지 않는다 ⇒ 우열 판정 대상이
아니다. 우리 구조를 뼈대로 두고 upstream 의 새 인자 3곳을 그 안에 얹었다(S1·S3·S4 에서 3회
확립된 전략과 같다). 수동 span 2요소 생존 · invoke_virtual 9곳 전건 새 시그니처.
★계약6⒝ — 「충돌 0으로 들어온」 파손 1건이 «또» 났다(이 형태 4회째 · 축은 처음):
upstream 이 invoke_virtual 시그니처를 바꾸자 ★우리 고유 테스트 5곳(PR #5 자산)이 구식 4인자로 남아
컴파일 실패했다. 우리 줄이라 upstream 이 안 건드렸고 ⇒ 충돌이 «날 수가 없다».
upstream 자신의 관용구를 그대로 채택했다 — read/getMessage 는 &x.class_definition().name() ·
getBytes 는 "java/lang/String". ★단언은 한 줄도 안 건드렸다.
★계약6⒞ Cargo.lock: 내려간 0 · 올라간 0 · 추가 0 · 제거 0(async-trait 0.1.92 유지).
green: stable 4종 + beta 2종 rc=0 · cargo test --all 554 passed / 0 failed / 1 ignored ·
beta 도 554 동수 · ★증감 0 이고 그것이 맞다(upstream 테스트 함수 547 → 547 = 신호가 아니라 스윕) ·
#[ignore] 1 → 1 · 우리 테스트 함수 558 → 558 · ba5797b 대비 삭제 파일 0.
…ix-the-conflict-count-format]
서식: <수>(base · merge-base) → ★<수> <델타|누적>(base · merge-base).
S6 이 「예측 0 ↔ 실측 1」로 갈린 근인이 그 구멍이었다(base 만 병기하면 「3→3」과 「0」이 둘 다
규칙을 지킨다). 누적/델타 정의 · 「델타 0 은 풀 것이 없다가 아니다」 · S6 실사고 인용 ·
본보기(S7 의 누적 1 · 델타 +1) · 「과거 기록 소급 수정 0」 한 줄.
+ S7 착지 기록 절 신설 · STATE·REPORT · 워크로그 쌍.
…x-the-conflict-count-format]
★자인: 1차 push 가 cargo fmt --check 로 6셀 전건 red. 근인은 «순서»다 — fmt/clippy 를 thread.rs 해소
직후 돌려 rc=0 을 받았고, 그 «뒤»에 고친 invoke_virtual 5곳이 줄을 150자 너머로 밀었는데 fmt 를
다시 안 돌렸다(테스트·clippy·beta 는 편집 뒤에 돌려 통과했다).
포매터가 2파일 15줄을 줄바꿈했을 뿐 의미 변경 0 · 4종 전건 편집 뒤 재실행 rc=0 · 554/0/1 불변.
…-and-fix-the-conflict-count-format]
STATE.md 진행중 → 완료(게이트③ PR #23 · --merge · 컷 조상 7/7 · 남은 behind 12 는 S8 몫) +
worklog .json 게이트③ 집행 1줄(★동봉 전 head 가 핀과 일치했음을 명기 — 핀 이동과 구별). 코드 변경 0.
@Jun025
Jun025 merged commit 3fb08a8 into mainSep 4, 2026
9 checks passed
@Jun025
Jun025 deleted the feat/rustjava-upstream-sync-s7 branch September 4, 2026 02:03
Sign up for freeto 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.

2 participants

@Jun025@dlunch