Caller Guided Construction - kimjooyoon/meta-ontology-go GitHub Wiki

λΆ€ν’ˆμ€ λ§žλŠ”λ° 전체가 틀릴 λ•Œ

μ—…λ°μ΄νŠΈ: 2026-10-09 KST. PR 1384λ₯Ό ν•„μˆ˜ CI 확인 ν›„ 개발 λΈŒλžœμΉ˜μ— λ³‘ν•©ν–ˆκ³ , 곡개 0.6.12 μ‹€ν–‰ νŒŒμΌμ— ν¬ν•¨ν–ˆμŠ΅λ‹ˆλ‹€. μ •μˆ˜ 계산식 탐색과 μ§€μ—­ 거절 ν›„ μ΄μ–΄κ°€κΈ°λŠ” 곡개 0.6.13에 ν¬ν•¨ν–ˆμŠ΅λ‹ˆλ‹€. μ‘°κ±΄μ‹Β·λŒ€μž…μ‹μ˜ μ—¬λŸ¬ λΉˆμΉΈμ„ ν•¨κ»˜ κ³ λ₯΄λŠ” κ²½λ‘œλŠ” 곡개 0.6.14μ—μ„œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

0.6.12 후보 μ‚¬μš©λ²•κ³Ό 둜컬 배포 νšŒκ·€ 기둝도 κ³΅κ°œν–ˆμŠ΅λ‹ˆλ‹€. λ„€ ν”Œλž«νΌ ν›„λ³΄μ—μ„œ μƒˆ λͺ…령을 μ‹€ν–‰Β·μž¬μ‹€ν–‰ν–ˆκ³  μ‹€μ œ 값이 κ°™μ•˜μŠ΅λ‹ˆλ‹€. 배포 μ€€λΉ„ PR 1385도 λ³‘ν•©ν–ˆκ³  곡개 νŒŒμΌμ„ μ„€μΉ˜ν•΄ λ‹€μ‹œ μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€. κΈ°λ³Έ 브랜치 반영 μƒνƒœλŠ” ν˜„μž¬ μƒνƒœμ— κΈ°λ‘ν•©λ‹ˆλ‹€.

ν•¨μˆ˜ ν•˜λ‚˜μ˜ μ˜ˆμ œκ°€ λ„ˆλ¬΄ 적으면 μ„œλ‘œ λ‹€λ₯Έ κ΅¬ν˜„μ΄ 같은 점수λ₯Ό 받을 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 0을 λ„£μœΌλ©΄ 0μ΄λΌλŠ” 쑰건은 κ·ΈλŒ€λ‘œ λ°˜ν™˜κ³Ό 두 배둜 λ°˜ν™˜μ΄ λͺ¨λ‘ λ§žνž™λ‹ˆλ‹€. κ·Έ ν•¨μˆ˜λ₯Ό κ°€μ Έλ‹€ μ“΄ ν”„λ‘œκ·Έλž¨μ΄ 3을 λ„£μœΌλ©΄ 6을 κΈ°λŒ€ν•˜λ©΄ 차이가 λ“œλŸ¬λ‚©λ‹ˆλ‹€.

body-constructλŠ” μ΄λ•Œ 전체 ν”„λ‘œκ·Έλž¨μ˜ κ²°κ³Όλ₯Ό 보고 λ‹€λ₯Έ 쑰합을 μ‹œλ„ν•©λ‹ˆλ‹€. λΆ€ν’ˆλ³„ 검사도 맀번 ν•¨κ»˜ λ‚¨κΉλ‹ˆλ‹€. μ•„λž˜ ν•¨μˆ˜κ°€ λ°”λ€Œλ©΄ 그것을 ν˜ΈμΆœν•˜λŠ” ν•¨μˆ˜μ˜ κΈ°μ‘΄ 검사 κ²°κ³Όλ₯Ό λ‹€μ‹œ κ³„μ‚°ν•©λ‹ˆλ‹€.

쑰립 흐름

flowchart TD
    A["κΈ°λ³Έ μ½”λ“œΒ·μ„ νƒμ§€Β·κΈ°λŒ€κ°’"] --> B["μ‚΄νŽ΄λ³Ό μˆœμ„œ κ²°μ •<br/>λͺ¨λΈ λ˜λŠ” κ³ μ • μˆœμ„œ"]
    B --> C["ν•¨μˆ˜ 쑰합을 λ§Œλ“€κ³ <br/>λΆ€ν’ˆλ³„ 검사"]
    C --> D["전체 ν”„λ‘œκ·Έλž¨μ„ μ»΄νŒŒμΌΒ·μ‹€ν–‰"]
    D -->|μ‹€ν–‰ 성곡| E{"λΆ€ν’ˆκ³Ό μ „μ²΄μ˜<br/>κΈ°λŒ€κ°’μ„ μΆ©μ‘±ν•˜λ‚˜?"}
    D -->|μ‹€ν–‰ 였λ₯˜| H["였λ₯˜μ™€ μ‹œλ„ 기둝 μ €μž₯"]
    E -->|예| F["μ„ νƒν•œ μ½”λ“œμ™€ κ²°κ³Ό μ €μž₯"]
    E -->|μ•„λ‹ˆμ˜€Β·μ‹œλ„ κ°€λŠ₯| C
    E -->|후보 λ˜λŠ” 횟수 μ†Œμ§„| G["λΆ€λΆ„ 결과와 λ―Έν•΄κ²° ν•­λͺ© μ €μž₯"]
Loading

두 λΆ€ν’ˆμ„ ν•¨κ»˜ λ°”κΏ”μ•Ό κ²°κ³Όκ°€ μ’‹μ•„μ§€λŠ” κ²½μš°λ„ μžˆμŠ΅λ‹ˆλ‹€. ν•˜λ‚˜λ₯Ό λ°”κΎΈκ³  μ μˆ˜κ°€ 였λ₯΄μ§€ μ•Šμ•˜λ‹€κ³  λ°”λ‘œ 끝내면 이런 쑰합을 λ†“μΉ©λ‹ˆλ‹€. μ§€κΈˆ κ΅¬ν˜„μ€ ν—ˆμš©λœ 쑰합을 μ •ν•΄μ§„ ν•œλ„κΉŒμ§€ μ‚΄νŽ΄λ΄…λ‹ˆλ‹€. μ„œλ‘œ λͺ¨μˆœλœ κΈ°λŒ€κ°’μ€ λ―Έν•΄κ²° μƒνƒœλ‘œ λ‚¨μŠ΅λ‹ˆλ‹€.

자체 λͺ¨λΈμ„ λΆ™μ—¬ λ³Έ κ²°κ³Ό

계산 두 κ°œμ™€ 쑰건 ν•˜λ‚˜λ₯Ό μ„ νƒν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μ€€λΉ„ν–ˆμŠ΅λ‹ˆλ‹€. μ†ŒμŠ€μ™€ 검사 μž…λ ₯을 λ¨Όμ € μ»€λ°‹ν•˜κ³ , κΈ°μ‘΄ 자체 κ·Έλž˜ν”„ λͺ¨λΈμ„ μž¬ν•™μŠ΅ 없이 μ—°κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

전체 쑰립 ν•œλ„ κ³ μ • μˆœμ„œμ˜ μ‹œλ„ / μ‹€ν–‰ 검사 λͺ¨λΈ μˆœμ„œμ˜ μ‹œλ„ / μ‹€ν–‰ 검사
1 1회 / 1개 좩쑱 1회 / 7개 좩쑱
2 2회 / 1개 좩쑱 1회 / 7개 좩쑱
4 4회 / 1개 좩쑱 1회 / 7개 좩쑱
8 8회 / 7개 좩쑱 1회 / 7개 좩쑱

μ‹€ν–‰ κ²€μ‚¬λŠ” λͺ¨λ‘ 일곱 사둀λ₯Ό μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€. κ³ μ • μˆœμ„œμ˜ μ—¬λŸ 번째 μ‘°ν•©κ³Ό λͺ¨λΈμ˜ 첫 쑰합은 같은 Gooo μ½”λ“œμ˜€κ³  μ‹€μ œ 좜λ ₯도 κ°™μ•˜μŠ΅λ‹ˆλ‹€. ν•œ ν”„λ‘œκ·Έλž¨μ„ 두 방식과 λ„€ ν•œλ„λ‘œ μ‹€ν–‰ν•œ μ—¬λŸ 번의 κ΄€μΈ‘μž…λ‹ˆλ‹€. 일곱 평가 μž…λ ₯ 쀑 ν•˜λ‚˜λŠ” 쑰립에도 썼고, 0은 λΆ€ν’ˆμ˜ μ˜ˆμ œμ—λ„ λ“€μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

이 κ²½λ‘œμ—μ„œ λͺ¨λΈμ€ μ²˜μŒμ— μˆœμ„œλ₯Ό μ œμ•ˆν•©λ‹ˆλ‹€. 이후 μ‹€νŒ¨λŠ” μ €μž₯된 μˆœμ„œμ—μ„œ λ‹€μŒ μ‘°ν•©μœΌλ‘œ λ„˜μ–΄κ°€κ²Œ ν•©λ‹ˆλ‹€. λ„€ 번의 λͺ¨λΈ νŒλ‹¨μ€ μ•½ 42~46Β΅sμ˜€κ³ , 전체 μ‘°λ¦½μ—λŠ” μ»΄νŒŒμΌΒ·μ‹€ν–‰ μ‹œκ°„μ΄ μΆ”κ°€λ©λ‹ˆλ‹€. 호슀트 CPU μ‚¬μš©λ₯ μ€ μΈ‘μ •ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. μž„μ‹œ λͺ¨λΈ νŒŒμΌμ„ μ§€μš΄ 뒀에도 μ €μž₯ν•œ 쑰립과 일곱 좜λ ₯이 μƒˆ μΆ”λ‘  없이 μž¬ν˜„λμŠ΅λ‹ˆλ‹€.

직접 μ‹€ν–‰ν•˜κΈ°

곡개 0.6.12 λ˜λŠ” ν•΄λ‹Ή 개발 μ†ŒμŠ€μ—μ„œ μ‹€ν–‰ν•©λ‹ˆλ‹€. --construction-casesλŠ” 쑰립에 μ‚¬μš©ν•˜λŠ” μž…λ ₯, --casesλŠ” 선택 뒀에 μ‹€ν–‰ν•  μž…λ ₯μž…λ‹ˆλ‹€. 두 집합에 κ²ΉμΉ˜λŠ” μž…λ ₯이 있으면 결과에 ν‘œμ‹œν•©λ‹ˆλ‹€.

go run ./cmd/gooo body-construct \
  --source examples/caller-guided-construction/main.gooo.fixture --entry Main \
  --construction-cases examples/caller-guided-construction/construction-cases.json \
  --cases examples/caller-guided-construction/evaluation-cases.json \
  --attempts 2 --out /tmp/my-caller-construction

μƒˆ 좜λ ₯ 폴더λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. 첫 쑰합은 3을, λ‹€μŒ 쑰합은 6을 λ°˜ν™˜ν•©λ‹ˆλ‹€. μ €μž₯ν•œ 기둝을 λ‹€μ‹œ μ‹€ν–‰ν•˜λ©΄ λ‹Ήμ‹œ μ‹œλ„ν•œ 쑰합도 λͺ¨λ‘ μž¬κ²€μ‚¬ν•©λ‹ˆλ‹€. 선택이 λλ‚œ 일반 Gooo μ†ŒμŠ€μ™€ μƒμ„±λœ Go νŒŒμΌλ„ λ‚¨κΉλ‹ˆλ‹€.

ν˜„μž¬ λ²”μœ„λŠ” ν•œ ꡬ성 μ•ˆμ˜ 쑰립 λ³Έλ¬Έ μ΅œλŒ€ 16κ°œμ™€ 전체 쑰립 μ΅œλŒ€ 64νšŒμž…λ‹ˆλ‹€. 곡개 0.6.14μ—μ„œ λ ˆμ½”λ“œ 선택, μ •μˆ˜ IR 탐색과 μ—¬λŸ¬ ν™€μ˜ source_fill을 ν•¨κ»˜ μ—°κ²°ν•©λ‹ˆλ‹€. νŒ¨ν‚€μ§€λ₯Ό κ°€λ‘œμ§€λ₯΄λŠ” 쑰립은 PR 1402μ—μ„œ κ΅¬ν˜„ν–ˆκ³  ν•„μˆ˜ CIλ₯Ό 거쳐 개발 λΈŒλžœμΉ˜μ— λ³‘ν•©ν–ˆμŠ΅λ‹ˆλ‹€. μž‘μ—…μž₯μ—μ„œλ„ Gooo κ·œμΉ™μœΌλ‘œ μ‹€νŒ¨ 사둀 반영과 λ‹€μŒ μ‹œλ„λ₯Ό μ—°κ²°ν–ˆμŠ΅λ‹ˆλ‹€. νŒ¨ν‚€μ§€ 쑰립 μ‚¬μš©λ²•.

쑰건식과 λ³€μˆ˜μ‹μ„ ν•œκΊΌλ²ˆμ— κ³ λ₯΄κΈ°

μ˜ˆμ‚° ν•¨μˆ˜λΌλ©΄ 쑰건 ν•˜λ‚˜λ§Œ λ§žμ•„λ„ λΆ€μ‘±ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μƒν•œμ— λ„λ‹¬ν–ˆλŠ”μ§€ ν™•μΈν•˜λŠ” 쑰건과, κ·Έλ•Œ 남길 값을 ν•¨κ»˜ λ§žμΆ°μ•Ό ν•©λ‹ˆλ‹€. source_fill은 이 λ‘˜μ„ ν•œ 후보 묢음으둜 μ„ μ–Έν•˜κ³  μ½”λ“œμ— μ±„μ›λ‹ˆλ‹€. 이번 변경은 κ·Έ 후보λ₯Ό μ‹€μ œ 호좜 결과둜 λ‹€μ‹œ κ³ λ₯΄κ²Œ ν•©λ‹ˆλ‹€.

처음의 μ‚¬μš©λŸ‰ 0, μƒν•œ 8 β†’ λ‹€μŒ 1 μ˜ˆμ œλŠ” μ„Έ 후보가 λͺ¨λ‘ ν†΅κ³Όν–ˆμŠ΅λ‹ˆλ‹€. μ‚¬μš©λŸ‰ 8, μƒν•œ 8 β†’ μƒν•œ 8μ—μ„œ λ©ˆμΆ”κΈ°λΌλŠ” 호좜 사둀λ₯Ό μΆ”κ°€ν•˜λ©΄ 차이가 λ“œλŸ¬λ‚©λ‹ˆλ‹€. 두 번 μ‹œλ„ν•œ κ²°κ³ΌλŠ” λΆ€λΆ„ μ™„μ„±μœΌλ‘œ λ‚¨μ•˜κ³ , μ„Έ 번째 ν›„λ³΄μ—μ„œ 쑰건을 λ§žμ·„μŠ΅λ‹ˆλ‹€. 선택 ν›„ λ³„λ„λ‘œ μ‹€ν–‰ν•œ λ„€ μž…λ ₯도 ν†΅κ³Όν–ˆμŠ΅λ‹ˆλ‹€. 큰 μ •μˆ˜λŠ” 2^53을 λ„˜μ–΄λ„ κ·ΈλŒ€λ‘œ λΉ„κ΅ν•©λ‹ˆλ‹€.

κΈ°μ‘΄ μ†Œν˜• λͺ¨λΈμ„ 뢙인 ν˜Όν•© μ˜ˆμ œλ„ μ‹€ν–‰ν–ˆμŠ΅λ‹ˆλ‹€. λͺ¨λΈμ€ λ ˆμ½”λ“œ 선택 μˆœμ„œλ₯Ό ν•œ 번 μ œμ•ˆν–ˆκ³ , 빈칸 λ¬ΆμŒμ€ μ†ŒμŠ€ μˆœμ„œλ‘œ κ³¨λžμŠ΅λ‹ˆλ‹€. κ³ μ • μˆœμ„œ 24번과 λͺ¨λΈ μˆœμ„œ 3번이 같은 μ½”λ“œλ₯Ό λ§Œλ“€μ—ˆκ³  별도 ν‰κ°€λŠ” λ‘˜ λ‹€ 4/4μ˜€μŠ΅λ‹ˆλ‹€. μ„œλ‘œ κ΄€λ ¨λœ 두 ν”„λ‘œκ·Έλž¨μ˜ 관츑이며, λͺ¨λΈμ„ μΆ”κ°€ ν•™μŠ΅ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

μžλ™ λ£¨ν”„μ—μ„œλŠ” Goooκ°€ ν‹€λ¦° 호좜 사둀 ν•œ 개λ₯Ό λ‹€μŒ 쑰립에 μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. ν•œλ„ 1 β†’ 1 β†’ 2 β†’ 4둜 λ„€ 회차λ₯Ό μ§„ν–‰ν–ˆκ³  μ‹€μ œ μ‹œλ„λŠ” 총 7λ²ˆμž…λ‹ˆλ‹€. λ§ˆμ§€λ§‰ ν‰κ°€λŠ” 선택을 마친 λ’€ 4/4, μƒˆ λͺ¨λΈ ν˜ΈμΆœμ€ 0νšŒμ˜€μŠ΅λ‹ˆλ‹€. λͺ¨λ“  κΈ°λŒ€κ°’κ³Ό λΆ€λΆ„ κ²°κ³Όλ₯Ό λ‚¨κΉλ‹ˆλ‹€. μ†ŒμŠ€μ˜ 별도 평가도 λ”°λ‘œ κΈ°λ‘ν•˜λ©° 선택 μ μˆ˜μ— λ”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. COMPLETE_FINITEλŠ” κ³΅κΈ‰ν•œ μ§€μ—­ ν•™μŠ΅Β·ν˜ΈμΆœ 사둀가 λ§žμ•˜λ‹€λŠ” λœ»μž…λ‹ˆλ‹€.

μ„ νƒν•œ selected.goooλŠ” λ³΄ν†΅μ˜ Gooo μ†ŒμŠ€μž…λ‹ˆλ‹€. 이번 두 μ†ŒμŠ€λ₯Ό κΈ°μ‘΄ 곡개 0.6.13의 body-compose둜 싀행해도 같은 λ„€ κ²°κ³Όκ°€ λ‚˜μ™”κ³ , λͺ¨λΈ ν˜ΈμΆœμ€ 0νšŒμ˜€μŠ΅λ‹ˆλ‹€. λ‹€μŒ μž…λ ₯을 μ²˜λ¦¬ν•  λ•ŒλŠ” 이 μ†ŒμŠ€λ₯Ό κ°€μ Έλ‹€ μ“Έ 수 μžˆμŠ΅λ‹ˆλ‹€.

μ‹€ν–‰ λͺ…λ Ή Β· 원본과 자체 λͺ¨λΈ μΈ‘μ • Β· κ°œλ°œΒ·λ³‘ν•© μƒνƒœ.

빈 계산식과 λ ˆμ½”λ“œ 선택을 ν•¨κ»˜ λ‹€μ‹œ κ³ λ₯΄κΈ°

ν•„μˆ˜ CI ν›„ dev 934aed80에 λ³‘ν•©ν•œ PR 1387μ—μ„œλŠ” ν•¨μˆ˜ μ•ˆμ— 남겨 λ‘” 계산식도 전체 κ²°κ³Όλ₯Ό 보고 λ‹€μ‹œ κ³ λ¦…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ ν•¨μˆ˜μ˜ 0 β†’ 0 μ‚¬λ‘€λ§Œ 보면 inputκ³Ό 0이 λͺ¨λ‘ λ§žμŠ΅λ‹ˆλ‹€. ν˜ΈμΆœμžκ°€ μ‹€ν–‰ν•œ κ²°κ³Όκ°€ 틀리면 κ·Έ 차이λ₯Ό 근거둜 λ‹€λ₯Έ 계산식을 λ„£μŠ΅λ‹ˆλ‹€. ν•¨μˆ˜μ— 적힌 κΈ°λŒ€κ°’μ€ λ³΄μ‘΄ν•©λ‹ˆλ‹€.

μ •μˆ˜ 계산식과 μ„Έ 개의 λ ˆμ½”λ“œ 선택을 μ„žμ€ μ˜ˆμ œμ—μ„œ κΈ°λ³Έ μˆœμ„œλŠ” 16번, κΈ°μ‘΄ 자체 λͺ¨λΈμ„ μ—°κ²°ν•œ μˆœμ„œλŠ” 9번의 ν”„λ‘œκ·Έλž¨ μ‹œλ„κ°€ ν•„μš”ν–ˆμŠ΅λ‹ˆλ‹€. 두 결과의 Gooo μ†ŒμŠ€κ°€ κ°™κ³ , 별도 평가 4/4와 μ €μž₯ μž¬μ‹€ν–‰λ„ κ°™μ•˜μŠ΅λ‹ˆλ‹€. λͺ¨λΈμ€ λ ˆμ½”λ“œ μˆœμ„œλ₯Ό ν•œ 번 μ œμ•ˆν–ˆκ³  계산식은 μ†ŒμŠ€μ˜ λ¬Έλ²•μ—μ„œ μ •ν•΄μ§„ μˆœμ„œλ‘œ μ‚΄νˆμŠ΅λ‹ˆλ‹€. κ°€μ€‘μΉ˜λŠ” κ·ΈλŒ€λ‘œμž…λ‹ˆλ‹€.

μž‘μ—…μž₯ PR 33μ—μ„œλŠ” 이 μƒˆ 기둝을 Gooo 진단과 μžλ™ λ°˜λ‘€ λ°˜μ˜μ— μ—°κ²°ν–ˆμŠ΅λ‹ˆλ‹€. 같은 ν˜Όν•© 예제λ₯Ό μ•½ν•œ 호좜자 쑰건 ν•˜λ‚˜λ‘œ μ‹œμž‘ν•˜μž 두 μ‹€νŒ¨ 사둀가 μžλ™μœΌλ‘œ μΆ”κ°€λμŠ΅λ‹ˆλ‹€. 6회차·25번의 ν”„λ‘œκ·Έλž¨ μ‹œλ„ λ’€ λ§ˆμ§€λ§‰ 별도 평가 4/4λ₯Ό λ§žν˜”μŠ΅λ‹ˆλ‹€. λ°˜λ³΅ν•œ 쑰합도 μ‹œλ„ μˆ˜μ— μ…‰λ‹ˆλ‹€.

이 κΈ°λŠ₯은 곡개 0.6.13에 ν¬ν•¨ν–ˆμŠ΅λ‹ˆλ‹€. μ•„λž˜ λ§ν¬λŠ” 처음 κ΄€μΈ‘ν•œ 개발 μ†ŒμŠ€μž…λ‹ˆλ‹€. μ˜ˆμ œΒ·μ‹€ν–‰ λͺ…λ Ή Β· 직접 쑰립과 원본 기둝 Β· μžλ™ 반볡 원본.

잘λͺ»λœ 계산식을 κΈ°λ‘ν•˜κ³  λ‹€μŒ ν›„λ³΄λ‘œ λ„˜μ–΄κ°€κΈ°

후보 쀑간에 0으둜 λ‚˜λˆ„κΈ°κ°€ λ‚˜μ˜€λ©΄ 이전 κ΅¬ν˜„μ€ 전체 쑰립을 μ€‘λ‹¨ν–ˆμŠ΅λ‹ˆλ‹€. ν•„μˆ˜ CI ν›„ dev de253a03에 λ³‘ν•©ν•œ 개발 μ†ŒμŠ€λŠ” μ§€μ—­ κ³„μ‚°μ‹μ˜ νƒ€μž… κ²€μ‚¬λ‚˜ 순수 평가가 μ‹€νŒ¨ν•œ 이유λ₯Ό 남기고 λ‹€μŒ 후보λ₯Ό μ‚΄νŽ΄λ΄…λ‹ˆλ‹€. 거절된 쑰합도 μ‹œλ„ νšŸμˆ˜μ— ν¬ν•¨ν•©λ‹ˆλ‹€. μ»΄νŒŒμΌν•œ ν”„λ‘œκ·Έλž¨μ˜ μ‹€ν–‰ 였λ₯˜, μ‹€ν–‰ 도ꡬ 였λ₯˜μ™€ μ·¨μ†ŒλŠ” 계속 쀑단 μ‚¬μœ μž…λ‹ˆλ‹€.

μž‘μ€ μ˜ˆμ œλŠ” input을 μ‹œλ„ν•œ λ’€ 0을 κ±°μ ˆν•˜κ³ , -input을 μ„ νƒν•©λ‹ˆλ‹€. μ„Έ 번의 μ‘°ν•© 쀑 두 ν”„λ‘œκ·Έλž¨μ„ μ‹€μ œ μ‹€ν–‰ν•΄ λ§ˆμ§€λ§‰ 평가 4/4λ₯Ό λ§žν˜”μŠ΅λ‹ˆλ‹€. ν•œλ„λ₯Ό 두 번으둜 쀄이면 첫 ν”„λ‘œκ·Έλž¨κ³Ό λΆ€λΆ„ κ²°κ³Ό 1/4κ°€ λ‚¨μŠ΅λ‹ˆλ‹€. κ·Έ 결과도 원본에 λ³΄μ‘΄ν–ˆμŠ΅λ‹ˆλ‹€.

λ ˆμ½”λ“œ 선택을 μ„žμ€ μ˜ˆμ œλŠ” κΈ°λ³Έ μˆœμ„œμ—μ„œ 24번, κΈ°μ‘΄ 자체 λͺ¨λΈ μˆœμ„œμ—μ„œ 17번의 쑰합을 μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€. 두 경둜 λͺ¨λ‘ 8λ²ˆμ€ μ§€μ—­ κ²€μ‚¬μ—μ„œ 거절됐고, μ‹€μ œ ν”„λ‘œκ·Έλž¨ 싀행은 16번과 9λ²ˆμž…λ‹ˆλ‹€. μ΅œμ’… Gooo μ†ŒμŠ€μ™€ λ§ˆμ§€λ§‰ 평가 4/4κ°€ κ°™μ•˜μŠ΅λ‹ˆλ‹€. ν•œ ν”„λ‘œκ·Έλž¨μ˜ 두 μˆœμ„œ 비ꡐ이며 λͺ¨λΈ κ°€μ€‘μΉ˜λŠ” λ°”κΎΈμ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

κ±°μ ˆμ„ ν¬ν•¨ν•œ 기둝은 joint-construction/v3μž…λ‹ˆλ‹€. μ‹€ν–‰ μ „ κ±°μ ˆμ—λŠ” ν˜ΈμΆœλΆ€ μ μˆ˜κ°€ μ—†μŠ΅λ‹ˆλ‹€. μ €μž₯ μž¬μ‹€ν–‰μ—μ„œ 거절된 계산식과 이유λ₯Ό λ‹€μ‹œ κ²€μ‚¬ν•˜κ³  μƒˆ μΆ”λ‘  없이 μ„ νƒν•œ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•©λ‹ˆλ‹€. 컴파일러 원본.

μž‘μ—…μž₯ PR 34의 Gooo ν”Όλ“œλ°± λ°˜λ³΅μ—μ„œλ„ 이λ₯Ό μ—°κ²°ν–ˆμŠ΅λ‹ˆλ‹€. μ›λž˜ κΈ°λŒ€κ°’μ„ μœ μ§€ν•˜κ³  μ‹€νŒ¨ 사둀 두 개λ₯Ό λ‹€μŒ 쑰립에 μΆ”κ°€ν•΄, 7회차·49번의 전체 μ‹œλ„ ν›„ 별도 평가 4/4λ₯Ό λ§žν˜”μŠ΅λ‹ˆλ‹€. CIμ—μ„œλ„ μƒˆλ‘œ μ‹€ν–‰ν–ˆκ³  둜컬과 μ΅œμ’… μ½”λ“œκ°€ κ°™μ•˜μŠ΅λ‹ˆλ‹€. μžλ™ 반볡 원본과 λ²”μœ„.

λ‹€μŒ μ‹œλ„λ₯Ό Goooκ°€ μ •ν•˜λ„λ‘ μ—°κ²°ν•˜κΈ°

μƒνƒœκ³„ μž‘μ—…μž₯에 workbench constructλ₯Ό μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. λΆ€ν’ˆ 검사·전체 호좜 검사·별도 평가λ₯Ό 읽고, Gooo μ½”λ“œκ°€ λ‹€μŒ 행동과 μ‹œλ„ ν•œλ„λ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€. 후보가 λ‚¨μœΌλ©΄ ν•œλ„λ₯Ό 늘렀 μžλ™μœΌλ‘œ λ‹€μ‹œ μ‘°λ¦½ν•©λ‹ˆλ‹€. ν•œλ„ ν™•λŒ€λŠ” μ²˜μŒλΆ€ν„° μ‹€ν–‰ν•˜λ―€λ‘œ, 1Β·2Β·4Β·8회 ν•œλ„λ₯Ό μ‚¬μš©ν•œ 기둝은 총 15번의 ν”„λ‘œκ·Έλž¨ μ‹œλ„λ‘œ μ…‰λ‹ˆλ‹€.

같은 μ˜ˆμ œμ— 자체 λͺ¨λΈμ„ 뢙이면 ν•œ νšŒμ°¨Β·ν•œ 번의 쑰립으둜 일곱 평가 좜λ ₯을 λ§žν˜”μŠ΅λ‹ˆλ‹€. 둜컬 후보, CI, 곡개 μ‹€ν–‰ νŒŒμΌμ—μ„œ 같은 μ΅œμ’… Gooo μ½”λ“œκ°€ λ‚˜μ™”μŠ΅λ‹ˆλ‹€. 아직 μ„ νƒμ§€λ‚˜ κΈ°λŒ€κ°’μ„ μžλ™ μˆ˜μ •ν•˜μ§€λŠ” μ•ŠμœΌλ©°, 그런 μ‘°μΉ˜κ°€ ν•„μš”ν•˜λ©΄ 이유λ₯Ό λ‚¨κΉλ‹ˆλ‹€. μ†ŒμŠ€μ™€ λͺ…λ Ή Β· μ‹€μ œ μ‹€ν–‰κ³Ό μž¬μ§‘κ³„.

νƒ€μž… 였λ₯˜κ°€ μžˆλŠ” 빈칸 후보도 κΈ°λ‘ν•˜κΈ°

μƒˆ 개발 μ†ŒμŠ€λŠ” source_fill의 후보λ₯Ό λ¨Όμ € ν™•μΈν•˜κ³ , νƒ€μž…μ΄λ‚˜ 쑰립 사둀 ν‰κ°€μ—μ„œ μ‹€νŒ¨ν•œ 후보λ₯Ό λ”°λ‘œ λ³΄κ΄€ν•©λ‹ˆλ‹€. λ‚˜λ¨Έμ§€ ν›„λ³΄λ‘œ 쑰립을 계속할 수 μžˆμŠ΅λ‹ˆλ‹€. candidate_scoresμ—λŠ” 점수λ₯Ό κ³„μ‚°ν•œ ν›„λ³΄λ§Œ, rejected_candidatesμ—λŠ” μ‹€νŒ¨ μ΄μœ μ™€ μ±„μš°λ €λ˜ 식을 κΈ°λ‘ν•©λ‹ˆλ‹€. 전체 μ‘°λ¦½μ—μ„œλŠ” νƒˆλ½ν•œ 쑰합도 μ‹œλ„ ν•œλ„μ— ν¬ν•¨λ©λ‹ˆλ‹€. κ·Έ μ‘°ν•©μ˜ μ‹€ν–‰ κ²°κ³Όλ‚˜ μ •λ‹΅λ₯ μ„ λ§Œλ“€μ–΄ λ„£μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λ‹€μ„― 후보 μ˜ˆμ œμ—μ„œ ν•œλ„ 3은 μ‹œλ„ 3Β·νƒˆλ½ 2Β·μ‹€ν–‰ 1둜 별도 평가 1/4λ₯Ό 남겼고, ν•œλ„ 5λŠ” μ‹œλ„ 5Β·νƒˆλ½ 2Β·μ‹€ν–‰ 3으둜 4/4λ₯Ό λ§Œμ‘±ν–ˆμŠ΅λ‹ˆλ‹€. 기둝의 μ‹€νŒ¨ μ΄μœ λ‚˜ 점수λ₯Ό λ°”κΎΈλ©΄ 컴파일러 μž¬μ‹€ν–‰ 검증이 이λ₯Ό κ±°λΆ€ν•©λ‹ˆλ‹€. μƒˆ 기둝은 v5이고, νƒˆλ½μ΄ μ—†λ˜ 이전 v4 기둝도 μž¬μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 별도 holdout 평가와 native μ‹€ν–‰ 자체의 μ‹€νŒ¨λŠ” μ—¬μ „νžˆ 쀑단 μ‚¬μœ μ΄λ©°, 후보 선택 점수둜 λ°”κΎΈμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

κ΅¬ν˜„ PR Β· κ³ μ • μ‹€ν—˜κ³Ό 원본. 곡개 0.6.14 λ°”μ΄λ„ˆλ¦¬λ³΄λ‹€ μƒˆ 개발 μ†ŒμŠ€λ₯Ό μ‚¬μš©ν•œ κ²°κ³Όμž…λ‹ˆλ‹€.

μ‹€νŒ¨ν•œ 예제λ₯Ό λ‹€μŒ 쑰립에 λ„£κΈ°

CIλ₯Ό 톡과해 λ³‘ν•©ν•œ μž‘μ—…μž₯ PR 32μ—μ„œλŠ” 평가에 μ‹€νŒ¨ν•œ 사둀λ₯Ό Gooo κ·œμΉ™μ΄ 골라 λ‹€μŒ 쑰립에 λ°˜μ˜ν•©λ‹ˆλ‹€. μž…λ ₯κ³Ό κΈ°λŒ€κ°’ 전체λ₯Ό λ³΅μ‚¬ν•˜κ³ , 원본과 μΆ”κ°€ν•œ ν–‰μ˜ 좜처λ₯Ό λ‚¨κΉλ‹ˆλ‹€. 쀑볡은 ν•œ 번만 μΆ”κ°€ν•˜λ©° λͺ¨μˆœλœ κΈ°λŒ€κ°’μ€ λ‘˜ λ‹€ λ³΄μ‘΄ν•©λ‹ˆλ‹€. νšŒμ°¨λ‚˜ 사둀 수의 μƒν•œμ— λ‹ΏμœΌλ©΄ 결과와 이유λ₯Ό μ €μž₯ν•©λ‹ˆλ‹€.

λ°˜λ³΅μ— μ“°λŠ” --evaluation-casesλŠ” 선택에 영ν–₯을 μ€λ‹ˆλ‹€. λ§ˆμ§€λ§‰μ— λ³„λ„λ‘œ 확인할 μ˜ˆμ œλŠ” --holdout-cases둜 μ „λ‹¬ν•©λ‹ˆλ‹€. λ§ˆμ§€λ§‰ νŒŒμΌμ€ 선택이 λλ‚˜μ•Ό μ»΄νŒŒμΌλŸ¬μ— μ „λ‹¬λ˜λ©°, μ €μž₯ν•œ 쑰립을 μƒˆ μΆ”λ‘  없이 μž¬μ‹€ν–‰ν•©λ‹ˆλ‹€.

ν”„λ‘œκ·Έλž¨ κΈ°λ³Έ μˆœμ„œμ˜ μ‹œλ„ κΈ°μ‘΄ λͺ¨λΈ μˆœμ„œμ˜ μ‹œλ„ 각 경둜의 λ§ˆμ§€λ§‰ 평가
μ‚°μˆ  예제 16 1 4/4
μƒˆ μš”κΈˆ 계산 1 16 4/4

μš”κΈˆ κ³„μ‚°μ—μ„œλŠ” λͺ¨λΈμ΄ 잘λͺ»λœ 쑰합을 λ¨Όμ € κ³¨λžμŠ΅λ‹ˆλ‹€. μ‹€νŒ¨ 사둀 λ„€ 개λ₯Ό λ‹€μŒ 쑰건에 λ°˜μ˜ν•˜κ³  μ‹œλ„ ν•œλ„λ₯Ό 늘렀 같은 μ΅œμ’… μ½”λ“œμ— λ„λ‹¬ν–ˆμŠ΅λ‹ˆλ‹€. 두 ν”„λ‘œκ·Έλž¨, λ„€ μ‹€ν–‰μ—μ„œ κ΄€μΈ‘ν•œ κ²°κ³Όμž…λ‹ˆλ‹€. λͺ¨λΈμ˜ κ°€μ€‘μΉ˜μ™€ μ›λž˜ κΈ°λŒ€κ°’μ€ κ·ΈλŒ€λ‘œ μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€. λ§ˆμ§€λ§‰ ν‰κ°€μ˜ λ„€ μž…λ ₯은 각 μ‹€ν–‰μ˜ 쑰립 μž…λ ₯κ³Ό κ²ΉμΉ˜μ§€ μ•Šμ•˜κ³ , 큰 μ •μˆ˜λ„ μ •ν™•νžˆ λΉ„κ΅ν–ˆμŠ΅λ‹ˆλ‹€. μž…λ ₯이 λ‹€λ₯΄λ‹€λŠ” μ‚¬μ‹€λ§ŒμœΌλ‘œ ν•™μŠ΅ μžλ£Œμ™€μ˜ 독립성을 μ£Όμž₯ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

κ΅¬ν˜„Β·μ‚¬μš©λ²• Β· μ‹€ν–‰ μ‹œκ°„Β·μ‹€νŒ¨Β·μ›λ³Έκ³Ό μž¬μ§‘κ³„.

μ†ŒμŠ€μ™€ μ‚¬μš©λ²• Β· κ³ μ • κ³„νšΒ·μ›λ³Έ κ²°κ³ΌΒ·Go μž¬μ§‘κ³„ Β· 처음 λ°œκ²¬ν•œ μ‹€νŒ¨ Β· μ–Έμ–΄ λ°œμ „ λ°©ν–₯

⚠️ **GitHub.com Fallback** ⚠️