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

์œ ํ•œ ์ž…๋ ฅ ์ฃผ์žฅ ๊ฐ์‚ฌ56e: ๊ฒฐ๊ณผ ์ „ ๊ณ„ํš

์ž‘์€ ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚ค๊ธฐ ์ „์— ๋ฌธ์žฅ์˜ ์•ฝ์†๊ณผ ๊ฒ€์‚ฌ์˜ ๋ฒ”์œ„๋ฅผ ๋งž์ถ”๊ณ , ์†Œ์Šค์˜ ์‹ค์ œ ๋™์ž‘์—์„œ ์ œํ•œ๋œ ์ •๋‹ต์„ ์–ป๋Š” ๋‹จ๊ณ„๋‹ค. ๊ธฐ์กด56c๋Š” ์ •ํ•ด์ง„ ์ž…๋ ฅ9๊ฐœ๋งŒ ๊ฒ€์‚ฌํ•˜๋Š”๋ฐ ๋ฌธ๊ตฌ๋Š” ์ผ๋ฐ˜ ๋™์ž‘์„ ๋งํ•œ๋‹ค. ๊ทธ pending ์ƒํƒœ๋ฅผ ์Šน์ธ์œผ๋กœ ๋ฐ”๊พธ์ง€ ์•Š๋Š”๋‹ค. ๋ณ„๋„ Go ํŒจํ‚ค์ง€ finiteproperty์™€ ๋ช…๋ น riido-propertyaudit์—์„œ ์œ ํ•œ ์ž…๋ ฅ ๊ณ„์•ฝv2๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. ์ „์ฒด ๋ชฉํ‘œ์ธ ์ดˆ์†Œํ˜• ํžŒํŠธ ๋ชจ๋ธ์˜ ํ•™์Šตยท์œ ์šฉ์„ฑ ๊ฒ€์ฆ์€ ์—ฌ์ „ํžˆ ๋ฏธ์™„๋ฃŒ๋‹ค.

๋‹ฌ๋ผ์ง€๋Š” ๊ณ„์•ฝ๊ณผ ๊ณต๊ฐœ ๋ฌธ๊ตฌ

์ƒˆ ์š”์ฒญ์—๋Š” ์‚ฌ์ „ ์ง์ ‘ ์ž‘์„ฑํ•œ ASCII ์ž…๋ ฅ์˜ hex ํ‘œํ˜„์„ ๋ช…์‹œํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 0x22612c62222c63์€ "a,b",c์˜ ๋ฐ”์ดํŠธ๋‹ค. ๋ฌธ์žฅ ๋ถ€ํ˜ธ๋ฅผ ์ง€์šฐ๋Š” ๊ธฐ์กด ์ •๊ทœํ™”์—์„œ๋„ ์„œ๋กœ ๋‹ค๋ฅธ hex ๋‹จ์–ด๋Š” ๋‚จ๋Š”๋‹ค. ๋ชจ๋ธ์ด hex ์˜๋ฏธ๋ฅผ ์ดํ•ดํ•œ๋‹ค๊ฑฐ๋‚˜ ์ •๊ทœํ™” ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค๊ณ  ๋‹จ์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ธฐ์กด56c์˜ โ€œliteral์€ ํŠน์ง• ๊ธˆ์ง€โ€ ์ •์ฑ…์€ ๊ทธ๋Œ€๋กœ์ด๋ฉฐ, ์ƒˆv2๋Š” ๋ช…์‹œ์  ์ž…๋ ฅ ์ง‘ํ•ฉ์ด ์š”์ฒญ์˜ ์ผ๋ถ€์ธ ๋ณ„๋„ ๋ฌธ์ œ๋‹ค. ์ด๋Š” ๊ตฌ ๋ฌธ๊ตฌ๋ฅผ ๋ณด์ •ํ•œ ๋™์ผ ํ‰๊ฐ€๋‚˜ ์ผ๋ฐ˜ ํ•จ์ˆ˜ ์ •ํ™•์„ฑ ์‹œํ—˜์ด ์•„๋‹ˆ๋‹ค.

๋ฌธ๊ตฌ๋Š” AI-assisted ๊ณต๊ฐœ ํ•ฉ์„ฑ ์ž๋ฃŒ๋‹ค. ๋…๋ฆฝ ์—์ด์ „ํŠธ๊ฐ€ ์†Œ์Šค๋ฅผ ์ฝ๊ณ  ๊ฒ€ํ† ํ•˜๋ฉฐ, ์‹ค์ œ ์‚ฌ๋žŒ ์ž‘์„ฑยท์Šน์ธ์œผ๋กœ ํ‘œํ˜„ํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ‰๊ฐ€๊ธฐ๊ฐ€ ์ˆจ์€ literal/๊ธฐ๋Œ€๊ฐ’์„ ๋ฌธ์žฅ์— ์ž๋™ ์ฃผ์ž…ํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ›„๋ณด ์„ค๋ช…์—๋Š” source ID, ๊ธฐ๋Œ€ ๋ฐฐ์—ด, ์—ญํ• , ๊ด€์ธก ํ›„ ์„ฑ๊ณต/์‹คํŒจ๋ฅผ ๋„ฃ์ง€ ์•Š๋Š”๋‹ค. ์š”์ฒญยทํ›„๋ณด ๋ฌธ์žฅ๋งŒ ํ›„์† ์‹คํ—˜์˜ ํŠน์ง• ํ›„๋ณด๊ฐ€ ๋œ๋‹ค. ์ด๋ฒˆ ์‹คํ–‰์—๋Š” ์ˆœ์œ„ยท์ˆซ์ž ํŠน์ง• ์ธ์ฝ”๋”ยทํ•™์Šต ๋ชจ๋ธ์ด ์—†๋‹ค.

๊ณ ์ • ๋ฒ”์œ„์™€ ์ •๋‹ต

์›๋ณธ์˜ ํ›„๋ณด IDยท์ˆœ์„œยทcode/source closure SHA๋ฅผ ์œ ์ง€ํ•œ๋‹ค. ๋ถ€๋ชจ4๊ฐœร—์†์„ฑ3๊ฐœ=12ํŒŒ์ƒ ํ–‰, ํ›„๋ณด ์„ค๋ช…36๊ฐœ๋‹ค. ์„ธ ์†์„ฑ์˜ ์ž…๋ ฅ2/2/5๊ฐœ์™€ ๋…๋ฆฝ authored ๊ธฐ๋Œ€๊ฐ’์€ scopedproperty.Definitions()์˜ ๊ธฐ์กด9๊ฐœ๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ ์•ˆ์˜ pending์€ ์›๋ณธ ๊ธฐ๋ก์ด๋ฉฐ ์ƒˆ ๋ฌธ๊ตฌ ๊ฒ€ํ†  ์ƒํƒœ๊ฐ€ ์•„๋‹ˆ๋‹ค. ๊ณต๊ฐœ ์š”์ฒญ์˜ hex๋ฅผ ํ•ด์„ํ•ด ๋™์ผํ•œ ์ž…๋ ฅยท์ˆœ์„œยท์ˆ˜์ธ์ง€ ๊ฒ€์‚ฌํ•œ๋‹ค. ๋ˆ„๋ฝ๋œ ์„ค๋ช…์„ metadata๋กœ ์ฑ„์šฐ๊ฑฐ๋‚˜ ์š”์ฒญ์„ ์ž๋™ ์ƒ์„ฑํ•˜์ง€ ์•Š๋Š”๋‹ค.

์˜ค์ง ๋“ฑ๋ก๋œ ์›์ฒœ4๊ฐœ๋ฅผ typedbehavior.ObserveQuotedProperty๋กœ ์‹คํ–‰ํ•œ๋‹ค. ์›์ฒœร—์ž…๋ ฅ=36์‹ค์ œ ํ˜ธ์ถœ์ด๋ฉฐ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ12ํ–‰์˜36ํ›„๋ณด ๋ผ๋ฒจ์— ์ฐธ์กฐํ•œ๋‹ค. ํ›„๋ณด ์ „์ฒด ํ•จ์ˆ˜์˜ correct/wrong ์—ญํ• ์ด๋‚˜ ๊ธฐ์กด acceptable ์ง‘ํ•ฉ์€ ์ƒˆ ์ •๋‹ต์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. Error, Count, ์ „์ฒด8๊ฐœ Tokens, Panicked๋ฅผ exact ๋น„๊ตํ•œ๋‹ค. Syntax ์ž…๋ ฅ์€ ์ •ํ™•ํ•œ syntax error๊ฐ€ ํ•„์ˆ˜๋ผ OK+๋นˆ ์ถœ๋ ฅ๋„ ๋ถˆ์ผ์น˜๋‹ค. Count0์— ์ž”์—ฌ token์ด ์žˆ์–ด๋„ ๋ถˆ์ผ์น˜, ๊ด€์ธก๋œ panic๋„ ๋ถˆ์ผ์น˜๋‹ค. ๊ด€์ธก๊ธฐ ์ง€์› ์˜ค๋ฅ˜ยท๋ณ€์กฐ๋Š” ์ •๋‹ต false๋กœ ๋ฐ”๊พธ์ง€ ์•Š๊ณ  ์ค‘๋‹จํ•œ๋‹ค. ์ผ์น˜๋Š” ์ด ์ž…๋ ฅ ์ง‘ํ•ฉ์—์„œ๋งŒ ์œ ํšจํ•˜๋‹ค.

๋ชจ๋“  ์›์ฒœ์€ ๊ฐ™์€ scanQuoted helper ๊ฐ€์กฑ์— ์—ฐ๊ฒฐ๋œ๋‹ค. ์ƒˆ ๋…๋ฆฝ ๋ถ€๋ชจ/๊ฐ€์กฑ ์ฆ๊ฐ€0์ด๋‹ค. ๊ธฐ์กด56b์˜72๋ถ€๋ชจยท17์ „์ฒด/16๋ผ๋ฒจ ๊ทธ๋ฃน๊ณผ delimiter unknown4๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค. 12ํ–‰์ด๋‚˜36์‹คํ–‰์„ ์ƒˆ๋กœ์šด ๋…๋ฆฝ ์š”์ฒญ ๋˜๋Š” ๋ณดํ˜ธ ์ตœ์ข…2400๊ฐœ๋กœ ์„ธ์ง€ ์•Š๋Š”๋‹ค.

์‹คํ–‰ ์ „์— ๋ด‰์ธํ•˜๋Š” ์ˆœ์„œ

  1. ์ฝ”๋“œยท๊ณ„ํšยท๋…๋ฆฝ ๋ฌธ๊ตฌ ๊ฒ€ํ† ยทpreparation ๋‹จ์œ„ ๊ฒ€์‚ฌยท๋ชจ๋“ˆยท๊ธฐ์กด56c ๊ธฐ๋ก์„ source commit์— ๊ณ ์ •ํ•œ๋‹ค. ์‹ ๊ทœ ๋‹จ์œ„ ๊ฒ€์‚ฌ๋Š” exact ๋น„๊ต/๋ณ€์กฐ/๊ธธ์ด/๋ฒ”์œ„๋ฅผ ๊ฒ€์ฆํ•˜๋ฉฐ ํ›„๋ณด ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ „์ฒด ๊ธฐ์กด ํšŒ๊ท€ ๊ฒ€์‚ฌ์—๋Š” ์—ญ์‚ฌ์  ํ›„๋ณด ๋Œ€์กฐ ์‹คํ–‰์ด ์ด๋ฏธ ์žˆ์œผ๋ฏ€๋กœ โ€œ์ฒ˜์Œ ๋ณธ ์†Œ์Šคโ€๋ผ๊ณ  ์ฃผ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.
  2. Go1.27.1, CGO0, -trimpath -buildvcs=false -p=1 ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ํ•œ ๋ฒˆ ๋นŒ๋“œํ•œ๋‹ค. ์‹ค์ œ ์‹คํ–‰ ํŒŒ์ผ SHA์™€ ํฌ๊ธฐ๋ฅผ ๊ณ„ํš์— ๋„ฃ๊ณ  ๋ณธ์ฒด๋Š” Git ์ œ์™ธํ•œ๋‹ค. ์†Œ์Šค21๊ฐœ+support13๊ฐœ๋ฅผ ๋””์Šคํฌ์™€ ์‹ค์ œ Git blob์—์„œ ํ™•์ธํ•œ๋‹ค.
  3. prepare์—์„œ ํ›„๋ณด ๊ด€์ธก ์—†์ด dataset/plan์„ ๋‚ด๋ณด๋‚ธ๋‹ค. ๋‘ ํŒŒ์ผ์„ probes-56e.json, execution-plan-56e.json์œผ๋กœ ๋ณ„๋„ input commit์— ๊ณ ์ •ํ•œ๋‹ค.
  4. audit --input-commit์€ ๋™์ผ ์‹คํ–‰ ํŒŒ์ผยท์†Œ์Šค/support34๊ฐœยท์ž…๋ ฅ2๊ฐœ, ์ด36 Git blob์„ ๊ด€์ธก ์ „์— ๊ฒ€์ฆํ•œ๋‹ค. JSON canonical byte ๋น„๊ต๋กœ duplicate key, ์ˆจ์€ extra fixed-array element, unknown field, null ๋ณ€ํ˜•, trailing object๋„ ๊ฑฐ์ ˆํ•œ๋‹ค. ์‹คํŒจ ์‹œ ์ž๋™ ์žฌ์‹œ๋„0์ด๋‹ค.
  5. ๊ณต์‹ ๊ฐ์‚ฌ1ํšŒ, ์ „์ฒด36ํ˜ธ์ถœ์˜ ์ž…๋ ฅยท๊ธฐ๋Œ€ยท๊ด€์ธก๊ณผ12ํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๊ณต๊ฐœ ์›๋ฌธ์— ๋ณด์กดํ•œ๋‹ค. ์ดํ›„ CI replay๋Š” ๋™์ผ ๊ธฐ๋ก์˜ ํšŒ๊ท€ ๊ฒ€์‚ฌ์ด๋ฉฐ ์ƒˆ ํ‘œ๋ณธ์ด๋‚˜ ์ƒˆ ๊ณต์‹ ์‹œ๋„๊ฐ€ ์•„๋‹ˆ๋‹ค. ๊ธฐ์กด ์ถœ๋ ฅ directory๋ฅผ ๋‹ค์‹œ ์“ฐ๋ฉด ๊ด€์ธก ์ „์— ๊ฑฐ์ ˆํ•œ๋‹ค. ๋‹ค๋ฅธ directory๋กœ ์žฌ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ ๋ณ„๋„ ์‹œ๋„์ด๋ฏ€๋กœ ๊ณต์‹ ์›์žฅ๊ณผ ๊ตฌ๋ถ„ํ•œ๋‹ค.

Go GOMAXPROCS=1, heap soft limit256MiB ์„ค์ •์ด๋‹ค. ์ด๋Š” ์‹ค์ œ RSS/CPU/GPU ์ธก์ •์ด๋‚˜ ์ƒํ•œ ๋ณด์ฆ์ด ์•„๋‹ˆ๋‹ค. ์›๋ฌธ ํŒŒ์ผ์€ ๊ฐ1MiB ์ด๋‚ด๋กœ ์ œํ•œํ•œ๋‹ค. ์ค€๋น„ยท๊ฐ์‚ฌ์˜ preflight๋Š” typed24ร—4 + pending12ร—4 + finite12ร—4 =192๋ฒˆ์˜ ๊ธธ์ด ๊ฒ€์‚ฌ ์ •๊ทœํ™”๋ฅผ ๊ฐ๊ฐ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ˆซ์ž encoder/score/ranking์€0์ด๋‹ค. ์›์ฒœยท๋ถ€๋ชจยทliteral metadata๋Š” ๊ทธ ์ •๊ทœํ™” ๋ฌธ์žฅ์— ์ฃผ์ž…ํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋‹ค์Œ ํ•™์Šต์„ ์œ„ํ•œ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ธฐ์ค€

๊ณต์‹ ์ˆœ์œ„/ํšจ์šฉยท์—ญํ•  ๋ถ„ํ• ยทfitยท์ƒˆ ๊ฐ€์ค‘์น˜ยท๋ชจ๋ธ ํ˜ธ์ถœยท์œ ๋ฃŒ ํ˜ธ์ถœยท๋ณดํ˜ธ ์ตœ์ข…/CoSQA ์ ‘๊ทผยท์šด์˜ ํ™œ์„ฑํ™”0. ์ตœ์†Œ15์ „์ฒด/๋ผ๋ฒจ ๊ทธ๋ฃน๊ณผ5% ํ•„์š” ํšจ์šฉ ๊ธฐ์ค€, ๋„๋ฉ”์ธ๋ณ„2400๊ฐœ ์ด์ƒ์˜ ๊ณ ์œ  ๋ณดํ˜ธ ์ตœ์ข… ์š”์ฒญ์„ ๋‚ฎ์ถ”์ง€ ์•Š๋Š”๋‹ค. ์ด๋ฒˆ ์œ ํ•œ ๊ฐ€์กฑ๋งŒ์œผ๋กœ ํ•™์Šต ์ ๊ฒฉ์„ ์„ ์–ธํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋‹ค์Œ์—๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๊ณต๊ฐœ ์›์ฒœ120โ†’240์˜ ๊ถŒ๋ฆฌ/revision/closure์™€ ๋…๋ฆฝ ๊ณ„์•ฝ์„ ํ™•๋ณดํ•˜๊ณ , ํ›„๋ณด๋ฅผ ๋ชจ๋‘ ๋ณด์กดํ•œ ๊ณ ์ •/BM25/lexical/rule/oracle ํšจ์šฉ ๊ณ„ํš์„ ๊ฒฐ๊ณผ ์ „์— ๋ณ„๋„ ๋ด‰์ธํ•ด์•ผ ํ•œ๋‹ค. ํ•จ์ˆ˜ ํ–‰๋™์ด ์ด๋ฏธ ๊ตฌํ˜„๋œ ์›์ฒœ์€ ์˜๋ฏธ ๊ด€์ธก ์žฌ๋ฃŒ์ด์ง€ ์ƒˆ ์ฝ”๋”ฉ ๊ณผ์ œ๋ฅผ ์™„๋ฃŒํ•œ ์ฆ๊ฑฐ๊ฐ€ ์•„๋‹ˆ๋‹ค.