Finite Property Usage 56e KO - teamswyg/laya-tools GitHub Wiki

์œ ํ•œ ์ž…๋ ฅ ์ฃผ์žฅ ๊ฐ์‚ฌ ์‚ฌ์šฉ๋ฒ•

riido-propertyaudit๋Š” ์œ ์ง€๋ณด์ˆ˜์ž๊ฐ€ ์ž‘์€ ์ฃผ์žฅ ํ•™์Šต์˜ ์ž…๋ ฅ ๋ฌธ๊ตฌ์™€ ์ •๋‹ต ๊ทผ๊ฑฐ๋ฅผ ๋งž์ถ”๋Š” ์˜คํ”„๋ผ์ธ Go ๋„๊ตฌ๋‹ค. Laya๋‚˜ ๋ชจ๋ธ ๊ฐ€์ค‘์น˜๋ฅผ ๋กœ๋“œํ•˜์ง€ ์•Š๋Š”๋‹ค. ์‚ฌ๋žŒ์ด๋“  ์—์ด์ „ํŠธ๋“  ์›๋ฌธ ๊ฒฐ๊ณผ์˜ ์š”์ฒญโ†’ํ›„๋ณด ์†Œ์Šคโ†’์ง€์ • ์ž…๋ ฅโ†’๊ธฐ๋Œ€/๊ด€์ธก์„ ๋”ฐ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ํ•จ์ˆ˜ ์ „์ฒด์˜ ์•ˆ์ „์„ฑยท์ผ๋ฐ˜ ์ •ํ™•์„ฑ์„ ์Šน์ธํ•˜๋Š” ๋„๊ตฌ๋Š” ์•„๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์‰ฌ์šด ํ™•์ธ์€ ์ €์žฅ์†Œ์—์„œ Go1.27.1๋กœ ํšŒ๊ท€ ๊ฒ€์‚ฌ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

go test ./internal/finiteproperty ./cmd/riido-propertyaudit

๊ณต๊ฐœ ๊ธฐ๋ก์„ ์ฝ๊ณ  ๊ฐ™์€ ์†Œ์Šค ๋™์ž‘์„ replayํ•œ๋‹ค. CI์˜ Linux/macOS ๊ฒ€์‚ฌ๋„ ์ด ๊ด€์ธก ์ผ์น˜๋ฅผ ํ™•์ธํ•œ๋‹ค. ์ด๋Š” ์ƒˆ ๊ณต์‹ ์‹คํ—˜ ๋˜๋Š” ๋ชจ๋ธ ํ˜ธ์ถœ์ด ์•„๋‹ˆ๋ฉฐ, ๋ณด์กด๋œ Darwin ์‹คํ–‰ ํŒŒ์ผ์ด Linux์—์„œ ์‹คํ–‰๋๋‹ค๋Š” ๋œป๋„ ์•„๋‹ˆ๋‹ค.

๊ณต์‹ ์ˆ˜์ง‘์„ ๋งŒ๋“  ์ˆœ์„œ

์•„๋ž˜๋Š” ์ด๋ฏธ ์ˆ˜ํ–‰ํ•œ56e ์ˆ˜์ง‘ ์ ˆ์ฐจ๋‹ค. ์ƒˆ ์‹คํ—˜์„ ์ง„ํ–‰ํ•  ๋•Œ๋Š” ์ƒˆ๋กœ์šด ๊ณ„ํš/๋ฒ„์ „์œผ๋กœ ์›๋ฌธ์„ ๋ณด์กดํ•œ๋‹ค. ํŒŒ์ผ ๋ณธ์ฒด๋ฅผ Git์— ์˜ฌ๋ฆฌ์ง€ ์•Š๊ณ  ๋นŒ๋“œ ๋ฐฉ๋ฒ•๊ณผ SHA๋งŒ ๊ธฐ๋กํ•œ๋‹ค. ์‹ค์ œ source/input Git commit์ด ํ•„์š”ํ•˜๋ฉฐ ์ค€๋น„ํ•œ binary๋ฅผ audit๊นŒ์ง€ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค.

CGO_ENABLED=0 go build -trimpath -buildvcs=false -p=1 -o PRIVATE_BINARY ./cmd/riido-propertyaudit
PRIVATE_BINARY --stage prepare --source-commit SOURCE_COMMIT --out NEW_PREPARATION
# dataset.json๊ณผ plan.json์˜ bytes๋ฅผ ๋ณ„๋„ ์ž…๋ ฅ commit์— ๊ณ ์ •ํ•œ ํ›„
PRIVATE_BINARY --stage audit --input-commit INPUT_COMMIT --in NEW_PREPARATION --out NEW_AUDIT

๊ณต์‹ ์‹คํ–‰์€ ๊ณ ์ • build recipe์˜ ํ™˜๊ฒฝ๊นŒ์ง€ ์ ์šฉํ–ˆ๋‹ค. prepare๋Š” ํ›„๋ณด ์‹คํ–‰0์œผ๋กœ dataset/plan์„ ๋งŒ๋“ ๋‹ค. audit๋Š” experiments/short-claim/probes-56e.json, execution-plan-56e.json์— ๊ณ ์ •๋œ ์ž…๋ ฅ์˜ ์‹ค์ œ Git blob๊ณผ ๋™์ผํ•œ์ง€ ํ™•์ธํ•œ๋‹ค. ๊ธฐ์กด directoryยท๋ณ€์กฐยท๋‹ค๋ฅธ binaryยท์ž˜๋ชป๋œ input commit์„ ๋ฐ›์œผ๋ฉด ๊ฑฐ์ ˆํ•œ๋‹ค. CLI๊ฐ€ ๋ชจ๋“  ์ƒˆ directory์˜ ์ค‘๋ณต ์‹คํ–‰์„ ๋ง‰๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ฏ€๋กœ ์‹ค์ œ ๊ณต์‹1ํšŒ/์‹คํŒจ ์›์žฅ์„ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค.

๊ฒฐ๊ณผ๋ฅผ ์–ด๋–ป๊ฒŒ ์“ฐ๋‚˜

์›๋ฌธ ๊ฒฐ๊ณผ์˜ source_results์—๋Š” ๊ฐ ์›์ฒœ๊ณผ ์ž…๋ ฅ์˜ expected/got ์ „์ฒด ๊ด€์ธก์ด ์žˆ๋‹ค. rows๋Š” ์›๋ž˜ ํ›„๋ณด ์ˆœ์„œ์™€ ๊ทธ ๊ทผ๊ฑฐ index๋ฅผ ์œ ์ง€ํ•œ๋‹ค. matches_finite_literals๋Š” ์ •ํ•ด์ง„ ์ž…๋ ฅ์—์„œ ์ผ์น˜ํ•œ๋‹ค๋Š” ๋œป์ด๊ณ , ๋‹ค๋ฅธ ์ž…๋ ฅยท์ผ๋ฐ˜ ํ•จ์ˆ˜ยท๋ชจ๋ธ์˜ ํ™•๋ฅ  ํŒ๋‹จ์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์—†๋‹ค. finite_no_answer๋Š” ํ›„๋ณด๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ๋œ ๊ฒ€์‚ฌํ•˜๋ผ๋Š” ์ง€์‹œ๊ฐ€ ์•„๋‹ˆ๋‹ค. ๋ชจ๋“  ํ›„๋ณด์™€ fallback์„ ์œ ์ง€ํ•œ๋‹ค.

์ด ๊ธฐ๋ก์€ ํ›„์† ํšจ์šฉยทํ•™์Šต ๊ณ„ํš์˜ ์ •๋‹ต ์žฌ๋ฃŒ์ผ ๋ฟ์ด๋‹ค. ํ˜„์žฌ ํ•™์Šต ์ ๊ฒฉfalse, fit/model/ranking0์ด๊ณ  ๋…๋ฆฝ ๋ถ€๋ชจ ์ฆ๊ฐ€0์ด๋‹ค. ํ•œ๊ธ€ ๊ฒฐ๊ณผ, English, ๋‹ค์–‘ํ•œ ๊ณต๊ฐœ ์›์ฒœ์˜ ๋‹ค์Œ ๊ณ„์•ฝ์„ ํ•จ๊ป˜ ์ฝ์œผ๋ฉด ๋ฒ”์œ„์™€ ๋‚จ์€ ์ผ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.