Numpy: musl/AlpineLinux์—์„œ Numpy ํ…Œ์ŠคํŠธ ์‹คํŒจ

์— ๋งŒ๋“  2016๋…„ 01์›” 27์ผ  ยท  5์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: numpy/numpy

mil ๊ธฐ๋ฐ˜ Linux ๋ฐฐํฌํŒ์ธ AlpineLinux์—์„œ numpy์˜ ํ…Œ์ŠคํŠธ ์ค‘ ์ผ๋ถ€๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ๋กœ๊ทธ๊ฐ€ ์ฒจ๋ถ€๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
๋กœ๊ทธ.txt

๋‘ ๊ฐ€์ง€ ์œ ํ˜•์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ๋ˆ„๋ฝ๋œ ๋‹ค์–‘ํ•œ ์˜ค๋ฒ„ํ”Œ๋กœ/์–ธ๋”ํ”Œ๋กœ ์˜ˆ์™ธ์— ๋Œ€ํ•œ ๊ฒƒ์ด๊ณ , ๋‘ ๋ฒˆ์งธ๋Š” musl์˜ ์‚ผ๊ฐ ํ•จ์ˆ˜์˜ ์ž˜๋ชป๋œ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ๋Š” musl ๋นŒ๋“œ์— fenv.h ํ—ค๋”๋ฅผ ํฌํ•จํ•˜์—ฌ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AFAIU ์ด๊ฒƒ์€ __GLIBC__ ๋ฅผ __GNUC__ ๋กœ ๋Œ€์ฒดํ•˜์—ฌ __GLIBC__ numpy/numpy/core/src/npymath/ieee754.c.src ๋ฐ numpy/core/include/numpy/ufuncobject.h ์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. __GNUC__

๋‘ ๋ฒˆ์งธ ๊ทธ๋ฃน์€ numpy/numpy/core/src/private/npy_config.h ์—์„œ glibc๋ฟ๋งŒ ์•„๋‹ˆ๋ผ musl์—์„œ๋„ ์‚ผ๊ฐ ํ•จ์ˆ˜๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๋Š” musl์ด ์ด๋ฅผ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•ด __GLIBC__ ์™€ ๊ฐ™์€ ๋งคํฌ๋กœ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์งˆ๋ฌธ, numpy๋Š” ๊ทธ๋Ÿฌํ•œ ํŒจ์น˜์— ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์ด ๋ฌด์—‡์ธ์ง€ ์˜๊ฒฌ์„ ๊ณต์œ ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํŒจ์น˜๋ฅผ AlpineLinux์šฉ ํ•ด๋‹น ํŒจํ‚ค์ง€์—์„œ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์˜ˆ, ์•ŒํŒŒ์ธ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์—ฌ์ „ํžˆ numpy๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค(๋„์ปค ๊ธฐ๋ฐ˜์œผ๋กœ ์ ์  ์ธ๊ธฐ๋ฅผ ์–ป๊ณ  ์žˆ์Œ). ๊ทธ๊ฒƒ์€ ์šฐ๋ฆฌ ํŒŒ์ด์ฌ ์‚ฌ์šฉ์ž๋“ค์˜ ์‚ถ์„ ๋น„์ฐธํ•˜๊ฒŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ํŒจ์น˜๋ฅผ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  5 ๋Œ“๊ธ€

์˜ˆ, ์•ŒํŒŒ์ธ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์—ฌ์ „ํžˆ numpy๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค(๋„์ปค ๊ธฐ๋ฐ˜์œผ๋กœ ์ ์  ์ธ๊ธฐ๋ฅผ ์–ป๊ณ  ์žˆ์Œ). ๊ทธ๊ฒƒ์€ ์šฐ๋ฆฌ ํŒŒ์ด์ฌ ์‚ฌ์šฉ์ž๋“ค์˜ ์‚ถ์„ ๋น„์ฐธํ•˜๊ฒŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ํŒจ์น˜๋ฅผ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

AlpineLinux๋Š” ์–ด๋–ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ? ๋™์ผํ•œ ์‚ผ๊ฐ ํ•จ์ˆ˜๊ฐ€ ์‹คํŒจํ•˜๋ฉด glibc์— ๋งค์šฐ ๊ฐ€๊นŒ์šด ๊ฒƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จธ์Šฌ์ž…๋‹ˆ๋‹ค. musl์˜ ์กด์žฌ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋งคํฌ๋กœ๊ฐ€ ์ •๋ง ์—†์Šต๋‹ˆ๊นŒ? ํ•œ ๊ฐ€์ง€ ๋ฌธ์ œ๋Š” gnuc ์ปดํŒŒ์ผ๋Ÿฌ์™€ ๊ฒฐํ•ฉ๋œ ๋‹ค๋ฅธ libc ๊ตฌํ˜„์ด๋ฏ€๋กœ __GNUC__ ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ์ž˜๋ชป๋œ libm ๋ฒ„์ „์˜ ๋ช…์‹œ์  ๋ชฉ๋ก์„ ๊ฐ–๊ณ ์ž ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๊ฒฝ์šฐ
์šฐ๋ฆฌ๋ฅผ ๋ฌผ์–ด๋œฏ๋Š”๋‹ค :-/ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ํŠนํžˆ ์˜๊ฐ์„ ๋ฐ›๊ณ  ์žˆ๋‹ค๋ฉด,
ํฌ๊ด„์ ์ธ ์†”๋ฃจ์…˜์€ #7173์„ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
2016๋…„ 3์›” 18์ผ ์˜คํ›„ 6์‹œ 13๋ถ„์— "Charles Harris" [email protected]์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จธ์Šฌ์ž…๋‹ˆ๋‹ค. musl์˜ ์กด์žฌ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋งคํฌ๋กœ๊ฐ€ ์ •๋ง ์—†์Šต๋‹ˆ๊นŒ?
ํ•œ ๊ฐ€์ง€ ๋ฌธ์ œ๋Š” gnuc ์ปดํŒŒ์ผ๋Ÿฌ์™€ ๊ฒฐํ•ฉ๋œ ๋‹ค๋ฅธ libc ๊ตฌํ˜„์ž…๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” GNUC๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

โ€”
์ด ์Šค๋ ˆ๋“œ์— ๊ฐ€์ž…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/numpy/numpy/issues/7128#issuecomment -198597654

#12095์˜ ๋ณต์ œ, ๋‹ค๋ฅธ ํ•˜๋‚˜์— ๋” ๋งŽ์€ ์ •๋ณด๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๋‹ซ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰