เป€เบ›เบตเบ”เบ•เบปเบงเบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบก Nim 1.4.0

เบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆเบ‚เบญเบ‡เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบฅเบฐเบšเบปเบš Nim เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ, เป€เบŠเบดเปˆเบ‡เป€เบ”เบทเบญเบ™เบเบฑเบ™เบเบฒเบ™เบตเป‰เบชเบฐเป€เบซเบผเบตเบกเบชเบฐเบซเบผเบญเบ‡เบ„เบปเบšเบฎเบญเบšเบซเบ™เบถเปˆเบ‡เบ›เบตเบ‚เบญเบ‡เบ•เบปเบ™. เบฎเบธเปˆเบ™เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡. เบžเบฒเบชเบฒเปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เปƒเบ™ syntax เบเบฑเบš Python, เปเบฅเบฐเป€เบเบทเบญเบšเบ„เป‰เบฒเบเบ„เบท C ++ เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”. เบญเบตเบ‡โ€‹เบ•เบฒเบก FAQ เบžเบฒเบชเบฒเบขเบทเบกเบซเบผเบฒเบเบˆเบฒเบ (เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบšเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบเบญเบšเบชเปˆเบงเบ™): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเบ—เบปเปˆเบงเบ—เบธเบเปเบซเปˆเบ‡เบเป‰เบญเบ™เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเปƒเบ™ C/C++/Objective-C/JS. เบกเบฑเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ เบกเบฐเบซเบฒเบžเบฒเบ, OOP, เบ—เบปเปˆเบงเป„เบ›, เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™, เปเบฅเบเบ›เปˆเบฝเบ™เบฅเบฐเบซเบฑเบ”เบฎเป‰เบญเบ™ เปเบฅเบฐเบญเบทเปˆเบ™เป†เบญเบตเบ. เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ”: MIT.

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆ เบชเบณ เบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”:

  • เบกเบตเป€เบ„เบทเปˆเบญเบ‡เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ ORC เปƒเบซเบกเปˆเบ—เบตเปˆเปƒเบŠเป‰เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบˆเบฒเบ ARC, เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบดเบ‡เปเบšเบšเบงเบปเบ‡เบกเบปเบ™เบ”เป‰เบงเบเบงเบดเบ—เบตเบžเบดเป€เบชเบ”. เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ•เบปเบงเป€เบฅเบทเบญเบ -gc:orc. เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ‚เบญเบ‡ ARC/ORC เบกเบตเบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเปˆเบเบดเปˆเบ‡เปƒเบซเบเปˆ.

  • เป‚เบซเบกเบ”เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบ™เบดเบเบฒเบกเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเป€เบ„เบฑเปˆเบ‡เบ„เบฑเบ”เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เบงเบฑเบ”เบ–เบธ. เป€เบ›เบตเบ”เปƒเบŠเป‰เบœเปˆเบฒเบ™ pragma {.experimental: "strictFuncs".} เบซเบผเบทเบœเปˆเบฒเบ™เบ›เบธเปˆเบก --experimental:strictFuncs.

  • เบˆเบฒเบเบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™.

  • เป€เบžเบตเปˆเบก .noalias pragma. เบกเบฑเบ™เปเบœเบ™เบ—เบตเปˆ C เบˆเปเบฒเบเบฑเบ”เบ„เปเบฒเบซเบฅเบฑเบเป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ•เบดเบžเบฒเบšเบ—เบตเปˆเบ„เปเบฒเบซเบฅเบฑเบเบชเบฒเบกเบฒเบ”เบชเบฐเบซเบ™เบญเบ‡เป„เบ”เป‰.

  • เบ”เบฝเบงเบ™เบตเป‰เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบชเบฐเป€เบžเบฒเบฐเบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบœเปˆเบฒเบ™ --warningAsError[X]:on|off.

  • เบ„เปเบฒเบชเบฑเปˆเบ‡เปƒเบซเบกเปˆ: nim r main.nim [args...], เป€เบŠเบดเปˆเบ‡เบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ main.nim, เปเบฅเบฐเบ›เบฐเบเบญเบšเบกเบต --usenimcache เป€เบžเบทเปˆเบญเปƒเบซเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™ $nimcache/main$exeExt, เป‚เบ”เบเปƒเบŠเป‰เป€เบซเบ”เบœเบปเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš nim c - r เป€เบžเบทเปˆเบญเบเปเบฒเบˆเบฑเบ”เบˆเบฒเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ„เบทเบ™เปƒเบซเบกเปˆเป€เบกเบทเปˆเบญเปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบšเปเปˆเป„เบ”เป‰เบ›เปˆเบฝเบ™เปเบ›เบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡:

nim r compiler/nim.nim --help # เบฅเบงเบšเบฅเบงเบกเป€เบ›เบฑเบ™เบ„เบฑเป‰เบ‡เบ—เบณเบญเบดเบ”
echo 'เบเบฒเบ™เบ™เปเบฒเป€เบ‚เบปเป‰เบฒ os; echo getCurrentCompilerExe()' | nim r - # เบ™เบตเป‰เป€เบฎเบฑเบ”เบงเบฝเบเบ„เบทเบเบฑเบ™
nim r compiler/nim.nim --fullhelp # เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ compilation
nim r โ€”nimcache:/tmp main # binary เบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™ /tmp/main

  • เป€เบžเบตเปˆเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเบกเปˆ -hint:msgOrigin, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบชเบฐเปเบ”เบ‡เบšเปˆเบญเบ™เบ—เบตเปˆเบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบชเป‰เบฒเบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ” / เบ‚เปเป‰เบ„เบงเบฒเบกเป€เบ•เบทเบญเบ™. เบ™เบตเป‰เบŠเปˆเบงเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบฑเบ™เบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเบ‚เปเป‰เบ„เบงเบฒเบกเบกเบฒเบˆเบฒเบเปƒเบช.

  • เป€เบžเบตเปˆเบกเบ—เบธเบ‡ โ€”backend:js|c|cpp|objc (เบซเบผเบท -b:js, เปเบฅเบฐเบญเบทเปˆเบ™เป†) เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™ backend.

  • เป€เบžเบตเปˆเบกเบ—เบธเบ‡ --usenimcache เป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบœเบปเบ™ binaries เป„เบ› nimcache.

  • เป€เบญเบปเบฒเบเบฐเปเบˆเบญเบญเบ: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ” nimsuggest เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒ, เปเบ•เปˆเบเบฑเบ‡เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป def.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบซเบผเบฒเบเบขเปˆเบฒเบ‡เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบฅเบฐเบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เบซเบผเบฒเบเบขเปˆเบฒเบ‡.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: linux.org.ru