Comparing Body Runs - kimjooyoon/meta-ontology-go GitHub Wiki

쑰립·싀행 κ²°κ³Όμ—μ„œ 무엇이 λ°”λ€Œμ—ˆλŠ”μ§€ 읽기

2026-10-03. 파일 싀행이 남긴 생성·싀행 기둝을 gooo completeness-delta의 λ‹€μŒ μž…λ ₯으둜 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 개발 #1188κ³Ό main #1189을 λ³‘ν•©ν•˜κ³  κΉ¨λ—ν•œ main 05746e4aλ₯Ό Go 1.27.1둜 μ„€μΉ˜ν•΄ μ•„λž˜ λͺ…령을 ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€. μ‘°κ±΄Β·λ³€μˆ˜ 예제의 2회 생성·4회 싀행은 6/6, 생성→싀행과 μ‹€ν–‰β†’μž¬μ‚¬μš©μ˜ 비ꡐ도 각각 κΈ°λŒ€ν•œ λ²”μœ„λ‘œ 좜λ ₯λμŠ΅λ‹ˆλ‹€. ν˜„μž¬ μƒνƒœ.

λ¨Όμ € 두 번 μ‘°λ¦½ν•˜κ³  μ‹€ν–‰ν•˜κΈ°

Go 1.27.1κ³Ό μ•„λž˜ λͺ…령을 μ§€μ›ν•˜λŠ” goooλ₯Ό μ€€λΉ„ν•˜κ³  컴파일러 μ €μž₯μ†Œμ—μ„œ μ‹€ν–‰ν•©λ‹ˆλ‹€. body-comparison-resultsλŠ” μƒˆ 폴더 μ΄λ¦„μž…λ‹ˆλ‹€.

gooo body-path-run \
  --source examples/body-codegen/typed-path-compound.gooo.fixture \
  --activity Combined \
  --path-plan examples/body-codegen/typed-path-compound-plan.json \
  --cases examples/body-codegen/typed-path-runtime-cases.json \
  --repeat 2 --out body-comparison-results

생성→싀행을 μ½μŠ΅λ‹ˆλ‹€.

gooo completeness-delta \
  --before body-comparison-results/run-1-generation.json \
  --after body-comparison-results/run-1-runtime.json

처음 μ‹€ν–‰β†’μ‹€ν–‰νŒŒμΌ μž¬μ‚¬μš©μ„ μ½μŠ΅λ‹ˆλ‹€.

gooo completeness-delta \
  --before body-comparison-results/run-1-runtime.json \
  --after body-comparison-results/run-2-runtime.json

비ꡐ λͺ…령은 κΈ°μ‘΄ 기둝을 μ½μŠ΅λ‹ˆλ‹€. μƒˆ λͺ¨λΈ νŒλ‹¨Β·ν”„λ‘œκ·Έλž¨ μ‹€ν–‰Β·μ™ΈλΆ€ μš”μ²­Β·μ €μž₯μ†Œ μ“°κΈ°λŠ” λͺ¨λ‘ 0νšŒμž…λ‹ˆλ‹€. 이전 μ‹€ν–‰μ˜ 숫자λ₯Ό μƒˆ μ‹€ν–‰ 횟수둜 λ”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

κ²°κ³Όλ₯Ό μ½λŠ” μˆœμ„œ

λ¨Όμ € λ³Ό ν•­λͺ© 읽을 λ‚΄μš©
relation 두 기둝이 같은 쑰건인가, 생성 λ’€μ˜ 싀행인가, 쑰건이 λ‹¬λΌμ‘ŒλŠ”κ°€
before_receipt, after_receipt μ›λž˜ μΆ©μ‘± μˆ˜Β·λΆ„λͺ¨Β·μ‹€νŒ¨Β·λ―Έκ΄€μΈ‘ λ‚΄μš©
dimensions 각 ν•­λͺ©μ˜ μƒνƒœΒ·λ‹¨μœ„Β·λΆ„μžΒ·λΆ„λͺ¨μ™€ λ³€ν™”
changed_scope_fields 바뀐 쑰건의 μ •ν™•ν•œ μœ„μΉ˜
comparator_operations 비ꡐ μžμ²΄μ—μ„œ μˆ˜ν–‰ν•œ μž‘μ—… 수

생성→싀행은 PARENT_RUNTIME_CONTINUATIONμž…λ‹ˆλ‹€. μ •ν™•ν•œ λΆ€λͺ¨ 기둝에 μƒˆ μ‹€ν–‰ 관츑이 μ΄μ–΄μ‘Œλ‹€λŠ” λœ»μž…λ‹ˆλ‹€. 생성 λ•Œ ν™•μΈν•œ ꡬ쑰와 μ‹€ν–‰ λ•Œ ν™•μΈν•œ λ™μž‘μ˜ μˆ«μžλŠ” 각자 λ‚¨μŠ΅λ‹ˆλ‹€.

같은 κΈ°λŒ€κ°’ 묢음의 처음 μ‹€ν–‰β†’μž¬μ‚¬μš©μ€ SAME_MEASUREMENT_SCOPE일 수 μžˆμŠ΅λ‹ˆλ‹€. μΆ©μ‘± μˆ˜κ°€ κ·ΈλŒ€λ‘œλΌλ©΄ runtime_finite_accuracy의 λ³€ν™”λŸ‰μ€ 0μž…λ‹ˆλ‹€. κΈ°λŒ€κ°’ ν•˜λ‚˜λ₯Ό λ°”κΎΈλ©΄ μ‹€ν–‰ 묢음의 ν•΄μ‹œκ°€ λ°”λ€Œλ―€λ‘œ INCOMPARABLE_SCOPE둜 ν‘œμ‹œν•©λ‹ˆλ‹€.

v2의 첫 λΉŒλ“œμ—μ„œλŠ” ν˜„μž¬ μžμ‹ ν”„λ‘œμ„ΈμŠ€ 넷을 κ΄€μΈ‘ν•˜κ³ , μž¬μ‚¬μš©μ—μ„œλŠ” κ³Όκ±° λΉŒλ“œλ₯Ό μ œμ™Έν•œ ν˜„μž¬ μžμ‹ 셋을 κ΄€μΈ‘ν•©λ‹ˆλ‹€. v3λŠ” μ •κ·œ Go λ„κ΅¬μ˜ 첫 버전 확인도 λ³΄κ΄€ν•©λ‹ˆλ‹€. λ²„μ „Β·λΉŒλ“œλ₯Ό λͺ¨λ‘ μž¬μ‚¬μš©ν•˜λ©΄ ν˜„μž¬ μ‹€ν–‰ 두 개λ₯Ό κ΄€μΈ‘ν•©λ‹ˆλ‹€. λΆ„λͺ¨Β·λ‹¨μœ„κ°€ λ°”λ€Œλ©΄ runtime_child_resources의 수치 κ°œμ„ λŸ‰μ€ nullμž…λ‹ˆλ‹€. μ‹€μ œ λΉ„μš©μ€ 각 원본 μ‹€ν–‰ κ΄€μΈ‘μ—μ„œ μ½μŠ΅λ‹ˆλ‹€. 도ꡬ 확인과 ν˜„μž¬ λΉ„μš© 읽기.

status=PASSλŠ” 비ꡐ 쑰건이 λ§žμ•˜λ‹€λŠ” κ²°κ³Όμž…λ‹ˆλ‹€. ν”„λ‘œκ·Έλž¨μ˜ κΈ°λŒ€κ°’ μΆ©μ‘±κ³Ό μ‹€νŒ¨λŠ” 원본 기둝 및 ν•΄λ‹Ή ν•­λͺ©μ—μ„œ μ½μŠ΅λ‹ˆλ‹€. λͺ…λ Ήμ˜ μ’…λ£Œ μ½”λ“œ 0은 비ꡐλ₯Ό 좜λ ₯ν–ˆλ‹€λŠ” λœ»μž…λ‹ˆλ‹€.

기둝의 μ—°κ²°κ³Ό ν•œκ³„

μ›λž˜ λΆ€λͺ¨μ˜ λ°”μ΄νŠΈΒ·ν•΄μ‹œ, μ†Œμœ ν•œ μ‹€ν–‰νŒŒμΌκ³Ό λΉŒλ“œ 기둝, κ΄€μΈ‘ 볡사본·관츑 ν•΄μ‹œλ₯Ό ν™•μΈν•©λ‹ˆλ‹€. μ„±κ³΅ν•œ λΉŒλ“œκ°€ μ—†λŠ” μ‹€νŒ¨ 기둝도 λ³΄μ‘΄ν•©λ‹ˆλ‹€. μ‹€ν–‰ κ²°κ³Ό νŒŒμΌμ€ λ“±λ‘λœ v1/v2/v3 ν”„λ‘œν•„μ„ 읽고 ν•„μˆ˜ 연결을 μžƒμ€ 파일과 미등둝 μ‹€ν–‰ ν”„λ‘œν•„μ„ κ±°λΆ€ν•©λ‹ˆλ‹€. μΈ‘μ • 기둝 자체λ₯Ό 직접 μ „λ‹¬ν•œ κ²½μš°μ—λŠ” 미등둝 ν”„λ‘œν•„μ΄λ‚˜ λˆ„λ½λœ μ†Œμœ  λ²”μœ„λ₯Ό μ„œλ‘œ 비ꡐ할 수 μ—†λŠ” 쑰건으둜 ν‘œμ‹œν•˜κ³  μ›λž˜ 관츑을 λ‚¨κΉλ‹ˆλ‹€.

이 κ²€μ‚¬λŠ” μ œκ³΅λ°›μ€ JSON λ‚΄μš©μ΄ μ–΄λ–»κ²Œ μ—°κ²°λλŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€. μ‹€μ œ μ‹€ν–‰ κ·Όκ±°λŠ” μ›λ³ΈΒ·λΉŒλ“œ λ„κ΅¬Β·μžμ‹ ν”„λ‘œμ„ΈμŠ€λ₯Ό κ΄€μΈ‘ν•œ μƒμ„±μžμ˜ κΈ°λ‘μ—μ„œ ν™•μΈν•©λ‹ˆλ‹€. λͺ¨λ“  μž…λ ₯에 λŒ€ν•œ μ •ν™•λ„λ‚˜ μžμ—°μ–΄ μ˜λ„μ˜ 전체 μ™„μ„±λ₯ μ€ 각 과제의 κ΄€μΈ‘μœΌλ‘œ μ •μ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.

원본 μ‹€νŒ¨Β·κ²€μ‚¬Β·μ‹€μ œ λͺ¨λΈκ³Ό 비ꡐ 기둝 Β· μ–Έμ–΄μ˜ μ§€ν‘œ