Gooo API Changes - kimjooyoon/meta-ontology-go GitHub Wiki

Gooo둜 API λ³€κ²½ 읽기

ν”„λ‘œκ·Έλž¨μ„ 고치면 ν˜ΈμΆœν•˜λŠ” μͺ½μ—μ„œλ„ μ±™κΈΈ 일이 μƒκΉλ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ μž…λ ₯의 countκ°€ 선택 ν•­λͺ©μ—μ„œ ν•„μˆ˜ ν•­λͺ©μ΄ λ˜μ—ˆλ‹€λ©΄, ν˜ΈμΆœμžκ°€ κ·Έ 값을 μ£ΌλŠ”μ§€ 확인해야 ν•©λ‹ˆλ‹€. λ°˜λŒ€λ‘œ 좜λ ₯의 countλ₯Ό μƒλž΅ν•  수 있게 λ§Œλ“€μ—ˆλ‹€λ©΄, 값을 λ°›λŠ” μͺ½μ—μ„œ λˆ„λ½μ„ μ²˜λ¦¬ν•΄μ•Ό ν•©λ‹ˆλ‹€.

이 차이λ₯Ό Gooo둜 μ½λŠ” 도ꡬλ₯Ό μž‘μ—…μž₯ PR 46에 μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. μž‘μ—…μž₯ μ†ŒμŠ€λŠ” b0dcc503, μ‚¬μš©ν•˜λŠ” 컴파일러 ν›„λ³΄λŠ” 8951c5f8μž…λ‹ˆλ‹€. 컴파일러의 package interfaceκ°€ νƒ€μž…κ³Ό ν•„λ“œλ₯Ό ν•΄μ„ν•˜κ³ , Goκ°€ 같은 ID의 이전 κ°’κ³Ό μƒˆ 값을 λ¬Άμ–΄ μ „λ‹¬ν•©λ‹ˆλ‹€. κ·Έ λ‹€μŒ νŒλ‹¨μ€ api-changes.gooo의 쑰건문이 ν•©λ‹ˆλ‹€.

μ‹€ν–‰ν•΄ 보기

μž‘μ—…μž₯ μ†ŒμŠ€ λΉŒλ“œ μ•ˆλ‚΄μ— 따라 후보 컴파일러λ₯Ό .gooo둜 μ€€λΉ„ν•œ λ’€ μ‹€ν–‰ν•©λ‹ˆλ‹€.

go run ./cmd/workbench api-diff --compiler ./.gooo \
  --before examples/api-evolution/before/gooo.workspace.json \
  --after examples/api-evolution/after/gooo.workspace.json --out out/api-diff
예제의 λ³€κ²½ Goooκ°€ λ°˜ν™˜ν•œ λΆ„λ₯˜ λ‹€μŒ μž‘μ—…
μž…λ ₯ countλ₯Ό ν•„μˆ˜λ‘œ λ³€κ²½ input-tightened 호좜 μ˜ˆμ œμ— ν•„μˆ˜ κ°’ 보좩
좜λ ₯ countλ₯Ό 선택 ν•­λͺ©μœΌλ‘œ λ³€κ²½ output-weakened 좜λ ₯이 μ—†λŠ” 경우 처리
선택적인 좜λ ₯ note μΆ”κ°€ field-added λ ˆμ½”λ“œ 생성 λΆ€λΆ„ 확인

νƒ€μž…Β·ν•„λ“œ 좔가와 μ‚­μ œ, 이름, νƒ€μž…, 개수 쑰건, ν•„λ“œΒ·μΈμž μˆœμ„œ, import와 μ§„μž…μ λ„ μ½μŠ΅λ‹ˆλ‹€. ν•„λ“œ 좔가와 κΈ°μ‘΄ ν•„λ“œμ˜ μž¬λ°°μΉ˜κ°€ λ™μ‹œμ— μžˆμ–΄λ„ 각각 κΈ°λ‘ν•©λ‹ˆλ‹€. μ‚¬μš© λ°©ν–₯은 두 λ²„μ „μ˜ ν™œλ™ μ„ μ–Έ μ „μ²΄μ—μ„œ μ½μŠ΅λ‹ˆλ‹€. μ™ΈλΆ€ 호좜자의 μ‚¬μš© 방식은 아직 κ΄€μΈ‘ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λͺ¨λΈμ€ μ–΄λŠ 뢀뢄에 λ“€μ–΄κ°€λ‚˜

λΆ„λ₯˜ κ·œμΉ™κ³Ό λ‹€μŒ μž‘μ—…μ€ Gooo μ†ŒμŠ€μ— 적어 λ‘‘λ‹ˆλ‹€. 좜λ ₯의 μ„Έ ν•„λ“œλ₯Ό κ΅¬μ„±ν•˜λŠ” μ‹λ§ˆλ‹€ 두 후보가 있고, 자체 μ†Œν˜• λͺ¨λΈμ„ 켜면 κ·Έ 쑰합을 μ‹œλ„ν•  μˆœμ„œλ₯Ό μ œμ•ˆν•©λ‹ˆλ‹€. λͺ¨λΈμ„ μƒλž΅ν•˜λ©΄ μ†ŒμŠ€ μˆœμ„œλŒ€λ‘œ μ§„ν–‰ν•©λ‹ˆλ‹€. μ•„λž˜ μ˜΅μ…˜μœΌλ‘œ μ΄λ²ˆμ— μ‚¬μš©ν•œ λͺ¨λΈμ„ μ—°κ²°ν•©λ‹ˆλ‹€.

--model models/graph-chooser-20261008/all-data-demonstration/qat_ternary/model.json

이번 μ •μ±…μ—λŠ” μž‘μ„±ν•œ 선택 사둀 17κ°œμ™€ ν•„λ“œ 검사 51κ°œκ°€ μžˆμŠ΅λ‹ˆλ‹€. μ‹€μ œ λ³€κ²½ 3건은 μ •λ‹΅ 라벨 없이 μ‹€ν–‰ν–ˆμŠ΅λ‹ˆλ‹€. 결과에 적힌 classified_changes: 3은 μ„Έ 건 λͺ¨λ‘μ— μ•Œλ €μ§„ λΆ„λ₯˜κ°€ λΆ™μ—ˆλ‹€λŠ” λœ»μž…λ‹ˆλ‹€. μ‹€μ œ κΈ°λŠ₯의 μ •λ‹΅λ₯ μ€ 이 숫자둜 κ³„μ‚°ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

같은 예제λ₯Ό κΈ°μ‘΄ 자체 λͺ¨λΈλ‘œ 직접 μ‹€ν–‰ν–ˆμ„ λ•Œ μ˜ˆμΈ‘μ€ 1회, μ•½ 0.20 msμ˜€μŠ΅λ‹ˆλ‹€. 쑰립은 두 방식 λͺ¨λ‘ 8쑰합을 μ‹œλ„ν–ˆκ³  51/51을 μΆ©μ‘±ν–ˆμŠ΅λ‹ˆλ‹€. 전체 λͺ…령은 κ³ μ • μˆœμ„œ 1.64초, λͺ¨λΈ μ‚¬μš© 0.77μ΄ˆμ˜€κ³  μ΅œλŒ€ RSSλŠ” 각각 μ•½ 83.8/82.6 MiBμ˜€μŠ΅λ‹ˆλ‹€. ν”„λ‘œμ„ΈμŠ€ CPU μ‹œκ°„μ€ 0.66/0.63μ΄ˆμ˜€μŠ΅λ‹ˆλ‹€. μˆœμ„œμ™€ μΊμ‹œ 쑰건이 λ‹€λ₯Έ ν•œ λ²ˆμ”©μ˜ κ΄€μΈ‘μ΄λ―€λ‘œ 속도 차이λ₯Ό λͺ¨λΈμ˜ κ°œμ„  효과둜 ν•΄μ„ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. κΈ°κΈ° 전체 CPU μ‚¬μš©λ₯ μ€ μΈ‘μ •ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

μ„ νƒν•œ ν”„λ‘œκ·Έλž¨μ€ νŒŒμΌμ— μ €μž₯ν•©λ‹ˆλ‹€. 첫 싀행을 λ‹€μ‹œ μ‹€ν–‰ν•΄ κ²°κ³Όλ₯Ό λŒ€μ‘°ν•˜κ³ , 128행을 λ„˜λŠ” 변경도 같은 ν”„λ‘œκ·Έλž¨μœΌλ‘œ λ‚˜λˆ„μ–΄ μ²˜λ¦¬ν•©λ‹ˆλ‹€. 이 μž¬μ‚¬μš©μ—μ„œλŠ” μƒˆ 좔둠이 μ—†μŠ΅λ‹ˆλ‹€. ν…ŒμŠ€νŠΈμ˜ 135행은 27μ’… μž…λ ₯을 λ°˜λ³΅ν•΄ 경계λ₯Ό λ„˜κΈ΄ κ²ƒμœΌλ‘œ, 독립적인 135μ’… μ‹€ν—˜μ„ λœ»ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

ν˜„μž¬ λ²”μœ„

이 λ„κ΅¬λŠ” μ„ μ–Έ 변경을 μ„€λͺ…ν•˜κ³  λ‹€μŒ μž‘μ—…μ„ λ°μ΄ν„°λ‘œ λ°˜ν™˜ν•©λ‹ˆλ‹€. 호좜 μ½”λ“œλ₯Ό μžλ™μœΌλ‘œ κ³ μΉ˜κ±°λ‚˜ κ·Έ ν”„λ‘œκ·Έλž¨μ˜ λ™μž‘μ΄ ν˜Έν™˜λœλ‹€κ³  νŒμ •ν•˜λŠ” λ‹¨κ³„λŠ” 남아 μžˆμŠ΅λ‹ˆλ‹€. 선언이 κ·ΈλŒ€λ‘œμ΄κ³  본문만 λ°”λ€Œλ©΄ μ„ μ–Έ λ³€κ²½ 0건과 μ†ŒμŠ€ λ³€κ²½ 사싀을 λ”°λ‘œ 남기고, λŸ°νƒ€μž„ λ™μž‘μ„ κ΄€μΈ‘ν•˜λ„λ‘ μ œμ•ˆν•©λ‹ˆλ‹€.

μž‘μ—…μž₯ 전체 native race 검사와 μ΅œμ’… API 검사λ₯Ό ν†΅κ³Όν–ˆμŠ΅λ‹ˆλ‹€. CI κ²°κ³Ό 보관 경둜λ₯Ό μΆ”κ°€ν•œ μ΅œμ’… 후보 e14e5e67도 PRΒ·push 검사와 원본 μ•„ν‹°νŒ©νŠΈ 검증을 마쳀고, PR 46을 main fd53420e에 λ³‘ν•©ν–ˆμŠ΅λ‹ˆλ‹€. 검사 후보와 병합 결과의 파일 νŠΈλ¦¬λŠ” κ°™μŠ΅λ‹ˆλ‹€. 병합 ν›„ main CI도 μ™„λ£ŒλμŠ΅λ‹ˆλ‹€. 초기 컴파일러 ν›„λ³΄μ˜ 별도 Windows κ²€μ‚¬μ—μ„œ μ‹œκ°„ 초과λ₯Ό λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€. μ‹œμž‘Β·λŒ€κΈ° μ˜ˆμ‚° μˆ˜μ •μ„ ν†΅ν•©ν•œ 8f4c9638은 ν•„μˆ˜ CI와 λ„€ ν”Œλž«νΌΒ·λ³„λ„ ledger 검사λ₯Ό λͺ¨λ‘ ν†΅κ³Όν–ˆκ³ , PR 1410을 dev e8ccf425에 λ³‘ν•©ν–ˆμŠ΅λ‹ˆλ‹€. κΈ°μ‘΄ API λ³€κ²½ λΆ„λ₯˜λ„ κ·ΈλŒ€λ‘œ ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€. μƒˆ μ‚¬μš© ν™˜κ²½μ€ dev 68a5de0ea15f3a19b6fea182712f7a71cb442852 μ†ŒμŠ€λ‘œ μ€€λΉ„ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν˜„μž¬ 곡개 0.6.18μ—λŠ” μΈν„°νŽ˜μ΄μŠ€ λͺ…령이 아직 μ—†μœΌλ©° 0.6.19 배포λ₯Ό μ€€λΉ„ μ€‘μž…λ‹ˆλ‹€.

싀행·검사·Windows μ‹€νŒ¨ 원본.