рдирд┐рдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд░рд┐рд▓реАрдЬ 1.4.0

рдирд┐рдо рд╕рд┐рд╕реНрдЯреАрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖реЗрдЪреА рдПрдХ рдирд╡реАрди рдЖрд╡реГрддреНрддреА рдкреНрд░рд╕рд┐рджреНрдз рдЭрд╛рд▓реА рдЖрд╣реЗ, рдЬреНрдпрд╛рдиреЗ рдпрд╛ рд╕рдкреНрдЯреЗрдВрдмрд░рдордзреНрдпреЗ рдПрдХ рд╡рд░реНрд╖рд╛рдЪрд╛ рд╡рд░реНрдзрд╛рдкрди рджрд┐рди рд╕рд╛рдЬрд░рд╛ рдХреЗрд▓рд╛. рдкреНрд░рдердо рд╕реНрдерд┐рд░ рдЖрд╡реГрддреНрддреА. рд╕рд┐рдВрдЯреЕрдХреНрд╕рдордзреНрдпреЗ рд╣реА рднрд╛рд╖рд╛ рдкрд╛рдпрдердирд╕рд╛рд░рдЦреАрдЪ рдЖрд╣реЗ рдЖрдгрд┐ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдордзреНрдпреЗ рдЬрд╡рд│рдЬрд╡рд│ C++ рд╕рд╛рд░рдЦреА рдЖрд╣реЗ. рддреНрдпрд╛рдиреБрд╕рд╛рд░ FAQ рднрд╛рд╖рд╛ (рдпреЛрдЧрджрд╛рдирд╛рдЪреНрдпрд╛ рдХреНрд░рдорд╛рдиреЗ): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon рдХрдбреВрди рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рд╡рд░ рдЙрдзрд╛рд░ рдШреЗрддреЗ.


C/C++/Objective-C/JS рдордзреНрдпреЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд╖рдорддреЗрдореБрд│реЗ рд╕рд░реНрд╡рддреНрд░ рдХрд╛рд░реНрдп рдХрд░рддреЗ. рддреЗ рд╕рдорд░реНрдерди рдХрд░рддреЗ рдореЕрдХреНрд░реЛ, OOP, рдЬреЗрдиреЗрд░рд┐рдХ, рдЕрдкрд╡рд╛рдж, рд╣реЙрдЯ рдХреЛрдб рд╕реНрд╡реЕрдк рдЖрдгрд┐ рдмрд░реЗрдЪ рдХрд╛рд╣реА. рдкрд░рд╡рд╛рдирд╛: MIT.

рд╕рд░реНрд╡рд╛рдд рд▓рдХреНрд╖рдгреАрдп рдмрджрд▓:

  • рдПрдХ рдирд╡реАрди ORC рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╛рд╣рдХ рдЖрд╣реЗ рдЬреЛ ARC рдордзреАрд▓ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд╡рд╛рдкрд░рддреЛ, рдкрд░рдВрддреБ рддреНрдпрд╛рдЪ рд╡реЗрд│реА рдЧреЛрд▓рд╛рдХрд╛рд░ рд╕рдВрджрд░реНрдн рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░реЗ рд╣рд╛рддрд╛рд│рддреЛ. -gc:orc рдкрд░реНрдпрд╛рдпрд╛рджреНрд╡рд╛рд░реЗ рд╕рдХреНрд╖рдо рдХреЗрд▓реЗ. ARC/ORC рдлрд░рдХрд╛рдВрдмрджреНрджрд▓ рдЫрд╛рди рд▓реЗрдЦ рдЖрд╣реЗ.

  • рдХрдареЛрд░ рдлрдВрдХреНрд╢рди рдбреЗрдлрд┐рдирд┐рд╢рдирд╕рд╛рдареА рдПрдХ рдореЛрдб рдЬреЛрдбрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ, рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯрдЪреНрдпрд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓рддреЗрд╕рд╛рдареА рдЕрддрд┐рд░рд┐рдХреНрдд рддрдкрд╛рд╕рдгреА рд╕рдХреНрд╖рдо рдХрд░рддреЛ. рдкреНрд░рд╛рдЧреНрдорд╛ {.рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ: "strictFuncs".} рдХрд┐рдВрд╡рд╛ --experimental:strictFuncs рдХреА рджреНрд╡рд╛рд░реЗ рд╕рдХреНрд░рд┐рдп рдХреЗрд▓реЗ.

  • from keyword рдЖрддрд╛ рдСрдкрд░реЗрдЯрд░ рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.

  • рдЬреЛрдбрд▓реЗ .noalias pragma. рд╣реЗ рдХреАрд╡рд░реНрдб рдкреНрд░рджрд╛рди рдХрд░реВ рд╢рдХрдгрд╛рд░реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд╛рдврд╡рдгреНрдпрд╛рд╕рд╛рдареА C рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХреАрд╡рд░реНрдбрд╡рд░ рдореЕрдк рдХрд░рддреЗ.

  • рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЗрд╢рд╛рд░реЗ рдЖрддрд╛ --warningAsError[X]:on|off рджреНрд╡рд╛рд░реЗ рддреНрд░реБрдЯреАрдВрдордзреНрдпреЗ рдмрджрд▓рд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд.

  • рдирд╡реАрди рдХрдорд╛рдВрдб: nim r main.nim [args...], рдЬреА main.nim рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рдЖрдгрд┐ рдЪрд╛рд▓рд╡рддреЗ, рдЖрдгрд┐ --usenimcache рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рддреЗ рдЬреЗрдгреЗрдХрд░реВрди рдкрд░рд┐рдгрд╛рдо $nimcache/main$exeExt рдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рдИрд▓, nim c рдкреНрд░рдорд╛рдгреЗрдЪ рддрд░реНрдХ рд╡рд╛рдкрд░реВрди - рдЬреЗрд╡реНрд╣рд╛ рд╕реНрд░реЛрдд рдмрджрд▓рд▓реЗрд▓реЗ рдирд╕рддрд╛рдд рддреЗрд╡реНрд╣рд╛ рдкреБрдиреНрд╣рд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рдкрд╛рд╕реВрди рдореБрдХреНрдд рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА. рдЙрджрд╛рд╣рд░рдг:

nim r compiler/nim.nim --help # рдкреНрд░рдердордЪ рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реЗ
рдЗрдХреЛ 'рдЖрдпрд╛рдд рдУрдПрд╕; echo getCurrentCompilerExe()' | nim r - # рд╣реЗ рджреЗрдЦреАрд▓ рдХрд╛рд░реНрдп рдХрд░рддреЗ
nim r compiler/nim.nim --fullhelp # рдкреБрдирд░реНрд╕рдВрдХрд▓рдирд╛рд╢рд┐рд╡рд╛рдп
nim r тАФnimcache:/tmp рдореБрдЦреНрдп # рдмрд╛рдпрдирд░реА /tmp/main рдордзреНрдпреЗ рдЬрддрди

  • рдирд╡реАрди hint -hint:msgOrigin рдЬреЛрдбрд▓реЗ, рдЬреЗ рдХрдВрдкрд╛рдЗрд▓рд░рдиреЗ рддреНрд░реБрдЯреА/рдЪреЗрддрд╛рд╡рдгреА рд╕рдВрджреЗрд╢ рдХреЛрдареЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗ рд╣реЗ рджрд░реНрд╢рд╡реЗрд▓. рд╕рдВрджреЗрд╢ рдХреБрдареВрди рдЖрд▓рд╛ рд╣реЗ рд╕реНрдкрд╖реНрдЯ рдирд╕рддрд╛рдирд╛ рд╣реЗ рдорджрдд рдХрд░рддреЗ.

  • рдмреЕрдХрдПрдВрдб рдмрджрд▓рдгреНрдпрд╛рд╕рд╛рдареА рдзреНрд╡рдЬ рдЬреЛрдбрд▓рд╛ тАФbackend:js|c|cpp|objc (рдХрд┐рдВрд╡рд╛ -b:js, рдЗ.).

  • nimcache рдордзреНрдпреЗ рдмрд╛рдпрдирд░реА рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА --usenimcache рдзреНрд╡рдЬ рдЬреЛрдбрд▓рд╛.

  • рдХреА рдХрд╛рдврд▓реНрдпрд╛: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • nimsuggest рдпреБрдЯрд┐рд▓рд┐рдЯреА рдЖрддрд╛ рдХреЗрд╡рд│ рдкреВрд░реНрд╡-рдШреЛрд╖рдгрд╛рдЪ рдирд╡реНрд╣реЗ рддрд░ def рд╡рд┐рдирдВрддреАрд╕рд╛рдареА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреЗ рд╕реНрдерд╛рди рджреЗрдЦреАрд▓ рджрд░реНрд╢рд╡рддреЗ.

рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реАрдордзреНрдпреЗ рдмрд░реЗрдЪ рдмрджрд▓ рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд рдЖрдгрд┐ рдЕрдиреЗрдХ рджреЛрд╖ рдирд┐рд░рд╛рдХрд░рдгреЗ рдЖрд╣реЗрдд.

рд╕реНрддреНрд░реЛрдд: linux.org.ru