ΠΠ·Π»Π΅Π·Π΅ Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Nim, ΠΊΠΎΠΉΡΠΎ ΡΠΎΠ·ΠΈ ΡΠ΅ΠΏΡΠ΅ΠΌΠ²ΡΠΈ ΠΎΡΠ±Π΅Π»ΡΠ·Π²Π° Π΅Π΄Π½Π° Π³ΠΎΠ΄ΠΈΠ½Π° ΠΎΡ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ΡΠΎ ΡΠΈ. ΠΏΡΡΠ²Π° ΡΡΠ°Π±ΠΈΠ»Π½Π° Π²Π΅ΡΡΠΈΡ. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡΡ Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° Python, Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π΅ ΠΏΠΎΡΡΠΈ ΠΊΠ°ΡΠΎ C++. Π‘ΠΏΠΎΡΠ΅Π΄ Π§Π΅ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π½ΠΈ Π²ΡΠΏΡΠΎΡΠΈ Π΅Π·ΠΈΠΊΡΡ Π·Π°Π΅ΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ (ΠΏΠΎ ΡΠ΅Π΄Π° Π½Π° ΡΠ΅ΠΆΠ΅ΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ½ΠΎΡΠ°): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.
Π Π°Π±ΠΎΡΠΈ Π½Π°Π²ΡΡΠΊΡΠ΄Π΅ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π² C/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; Π΅Ρ
ΠΎ 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 ΠΈ Ρ.Π½.) Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π°.
-
ΠΠΎΠ±Π°Π²Π΅Π½ ΡΠ»Π°Π³ --usenimcache Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π²ΠΎΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΊΡΠΌ nimcache.
-
ΠΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅: --oldNewlines, --laxStrings, --oldast, --oldgensym
-
ΠΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° nimsuggest Π²Π΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π° Π½Π΅ ΡΠ°ΠΌΠΎ ΠΏΡΠ΅Π΄Π½Π°ΡΠ° Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΡ, Π½ΠΎ ΠΈ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ Π±ΡΠ΄Π΅ ΠΏΠΎΠΈΡΠΊΠ°Π½Π° Π΄Π΅Ρ.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π±ΡΡ Π° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΊΡΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru