Value Origins - kimjooyoon/meta-ontology-go GitHub Wiki

ν˜„μž¬ κ°’κ³Ό μ €μž₯ν•œ κ°’μ˜ 좜처λ₯Ό 읽기

μ—…λ°μ΄νŠΈ: 2026-10-05 KST.

GoooλŠ” 기둝을 μ €μž₯ν•œ μ‹œμ κ³Ό 이후 바뀐 ν•„λ“œλ₯Ό κ΅¬λΆ„ν•©λ‹ˆλ‹€. μž‘μ—… 쀑인 λ¬Έμ„œ μ˜†μ— 이전 사진을 놓고 λΉ„κ΅ν•˜λŠ” 상황과 λΉ„μŠ·ν•©λ‹ˆλ‹€. λ‹€μŒ λ³Έλ¬Έμ—μ„œ saved 와 previousStateλŠ” μ €μž₯ν•œ μ‹œμ μ˜ 값을 κ°€μ§€κ³ , currentλŠ” λŒ€μž… μ΄ν›„μ˜ 값을 κ°–μŠ΅λ‹ˆλ‹€.

let current = input0
let saved = current
let previousState = current.state
current.state = "ready"
current.reason = saved.title + ":" + previousState + ":" + current.state
return current

μ»΄νŒŒμΌλŸ¬κ°€ μ΄λŸ¬ν•œ 관계λ₯Ό μž‘μ€ κ·Έλž˜ν”„λ‘œ 내보내고, μž‘μ€ λͺ¨λΈμ— 전달할 κ³ μ • 배열도 μ€€λΉ„ν•©λ‹ˆλ‹€. 개발 PR1235와 main PR1236에 κ΅¬ν˜„μ„ λ‹΄μ•˜μŠ΅λ‹ˆλ‹€. Go SDK의 μƒˆ μž…λ ₯ 계약은 v0.2.24μž…λ‹ˆλ‹€. λ°°ν¬Β·μ„€μΉ˜ μƒνƒœλŠ” ν˜„μž¬ μƒνƒœλ₯Ό ν™•μΈν•©λ‹ˆλ‹€.

λ°”λ‘œ κ΄€μΈ‘ν•˜κΈ°

컴파일러 μ €μž₯μ†Œμ˜ 순차 λŒ€μž… 예제둜 λ‹€μŒ λͺ…령을 μ‹€ν–‰ν•©λ‹ˆλ‹€.

gooo body-context --value-flow --activity Select \
  examples/body-codegen/record-field-updates.gooo.fixture
gooo body-context --value-flow --activity Select \
  --feature-version triple_record_field_flow_v2_shared_v1 \
  examples/body-codegen/record-field-updates.gooo.fixture

첫 λͺ…령은 μ •μ˜Β·λ³΅μ‚¬Β·μ½κΈ°Β·λŒ€μž…Β·μ‘°κ±΄κ³Ό μ–‘μͺ½ ν›„λ³΄μ‹μ˜ 관계λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€. 쑰건 이후 두 경둜의 값이 λ§Œλ‚˜λŠ” 지점과 μ‘°κΈ° λ°˜ν™˜ 뒀에 남은 μ‹€ν–‰ κ²½λ‘œλ„ κΈ°λ‘ν•©λ‹ˆλ‹€. λ…Έλ“œμ˜ μœ„μΉ˜λŠ” λ³Έλ¬Έ λ˜λŠ” 후보식 μ•ˆμ˜ λ°”μ΄νŠΈ μœ„μΉ˜μ΄λ©°, ν•„λ“œλŠ” μ„ μ–Έν•œ μ•ˆμ •λœ IDλ₯Ό μœ μ§€ν•©λ‹ˆλ‹€. μ§€μ—­ λ³€μˆ˜ 이름을 바꾸어도 관계가 μœ μ§€λ©λ‹ˆλ‹€.

두 번째 λͺ…령은 각 ν›„λ³΄μ‹μ˜ 좜처λ₯Ό 16개 숫자 칸에 μš”μ•½ν•©λ‹ˆλ‹€. μž…λ ₯·볡사· ν•„λ“œ λŒ€μž…Β·μ•žμ„  선택·쑰건 ν•©λ₯˜Β·μ½κΈ° λ“±μ˜ 수λ₯Ό μ„Έκ³ , ν‘œν˜„μ‹κ³Ό ν•œμ˜ μ˜λ„λ₯Ό 합쳐 μ„Έ ν•„λ“œμš© 768칸을 λ§Œλ“­λ‹ˆλ‹€. λͺ¨λΈμ΄ μ‹€ν–‰ κ²°κ³Όλ₯Ό 보기 전에 읽을 수 μžˆλŠ” μ†ŒμŠ€ κ΄€μΈ‘μž…λ‹ˆλ‹€. 이 λͺ…λ Ήμ˜ λͺ¨λΈ 호좜과 μ˜ˆμ‹œ 싀행은 λͺ¨λ‘ 0νšŒμž…λ‹ˆλ‹€.

ν™•μΈν•œ 변화와 λΉ„μš©

λ„€ κ°€μ§€ μž‘μ„± μ†ŒμŠ€μ—μ„œ 두 μž…λ ₯ 계약을 각각 λ‚΄λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μ—¬μ„― κ΄€μΈ‘ 검사가 ν†΅κ³Όν–ˆμŠ΅λ‹ˆλ‹€. ν˜„μž¬ 기둝과 μ €μž₯ 기둝을 μ½λŠ” ν‘œν˜„μ€ μƒˆ λ°°μ—΄μ—μ„œ κ΅¬λΆ„λ˜κ³ , μ§€μ—­ 이름 λ³€κ²½κ³Ό μœ ν•œ μ˜ˆμ‹œμ˜ μž…λ ₯κ°’ 변경은 같은 배열을 μœ μ§€ν–ˆμŠ΅λ‹ˆλ‹€. 이 λ„€ ν˜•νƒœΒ·μ—¬λŸ λ‚΄λ³΄λ‚΄κΈ°λŠ” ν•˜λ‚˜μ˜ ν‘œν˜„ μ‹€ν—˜μž…λ‹ˆλ‹€.

별도 순차 μ˜ˆμ œμ—μ„œ μ†ŒμŠ€ 관계와 μž…λ ₯을 μ€€λΉ„ν•˜λŠ” 과정은 5회 반볡의 쀑앙값 59.9Β΅sΒ·μž„μ‹œ ν• λ‹Ή 86,892 Bμ˜€μŠ΅λ‹ˆλ‹€. νƒ€μž… 정보λ₯Ό λ³„λ„λ‘œ λ³΄κ΄€ν•˜λ„λ‘ λ°”κΎΌ λ’€ μž„μ‹œ 할당은 43.1%, 이 μ€€λΉ„ λ‹¨κ³„μ˜ μ‹œκ°„μ€ 8.8% μ€„μ—ˆμŠ΅λ‹ˆλ‹€. 전체 μƒμ„±Β·λΉŒλ“œΒ· μ‹€ν–‰κ³Ό ν”„λ‘œμ„ΈμŠ€ μ΅œλŒ€ λ©”λͺ¨λ¦¬λŠ” λ‹€λ₯Έ κ΄€μΈ‘ ν•­λͺ©μœΌλ‘œ λ‹€λ£Ήλ‹ˆλ‹€.

원본·λͺ¨λ“  λ°˜λ³΅Β·μž¬ν˜„ λͺ…λ Ή Β· μ–Έμ–΄ μ†ŒμŠ€ κ°€μ΄λ“œ.

μž‘μ€ λͺ¨λΈκ³Ό μ–΄λ–»κ²Œ μ΄μ–΄μ§€λ‚˜

곡개된 곡유 ν•„λ“œ v1 λͺ¨λΈμ€ κΈ°μ‘΄ μž…λ ₯ 계약과 κ°€μ€‘μΉ˜λ₯Ό 계속 μ‚¬μš©ν•©λ‹ˆλ‹€. μƒˆ 좜처 κ³„μ•½μ˜ 호좜 κ²½λ‘œλŠ” μ»΄νŒŒμΌλŸ¬Β·μƒμ£Ό μž‘μ—…μžΒ·μ €μž₯ 선택 μž¬μ‹€ν–‰κΉŒμ§€ μ—°κ²°ν–ˆμŠ΅λ‹ˆλ‹€. μƒˆ κ°€μ€‘μΉ˜ ν•™μŠ΅μ€ λ‹€μŒ 단계이며, νƒ€μž…μ΄ λ§žλŠ” νšŒκ·€μš© ν•©μ„± κ°€μ€‘μΉ˜λ‘œ ν˜ΈμΆœΒ·μž¬μ‹€ν–‰μ„ ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

λ¨Όμ € μ—¬λŸ μš”κ΅¬ μ‘°ν•©, μœ μ§€Β·λΆ€μ • μš”κ΅¬μ™€ μƒˆ ν•œμ˜ ν‘œν˜„μ„ κ· ν˜• 있게 μ€€λΉ„ν•˜κ³ , 같은 μž‘μ€ λͺ¨λΈ 크기와 ν•™μŠ΅ μ˜ˆμ‚°μ—μ„œ 비ꡐ할 κ³„νšμž…λ‹ˆλ‹€. μ‹€μ œλ‘œ μƒμ„±ν•œ ν”„λ‘œκ·Έλž¨μ˜ ν•„λ“œμ™€ 좜λ ₯ μΆ©μ‘± 수λ₯Ό ν•¨κ»˜ μ½μŠ΅λ‹ˆλ‹€. 좜처의 수만 μš”μ•½ν•˜λ©΄ μ„œλ‘œ λ‹€λ₯Έ κ·Έλž˜ν”„κ°€ 같은 배열을 κ°€μ§ˆ 수 μžˆμœΌλ―€λ‘œ κ·Έ μ‹€νŒ¨λ„ κΈ°λ‘ν•©λ‹ˆλ‹€.

ν˜„μž¬ κ·Έλž˜ν”„λŠ” μˆœμˆ˜ν•œ 기둝 본문의 지원 λ²”μœ„λ₯Ό λ”°λ¦…λ‹ˆλ‹€. ν•œλ„λŠ” 512λ…Έλ“œ, λ™μ‹œμ— μœ μ§€ν•˜λŠ” μ§€μ—­κ°’ 64개, 쑰건 깊이 16, 기둝 ν•„λ“œ 16κ°œμ™€ 선택 6κ°œμž…λ‹ˆλ‹€. 해석이 μ–΄λ €μš΄ κ΄€κ³„λ‚˜ ν•œλ„λ₯Ό λ§Œλ‚˜λ©΄ UNRESOLVED와 이유λ₯Ό λ‚¨κΉλ‹ˆλ‹€. λͺ¨λΈ μž…λ ₯을 μ€€λΉ„ν•˜μ§€ λͺ»ν•œ κ²½μš°μ—λŠ” 결정둠적 후보 μˆœμ„œλ‘œ μ§„ν–‰ν•©λ‹ˆλ‹€.

ν•„λ“œ 순차 쑰립 Β· 곡유 νŒλ‹¨κΈ° Β· μ™„μ „μ„± μ§€ν‘œ Β· 졜근 연ꡬ와 λ‹€μŒ κΈ°λŠ₯.