ΠΠ·Π»Π΅Π·Π΅ Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Nim, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π· ΡΠΎΠ·ΠΈ ΡΠ΅ΠΏΡΠ΅ΠΌΠ²ΡΠΈ Π½Π°Π²ΡΡΡΠ²Π° Π³ΠΎΠ΄ΠΈΠ½Π° ΠΎΡ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΡΠ²Π°ΡΠ° ΡΡΠ°Π±ΠΈΠ»Π½Π° Π²Π΅ΡΡΠΈΡ. ΠΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΅Π·ΠΈΠΊΡΡ ΠΏΡΠΈΠ»ΠΈΡΠ° Π½Π° Python, Π° ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΏΠΎΡΡΠΈ Π½Π° C++. Π‘ΠΏΠΎΡΠ΅Π΄ Π§ΠΠ Π΅Π·ΠΈΠΊΡΡ Π΄ΠΎ Π³ΠΎΠ»ΡΠΌΠ° ΡΡΠ΅ΠΏΠ΅Π½ Π·Π°ΠΈΠΌΡΡΠ²Π° ΠΎΡ (Π² ΡΠ΅Π΄Π° Π½Π° ΡΠ΅ΠΆΠ΅ΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ½ΠΎΡΠ°): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.
Π Π°Π±ΠΎΡΠΈ Π½Π°Π²ΡΡΠΊΡΠ΄Π΅ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π² Π‘/C++/Objective-C/JS. ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠΈ, ΠΠΠ, Π³Π΅Π½Π΅ΡΠΈΠΊΠΈ, ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π³ΠΎΡΠ΅ΡΠ° ΠΏΠΎΠ΄ΠΌΡΠ½Π° Π½Π° ΠΊΠΎΠ΄Π° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ. ΠΠΈΡΠ΅Π½Π·ΠΈΡ β MIT.
ΠΠ°ΠΉ-Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ:
-
ΠΠΎΡΠ²ΠΈ ΡΠ΅ Π½ΠΎΠ² ΡΠ±ΠΎΡΡΠΈΠΊ Π½Π° Π±ΠΎΠΊΠ»ΡΠΊ ORC, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌ ΠΎΡ ARC, Π½ΠΎ ΠΏΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ Π½Π°ΡΠΈΠ½ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΡΠΈΠΊΠ»ΠΈΡΠ½ΠΈ Π²ΡΡΠ·ΠΊΠΈ. ΠΠΊΠ»ΡΡΠ²Π° ΡΠ΅ Ρ ΠΎΠΏΡΠΈΡΡΠ° βgc:orc. ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ARC/ORC ΠΈΠΌΠ° ΠΎΡΠ»ΠΈΡΠ½Π° ΡΡΠ°ΡΠΈΡ.
ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΡΡΡΠΎΠ³ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠΈ ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π²ΠΊΠ»ΡΡΠ²Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π° ΠΌΡΡΠ°Π±ΠΈΠ»Π½ΠΎΡΡ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅. ΠΠΊΡΠΈΠ²ΠΈΡΠ° ΡΠ΅ ΡΡΠ΅Π· ΠΏΡΠ°Π³ΠΌΠ° {.experimental: "strictFuncs".} ΠΈΠ»ΠΈ ΡΡΠ΅Π· ΠΊΠ»ΡΡΠ° βexperimental:strictFuncs.
ΠΠ»ΡΡΠΎΠ²Π°ΡΠ° Π΄ΡΠΌΠ° from ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈ ΠΊΠ°ΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ.
ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΡΠ°Π³ΠΌΠ° .noalias. Π’Ρ Π΅ ΡΡΠΏΠΎΡΡΠ°Π²ΠΈΠΌΠ° Ρ ΠΊΠ»ΡΡΠΎΠ²Π°ΡΠ° Π΄ΡΠΌΠ° C restrict, Π·Π° Π΄Π° ΠΏΠΎΠ²ΠΈΡΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ°, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ ΡΠ°Π·ΠΈ Π΄ΡΠΌΠ°.
ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅Π³Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅Π²ΡΡΠ½Π°ΡΠΈ Π² Π³ΡΠ΅ΡΠΊΠΈ ΡΡΠ΅Π· β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 βimport os; echo getCurrentCompilerExe()β | nim r β # ΠΈ ΡΠΎΠ²Π° ΡΠ°Π±ΠΎΡΠΈ
nim r compiler/nim.nim βfullhelp # Π±Π΅Π· ΠΏΠΎΠ²ΡΠΎΡΠ½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ
nim r βnimcache:/tmp main # Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊΡΡ Π΅ Π·Π°ΠΏΠ°Π·Π΅Π½ Π² /tmp/main
ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² ΠΏΠΎΠ΄ΡΠΊΠ°Π· βhint:msgOrigin, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ ΠΊΡΠ΄Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΡΡ Π΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π» ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π° Π³ΡΠ΅ΡΠΊΠΈ/ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ. Π’ΠΎΠ²Π° ΠΏΠΎΠΌΠ°Π³Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π½Π΅ Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΠΎΡΠΊΡΠ΄Π΅ ΠΈΠ΄Π²Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ.
ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΡΠ»Π°Π³ βbackend:js|c|cpp|objc (ΠΈΠ»ΠΈ -b:js ΠΈ Ρ.Π½.) Π·Π° ΡΠΌΡΠ½Π° Π½Π° Π± backend.
ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΡΠ»Π°Π³ βusenimcache Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π±ΠΈΠ½Π°ΡΠ½ΠΈΡΠΈΡΠ΅ Π² nimcache.
ΠΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠΈ ΡΠ° ΠΊΠ»ΡΡΠΎΠ²Π΅ΡΠ΅: βoldNewlines, βlaxStrings, βoldast, βoldgensym
Π£ΡΠΈΠ»ΠΈΡΠ°ΡΠ° nimsuggest ΡΠ΅Π³Π° ΠΏΠΎΠΊΠ°Π·Π²Π° Π½Π΅ ΡΠ°ΠΌΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΎΠ±ΡΠ²Π»Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΈ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΏΠΎ ΠΈΡΠΊΠ°Π½Π΅ def.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ΅Π΄ΠΈΡΠ° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru
