ΠΡΡΠ»Π° Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Nim, ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π² ΡΡΠΎΠΌ ΡΠ΅Π½ΡΡΠ±ΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΠΈΠ»ΡΡ Π³ΠΎΠ΄ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²ΡΡ ΠΎΠ΄Π° ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ. ΠΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡ ΡΠ·ΡΠΊ ΠΏΠΎΡ ΠΎΠΆ Π½Π° Python, Π° ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΡΡΠΈ ΠΊΠ°ΠΊ C++. Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ FAQ ΡΠ·ΡΠΊ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Π·Π°ΠΈΠΌΡΡΠ²ΡΠ΅Ρ ΠΈΠ· (Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²Π΅ΡΠΎΠΌΠΎΡΡΠΈ Π²ΠΊΠ»Π°Π΄Π°): 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 ΠΈ Ρ.Π΄.) Π΄Π»Ρ ΡΠΌΠ΅Π½Ρ Π±ΡΠΊΠ΅Π½Π΄Π°.
-
ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠ»Π°Π³ —usenimcache Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊΠΎΠ² Π² nimcache.
-
Π£Π΄Π°Π»Π΅Π½Ρ ΠΊΠ»ΡΡΠΈ: —oldNewlines, —laxStrings, —oldast, —oldgensym
-
Π£ΡΠΈΠ»ΠΈΡΠ° nimsuggest ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΈ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ def.
ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ Π±Π°Π³ΠΎΠ².
ΠΡΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru