Scoped Property Results 56c KO - teamswyg/laya-tools GitHub Wiki

์ž‘์€ ์†์„ฑ ์ œ์•ˆ ์ค€๋น„56c ๊ธฐ๋ก

English ยท ์‚ฌ์šฉ๋ฒ• ยท ์‚ฌ์ „ ์„ค๊ณ„ ยท ์ค€๋น„ ์‹คํ–‰ ๊ณ„ํš ยท ์‹คํ–‰ snapshot

Go riido-scopeprep์œผ๋กœ ์ž‘์€ ์†์„ฑ์˜ ์ œ์•ˆ ํŒŒ์ผ์„ ์ƒ์„ฑํ–ˆ๋‹ค. ๊ธฐ์กด ๋ถ€๋ชจ4๊ฐœ์— ์†์„ฑ3๊ฐœ๋ฅผ ๋ถ™์ธ12ํ–‰๊ณผ ํ›„๋ณด ์„ค๋ช…36๊ฐœ์ด๋ฉฐ ๋ชจ๋‘ pending์ด๋‹ค. ํ›„๋ณด ํ‰๊ฐ€ยท๊ณต์‹ ์†์„ฑ ์ •๋‹ตยท๊ทธ๋ฃนยทํ•™์Šตยท๋ชจ๋ธ ํ˜ธ์ถœยท์ˆœ์œ„ยท์„ฑ๋Šฅ ์ธก์ •์€0์ด๋‹ค. ์ด ๊ฒฐ๊ณผ๋ฅผ ์ƒˆ ๋ชจ๋ธ์˜ ํšจ์šฉ์ด๋‚˜ LLM ์‚ฌ์šฉ๋Ÿ‰ ์ ˆ๊ฐ์œผ๋กœ ํ•ด์„ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์™œ ๋‚˜๋ˆ„๋Š”๊ฐ€

์ „์ฒด ํ•จ์ˆ˜๊ฐ€ ์ž˜๋ชป๋์–ด๋„ ์ž‘์€ ์†์„ฑ์—๋Š” ๋งž์„ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋”ฐ์˜ดํ‘œ ์•ˆ ์‰ผํ‘œ๋Š” ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜์ง€๋งŒ ๋ฌธ๋ฒ• ์˜ค๋ฅ˜์—์„œ๋Š” ๋ถ€๋ถ„ ํ† ํฐ์„ ๋‚จ๊ธฐ๋Š” ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค. ์ „์ฒด ํ•จ์ˆ˜์˜ wrong ํ‘œ์‹œ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌํ•˜๋ฉด โ€œ๋”ฐ์˜ดํ‘œ ์•ˆ ์‰ผํ‘œ๋ฅผ ๋ณด์กดํ•˜๋Š”๊ฐ€โ€๋ผ๋Š” ์งˆ๋ฌธ์˜ ๋‹ต์„ ์ž˜๋ชป ๋งŒ๋“ ๋‹ค.

๋ชฉํ‘œ ์‚ฌ์šฉ์ž๋Š” ํ›„๋ณด ์ฝ”๋“œ์˜ ๊ฒ€์‚ฌ ์ˆœ์„œ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ •ํ•˜๊ณ  ์‹ถ์€ ์—์ด์ „ํŠธ๋‹ค. ๋ฏธ๋ž˜์˜ ์ž‘์€ ๋ชจ๋ธ์€ ์ข์€ ์งˆ๋ฌธ์— ํžŒํŠธ๋ฅผ ์ฃผ๊ณ  ๋…๋ฆฝ ๊ฒ€์ฆ๊ธฐ๊ฐ€ ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•œ๋‹ค. ํ›„๋ณด๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์‹คํ–‰์„ ์Šน์ธํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ˜„์žฌ ์ค€๋น„ ๋„๊ตฌ๋Š” ๊ทธ ํ›„์† ๊ฒ€์ฆ์— ์“ธ ๋ฌธ๊ตฌ์™€ ์›์ฒœ ์—ฐ๊ฒฐ๋งŒ ๋งŒ๋“ ๋‹ค. ๋ชจ๋ธ์„ ์ถ”์ฒœํ•˜๊ฑฐ๋‚˜ ์ถ”๋ก ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ด๋ฒˆ์— ํ•œ ์ผ๊ณผ ๋ถ„๋ชจ

ํ•ญ๋ชฉ ์‹ค์ œ ์ค€๋น„ ๊ธฐ๋ก
์›๋ž˜ ๋ถ€๋ชจ / ๋‹ซํžŒ ํ•จ์ˆ˜ ์›์ฒœ ๊ธฐ์กด56b์˜4๊ฐœ / 4๊ฐœ, ์ƒˆ ๋…๋ฆฝ ์›์ฒœ ์—†์Œ
์†์„ฑ quoted comma, quote ๋ฐ– escape, syntax error์˜ zero output:3๊ฐœ
์ œ์•ˆ / ํ›„๋ณด ์„ค๋ช… 12ํ–‰ / 36๊ฐœ. ๊ธฐ์กด ํ›„๋ณด3๊ฐœ์”ฉ IDยท์ˆœ์„œยท์ฝ”๋“œยทclosure ํ•€ ๋ณด์กด
๋ฌธ๊ตฌ ๊ฒ€ํ†  ๋ถ€๋ชจ12๊ฐœยทํ›„๋ณด36๊ฐœ ๋ชจ๋‘ pending; ๋…๋ฆฝ ์˜๋ฏธ ์Šน์ธ0
literal ์ •์˜ ๊ธฐ์กด ๋…๋ฆฝ ์ž‘์„ฑ literal9๊ฐœ๋ฅผ ์ข์€ ๊ธฐ๋Œ€๊ฐ’ ํ‘œ๋กœ ์˜ฎ๊น€; ์ƒˆ ๋…๋ฆฝ ์š”์ฒญ์ด ์•„๋‹˜
๊ณต์‹ ํ›„๋ณด ํ‰๊ฐ€ยท์†์„ฑ ๋ผ๋ฒจยท๊ทธ๋ฃนยท์—ญํ•  ๋ชจ๋‘0
ํ•™์Šตยท๋ชจ๋ธ ํ˜ธ์ถœยท์ˆœ์œ„ยท์„ฑ๋Šฅยท๋ณดํ˜ธ ์ตœ์ข… ์ ‘๊ทผ ๋ชจ๋‘0

์ œ์•ˆ ํ–‰๊ณผ literal์€ ๋…๋ฆฝ ๊ณจ๋“ ์…‹ ํ‘œ๋ณธ์„ ๋Š˜๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. ๋„๋ฉ”์ธ๋ณ„ ์„œ๋กœ ๋‹ค๋ฅธ ๋ณดํ˜ธ ์ตœ์ข… ์š”์ฒญ ์ตœ์†Œ2,400๊ฐœ ๋ชฉํ‘œ๋Š” ๋ณ„๋„๋‹ค. ๊ธฐ์กด56b์˜ ๊ตฌ๋ถ„์ž unknown4๊ฐœ, 72๋ถ€๋ชจยท์ „์ฒด17๊ทธ๋ฃนยท๋ผ๋ฒจ16๊ทธ๋ฃน๊ณผ ์ „์ฒด ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณด์กดํ–ˆ๋‹ค.

๋ฌธ๊ตฌ์™€ literal ์˜๋ฏธ๊ฐ€ ์ผ์น˜ํ•˜๋Š”์ง€๋„ ์•„์ง ์Šน์ธํ•˜์ง€ ์•Š์•˜๋‹ค. ํŠนํžˆ ๊ธฐ๋Œ€๊ฐ’ ํ‘œ๋Š” ์œ ํ•œํ•œ ์ง€์ • ์ž…๋ ฅ๋งŒ ๋‹ค๋ฃจ๊ณ  ์ดˆ์•ˆ ๋ฌธ๊ตฌ๋Š” ๋” ์ผ๋ฐ˜์ ์ธ ๋™์ž‘์„ ํ‘œํ˜„ํ•˜๋ฏ€๋กœ, ํ›„์† ์˜๋ฏธ ๊ฒ€ํ† ์—์„œ ์ด ๋ฒ”์œ„๋ฅผ ๋งž์ถฐ์•ผ ํ•œ๋‹ค. ๋‹จ์ˆœ ๊ธธ์ด ๊ฒ€์‚ฌ๋ฅผ ์˜๋ฏธ ๊ฒ€ํ† ๋กœ ์ทจ๊ธ‰ํ•˜์ง€ ์•Š๋Š”๋‹ค.

๊ณ ์ •ํ•œ ์ฝ”๋“œ๋กœ ์ƒ์„ฑ

๊ธฐ์กด56b PR79๋Š” ์ดํ›„ 0d7edadadb6c8cbea66c56e40e3ab8b888f9bf65๋กœ ์ž๋™ ๋ณ‘ํ•ฉ๋๋‹ค. PLAN-56c์— ๋‚จ๊ธด CI ์ง„ํ–‰ ์ค‘ยท๋ฌธ๊ตฌ ๊ธธ์ด ๊ฒ€์‚ฌ ๋ฏธ์‹คํ–‰ ํ‘œํ˜„์€ ์ตœ์ดˆ ์„ค๊ณ„ ์‹œ์ ์˜ snapshot์ด๋‹ค. ์ด๋ฒˆ ๊ตฌํ˜„ ๊ฒ€์‚ฌ์™€ ์ œ์•ˆ ์ƒ์„ฑ์€ ์ด ํ›„์† ๊ธฐ๋ก์—์„œ ๊ตฌ๋ถ„ํ•œ๋‹ค.

์ค€๋น„ ์ฝ”๋“œยท๊ฒ€์‚ฌยท๋ฌธ์„œยท๊ธฐ๊ณ„ ๊ณ„ํš์„ daa8730949928c6158ceb02fd9be57952645b663์—์„œ ๋จผ์ € ๊ณ ์ •ํ•œ ๋’ค, Go1.27.1ยทCGO0ยทtrimpath ์‹คํ–‰ ํŒŒ์ผ๋กœ ์ค€๋น„ snapshot์„1ํšŒ ์ƒ์„ฑํ–ˆ๋‹ค. ์žฌ์‹œ๋„0, ์ข…๋ฃŒ0, stdout์€ preparation ํŒŒ์ผ๊ณผ byte ๋‹จ์œ„๋กœ ์ผ์น˜ํ•œ๋‹ค. ์ค€๋น„ ๋‹จ์œ„ ๊ฒ€์‚ฌ์™€ ์ œ์•ˆ ์ƒ์„ฑ ๊ฒ€์‚ฌ๋Š” ์ด ๊ณ ์ • ์ „์—๋„ ์‹คํ–‰ํ–ˆ๋‹ค. ์ด ๊ฒฝ๊ณ„๋ฅผ ๊ณต์‹ ์†์„ฑ ๊ฐ์‚ฌ์˜ ๋ด‰์ธ์œผ๋กœ ๋ถ€๋ฅด์ง€ ์•Š๋Š”๋‹ค.

23๊ฐœ ์ฝ”๋“œยท๊ฒ€์‚ฌ ํŒŒ์ผ, ๊ธฐ์กด27๊ฐœ ๋ณด์กด ํ•€๊ณผ ๋ฌธ์„œ6๊ฐœ๋ฅผ ๋Œ€์กฐํ–ˆ๋‹ค. ์‹ค์ œ ์ปดํŒŒ์ผ ์›์ฒœ19๊ฐœ์™€ ๋””์Šคํฌ ํŒŒ์ผ๋„ ์ผ์น˜ํ•œ๋‹ค. ๊ธฐ์กด JSON ํŒŒ์ผ SHA ํ™•์ธ์— ๋”ํ•ด, factory๊ฐ€ ์žฌ๊ตฌ์„ฑํ•œ ์›๋ณธ ์ „์ฒด๋ฅผ ๊ฐ™์€ ๋“ค์—ฌ์“ฐ๊ธฐ JSON+๋์ค„๋ฐ”๊ฟˆ์œผ๋กœ ํ•ด์‹œ ๊ฒ€์ฆํ•œ๋‹ค. ์š”์ฒญยทํ›„๋ณด ์ˆœ์„œยท์ฝ”๋“œ/closure ํ•€ยท์„ ํƒ ๋ฐ– ๋ถ€๋ชจ๊ฐ€ ๋‹ฌ๋ผ๋„ ๊ฑฐ์ ˆํ•œ๋‹ค.

๊ณต๊ฐœ ํŒŒ์ผ ํฌ๊ธฐ SHA256
probes-56c.json 26,242B 8832ed777ecb18c9d250e1fca112030a75260b9b3a901d460732bb8b5520978b
preparation-56c.json 4,379B 46729c04a44c142b2d8a3889b23d524eb4c7cbb4f48a3d7806807a70c2372204
snapshot-56c.json 3,615B e1a7f38d063446269b035cd5cd3f11d7de49a725d6f5dbed271a86ebcdfc7f6c

์‹คํ–‰ ํŒŒ์ผ์€8,637,698B, SHA256 1e59ce4ba92a83177e800d2cbdb38bbd55b19c513b03450e83cbddbf3f5b9186์ด๋‹ค. ์œ ์ง€๋ณด์ˆ˜์šฉ ์›์ฒœ ๊ฐ์‚ฌ์™€ Go ํƒ€์ž… ๊ฒ€์‚ฌ ์˜์กด์„ฑ์„ ํฌํ•จํ•˜๋ฏ€๋กœ ์ž‘์€ ์ƒ์ฃผ ํžŒํŠธ ๋„๊ตฌ์˜ ์‹คํ–‰ ํŒŒ์ผ ํฌ๊ธฐ๋กœ ์ฝ์ง€ ์•Š๋Š”๋‹ค. ์‹คํ–‰ ํŒŒ์ผยท๋ชจ๋ธ ๋ณธ์ฒดยท์›์‹œ traceยท๊ฐœ์ธ ๊ฒฝ๋กœ๋Š” Git์— ์˜ฌ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค.

๊ฒ€์‚ฌ์™€ ํ•œ๊ณ„

์ „์ฒด Go raceยทvet, CGO0 policy packages, ํฌ๋งท, ์˜คํ”„๋ผ์ธ publication4๊ฐœยทPDCA8๊ฐœ ๊ฒ€์‚ฌ์™€ redacted ๋ณด์•ˆ ๊ฒ€์‚ฌ๊ฐ€ ํ†ต๊ณผํ–ˆ๋‹ค. ๋…๋ฆฝ ์ฝ๊ธฐ ๊ฒ€ํ† ๋Š” ์›๋ณธ ์—ฐ๊ฒฐยท์ •ํ™•ํ•œ ์˜ค๋ฅ˜ ์ข…๋ฅ˜ยท๋ฌธ๊ตฌ pendingยทํ›„๋ณด ๋ณด์กดยทํŠน์ง• ๋ถ„๋ฆฌ๋ฅผ ํ™•์ธํ–ˆ๋‹ค. ์ €์žฅ์†Œ PR์˜ ์‹ค์ œ CIยท๋ณ‘ํ•ฉ ์ƒํƒœ๋Š” PR checks์—์„œ ํ™•์ธํ•œ๋‹ค. ์ด ๊ธ€์„ ์ž‘์„ฑํ•œ ์‹œ์ ์—๋Š” ์ƒˆ PR์˜ CI ์™„๋ฃŒ๋ฅผ ์ฃผ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

Snapshot ์ƒ์„ฑ ํ›„ ๊ณต๊ฐœ ๊ธฐ๋ก CI ๊ฒ€์‚ฌ๋ฅผ ๋ณ„๋„๋กœ ์ถ”๊ฐ€ํ–ˆ๋‹ค. ๊ณ ์ • ๊ณ„ํšยท23๊ฐœ ๊ตฌํ˜„/๊ฒ€์‚ฌยท๊ธฐ์กด27๊ฐœ ํ•€ยท๋ฌธ์„œ6๊ฐœยท19๊ฐœ ์ปดํŒŒ์ผ ์›์ฒœ๊ณผ ๊ณต๊ฐœ ์‚ฐ์ถœ๋ฌผ SHA๋ฅผ ํ™•์ธํ•˜๊ณ , ์ œ์•ˆ ๊ตฌ์„ฑ ๋ฐ”์ดํŠธ๋ฅผ ์žฌ์ƒํ•œ๋‹ค. ์ด ๊ฒ€์‚ฌ๋Š” ์ƒˆ ๊ณต์‹ ์‹คํ–‰ยท์ •๋‹ต ๊ด€์ธกยท๋…๋ฆฝ ํ‘œ๋ณธ์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

๊ด€์ธก ์–ด๋Œ‘ํ„ฐ ๋‹จ์œ„ ๊ฒ€์‚ฌ๋Š” ๊ธฐ์กด ๋„ค ํ•จ์ˆ˜์˜ ์‹ค์ œ ๋ฐ˜ํ™˜์„ ํ™•์ธํ•œ๋‹ค. ์„ฑ๊ณต์˜ OK0๊ณผ ๋ฌธ๋ฒ• ์˜ค๋ฅ˜ Syntax1์„ ์ •ํ™•ํžˆ ๊ตฌ๋ถ„ํ•˜๊ณ , syntax literal์€ Count0ยท์ „์ฒด8ํ† ํฐ ๋น„์›€ยทno-panic์„ ํ•จ๊ป˜ ์š”๊ตฌํ•œ๋‹ค. ์˜ค๋ฅ˜ ๋ณด๊ณ ๋ฅผ ์ƒ๋žตํ•œ ๊ตฌํ˜„๋„ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•œ๋‹ค. ์ด ์ค€๋น„ ๋‹จ์œ„ ๊ด€์ธก๊ณผ prepare ๋ช…๋ น์˜ ๊ณต์‹ ํ›„๋ณด ํ‰๊ฐ€0์€ ๋‹ค๋ฅธ ๋ฒ”์œ„๋‹ค. ์•„์ง ์†์„ฑ๋ณ„ acceptable set์ด๋‚˜ answerable/no-answer/unknown ๋ถ„๋ฅ˜๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์•˜๋‹ค.

JSONยท์ถœ๋ ฅยท์›์ฒœ ํฌ๊ธฐ๋Š” ์ œํ•œํ•˜๊ณ  ๊ธฐ์กด ์ถœ๋ ฅ์€ ๋ฎ์–ด์“ฐ์ง€ ์•Š๋Š”๋‹ค. GOMAXPROCS1๊ณผ Go heap256MiB soft limit์€ ์„ค์ •์ด๋‹ค. ์ด๋ฒˆ ์ „์ฒด RSSยทCPU ์‚ฌ์šฉ๋Ÿ‰ยท์ง€์—ฐยทGPU ์‚ฌ์šฉ์€ ๋ฏธ๊ด€์ธก์ด๋ฉฐ, ์†๋„๋‚˜ ๋ฉ”๋ชจ๋ฆฌ ๊ฐœ์„  ์ˆ˜์น˜๋ฅผ ์ฃผ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ•ด์‹œ ๊ฒ€์ฆ์€ ๋ฌธ์žฅ ์ถฉ์‹ค์„ฑยทํ•™์Šต ํšจ์šฉยท์›์ฒœ ๋‹ค์–‘์„ฑ์˜ ์ฆ๊ฑฐ๋ฅผ ๋Œ€์‹ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„

๋ฌธ๊ตฌ์˜ ์œ ํ•œ literal ๋ฒ”์œ„์™€ ์ถœ๋ ฅ ๊ณ„์•ฝ์„ ๋งž์ถฐ ๋ณ„๋„ ๋ฒ„์ „์œผ๋กœ ๊ณ ์ •ํ•˜๊ณ , ๊ณต์‹ ์†์„ฑ ๊ฐ์‚ฌ ๊ณ„ํš์„ ๊ฒฐ๊ณผ ์ „์— ๋ด‰์ธํ•œ๋‹ค. ๋ถ€๋ชจยทํ˜•์ œ ์†์„ฑยท๋ชจ๋“  ์–‘์„ฑ/์Œ์„ฑ ํ›„๋ณดยทshared helper๋ฅผ ํ•จ๊ป˜ ๋ฌถ์–ด ๋ถ„ํ•  ๋ˆ„์ˆ˜๋ฅผ ๋ง‰๋Š”๋‹ค. ๋‹ค์–‘ํ•œ ๊ณต๊ฐœ ๊ฐœ๋ฐœ ์›์ฒœ120โ†’240๊ณผ ์—ญํ• ยท๋ฌดํ•™์Šต ํšจ์šฉ ๊ณ„ํš์„ ๋จผ์ € ์ค€๋น„ํ•˜๋ฉฐ ์ตœ์†Œ15๊ทธ๋ฃนยท์ตœ์†Œ5% ํšจ์šฉ ํ•„์š”์กฐ๊ฑด์„ ๋‚ฎ์ถ”์ง€ ์•Š๋Š”๋‹ค. ๊ทธ ์ „์— fits0์„ ์œ ์ง€ํ•œ๋‹ค.

56d ์ƒ์ฃผ ์ž์› ์‚ฌ์ „ ๊ณ„ํš์€ ๋ณ„๋„ ๋ฏธ์‹คํ–‰ ์ œ์•ˆ์ด๋‹ค. 24childrenยทtimed24,576ํšŒ๋Š” ๋ฐ˜๋ณต ํƒ€์ด๋ฐ ๊ด€์ธก์˜ ์˜ˆ์ • ๊ฐœ์ˆ˜์ด๋ฉฐ ๋…๋ฆฝ ์š”์ฒญ์ด๋‚˜ ์‹ค์ œ ์ธก์ •์ด ์•„๋‹ˆ๋‹ค. ์ฒซ ์‘๋‹ตยทpipeยทcontrollerยทchild CPU/RSS๋ฅผ ๊ตฌ๋ถ„ํ•ด ์ธก์ •ํ•œ ๋’ค ์บ์‹œยทlockยทSIMDยทSoA ์ ์šฉ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•œ๋‹ค. ์ƒˆ ๊ฐ€์ค‘์น˜๊ฐ€ ์—†์–ด Hugging Face ๋ชจ๋ธ ๋ฒ„์ „์„ ๋ฐœํ–‰ํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ ๊ธฐ์กด ๊ณ„๋ณดยท๋ถˆ๋ณ€ ์ฐธ์กฐ๋ฅผ ์œ ์ง€ํ•œ๋‹ค.