ΠŸΡƒΡΠΊΠ°Π½Π΅Ρ‚ΠΎ Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Nim 1.4.0

ИзлСзС Π½ΠΎΠ²Π° вСрсия Π½Π° систСмния Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ 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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster