Nim ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฆด๋ฆฌ์Šค 1.4.0

Nim ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ์ƒˆ ๋ฒ„์ „์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ฌํ•ด XNUMX์›” ์ถœ์‹œ๋œ ์ง€ XNUMX๋…„์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์•ˆ์ • ๋ฒ„์ „. ๊ตฌ๋ฌธ์€ Python๊ณผ ์œ ์‚ฌํ•˜๋ฉฐ ์„ฑ๋Šฅ์€ ๊ฑฐ์˜ C++์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์— ๋”ฐ๋ฅด๋ฉด ์ž์ฃผํ•˜๋Š” ์งˆ๋ฌธ ์ด ์–ธ์–ด๋Š” Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon์—์„œ ๋งŽ์ด ์ฐจ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค(๊ธฐ์—ฌ๋„ ์ˆœ์œผ๋กœ).


C/C++/Objective-C/JS๋กœ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ๋•๋ถ„์— ์–ด๋””์—์„œ๋‚˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ง€์›ํ•ฉ๋‹ˆ๋‹ค ๋งคํฌ๋กœ, ์›, ์ œ๋„ค๋ฆญ, ์˜ˆ์™ธ, ํ•ซ ์ฝ”๋“œ ๊ต์ฒด ๊ทธ๋ฆฌ๊ณ  ํ›จ์”ฌ ๋”. ๋ผ์ด์„ ์Šค - MIT.

๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ:

  • ARC ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ํŠน๋ณ„ํ•œ ๋ฐฉ์‹์œผ๋กœ ์ˆœํ™˜ ์ฐธ์กฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ƒˆ๋กœ์šด ORC ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. --gc:orc ์˜ต์…˜์œผ๋กœ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ARC/ORC ์ฐจ์ด์  ์ •๋ณด ํ›Œ๋ฅญํ•œ ๊ธฐ์‚ฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐœ์ฒด ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ์„ฑ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ๊ฒ€์‚ฌ๋ฅผ ํฌํ•จํ•˜๋Š” ์—„๊ฒฉํ•œ ํ•จ์ˆ˜ ์ •์˜ ๋ชจ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. {.experimental: "strictFuncs".} pragma ๋˜๋Š” --experimental:strictFuncs ์Šค์œ„์น˜๋ฅผ ํ†ตํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

  • ์ด์ œ from ํ‚ค์›Œ๋“œ๋ฅผ ์—ฐ์‚ฐ์ž๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • .noalias pragma๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ‚ค์›Œ๋“œ๊ฐ€ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ํšจ์œจ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด C ์ œํ•œ ํ‚ค์›Œ๋“œ์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.

  • ์ด์ œ --warningAsError[X]:on|off๋ฅผ ํ†ตํ•ด ํŠน์ • ๊ฒฝ๊ณ ๋ฅผ ์˜ค๋ฅ˜๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ƒˆ ๋ช…๋ น: nim r main.nim [args...], ์ด๋Š” main.nim์„ ์ปดํŒŒ์ผํ•˜๊ณ  ์‹คํ–‰ํ•˜๋ฉฐ ๊ฒฐ๊ณผ๊ฐ€ nim c์™€ ๋™์ผํ•œ ๋…ผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ $nimcache/main$exeExt์— ์ €์žฅ๋˜๋„๋ก --usenimcache๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. r ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์žฌ์ปดํŒŒ์ผ์—์„œ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ:

nim r compiler/nim.nim --help # ์ฒ˜์Œ์œผ๋กœ ์ปดํŒŒ์ผ๋จ
์—์ฝ” '๊ฐ€์ ธ์˜ค๊ธฐ OS; ์—์ฝ” getCurrentCompilerExe()' | ๋‹˜ r - # ์ด๊ฒƒ๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค
nim r compiler/nim.nim --fullhelp # ์žฌ์ปดํŒŒ์ผ ์—†์Œ
nim r --nimcache:/tmp main # /tmp/main์— ์ €์žฅ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ

  • ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์˜ค๋ฅ˜/๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ์ƒ์„ฑํ•œ ์œ„์น˜๋ฅผ ํ‘œ์‹œํ•˜๋Š” ์ƒˆ๋กœ์šด ํžŒํŠธ --hint:msgOrigin์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฉ”์‹œ์ง€์˜ ์ถœ์ฒ˜๊ฐ€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์„ ๋•Œ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

  • ๋ฐฑ์—”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด --backend:js|c|cpp|objc(๋˜๋Š” -b:js ๋“ฑ) ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ nimcache๋กœ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด --usenimcache ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์ œ๊ฑฐ๋œ ํ‚ค: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • nimsuggest ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” ์ด์ œ ์ „๋ฐฉ ์„ ์–ธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ def ์š”์ฒญ ์‹œ ๊ตฌํ˜„ ์œ„์น˜๋„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋งŽ์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ ๋งŽ์€ ๋ฒ„๊ทธ๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : linux.org.ru