ИзданиС Π½Π° програмскиот јазик Nim 1.4.0

ОбјавСна Π΅ Π½ΠΎΠ²Π° Π²Π΅Ρ€Π·ΠΈΡ˜Π° Π½Π° програмскиот јазик Π½Π° систСмот Nim, кој овој сСптСмври прослави Π΅Π΄Π½Π° Π³ΠΎΠ΄ΠΈΠ½Π° ΠΎΠ΄ своСто ΠΏΠΎΡΡ‚ΠΎΠ΅ΡšΠ΅. ΠΏΡ€Π²Π°Ρ‚Π° стабилна Π²Π΅Ρ€Π·ΠΈΡ˜Π°. ΠˆΠ°Π·ΠΈΠΊΠΎΡ‚ Π΅ сличСн Π²ΠΎ синтаксата Π½Π° Python, ΠΈ рСчиси ΠΊΠ°ΠΊΠΎ C++ Π²ΠΎ пСрформанситС. Π‘ΠΏΠΎΡ€Π΅Π΄ ЧСсто поставувани ΠΏΡ€Π°ΡˆΠ°ΡšΠ° ΠˆΠ°Π·ΠΈΠΊΠΎΡ‚ ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΠΎΠ·Π°Ρ˜ΠΌΡƒΠ²Π° ΠΎΠ΄ (ΠΏΠΎ рСдослСд Π½Π° придонСс): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


Π Π°Π±ΠΎΡ‚ΠΈ насСкадС Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° моТноста Π·Π° ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°ΡšΠ΅ Π²ΠΎ C/C++/Objective-C/JS. ΠŸΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° ΠΌΠ°ΠΊΡ€ΠΎΠ°, OOP, Π³Π΅Π½Π΅Ρ€ΠΈΠΊΠΈ, ΠΈΡΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°ΡšΠ°, ТСшка Ρ€Π°Π·ΠΌΠ΅Π½Π° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ ΠΈ ΡƒΡˆΡ‚Π΅ повСќС. Π›ΠΈΡ†Π΅Π½Ρ†Π°: MIT.

ΠΠ°Ρ˜Π·Π½Π°Ρ‡Π°Ρ˜Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ:

  • Има Π½ΠΎΠ² ORC собирач Π½Π° Ρ“ΡƒΠ±Ρ€Π΅ кој Π³ΠΎ користи Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΡ‚ ΠΎΠ΄ ARC, Π½ΠΎ Π²ΠΎ исто Π²Ρ€Π΅ΠΌΠ΅ сС справува со ΠΊΡ€ΡƒΠΆΠ½ΠΈ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈ Π½Π° посСбСн Π½Π°Ρ‡ΠΈΠ½. ОвозмоТСно ΠΎΠ΄ ΠΎΠΏΡ†ΠΈΡ˜Π°Ρ‚Π° -gc:orc. Π—Π° Ρ€Π°Π·Π»ΠΈΠΊΠΈΡ‚Π΅ ARC/ORC ΠΈΠΌΠ° ΠΎΠ΄Π»ΠΈΡ‡Π½Π° ΡΡ‚Π°Ρ‚ΠΈΡ˜Π°.

  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ Π΅ Ρ€Π΅ΠΆΠΈΠΌ Π·Π° строги Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ†ΠΈΠΈ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΡˆΡ‚ΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π° промСнливост Π½Π° ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ΠΎΡ‚. Активирано ΠΏΡ€Π΅ΠΊΡƒ ΠΏΡ€Π°Π³ΠΌΠ°Ρ‚Π° {.experimental: "strictFuncs".} ΠΈΠ»ΠΈ ΠΏΡ€Π΅ΠΊΡƒ ΠΊΠΎΠΏΡ‡Π΅Ρ‚ΠΎ --experimental:strictFuncs.

  • ΠšΠ»ΡƒΡ‡Π½ΠΈΠΎΡ‚ Π·Π±ΠΎΡ€ ΠΎΠ΄ сСга ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи ΠΊΠ°ΠΊΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€.

  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ΠΎ .noalias pragma. Π‘Π΅ прСсликува Π½Π° ΠΊΠ»ΡƒΡ‡Π½ΠΈΠΎΡ‚ Π·Π±ΠΎΡ€ Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ΅ C Π·Π° Π΄Π° сС Π·Π³ΠΎΠ»Π΅ΠΌΠΈ Сфикасноста ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ја ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ ΠΊΠ»ΡƒΡ‡Π½ΠΈΠΎΡ‚ Π·Π±ΠΎΡ€.

  • Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π½ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ° сСга ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°Ρ‚ Π²ΠΎ Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΡ€Π΅ΠΊΡƒ --warningAsError[X]:on|off.

  • Нова ΠΊΠΎΠΌΠ°Π½Π΄Π°: nim r main.nim [args...], која Π³ΠΎ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π° ΠΈ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π° main.nim, ΠΈ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° --usenimcache Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΎΡ‚ Π΅ Π·Π°Ρ‡ΡƒΠ²Π°Π½ Π²ΠΎ $nimcache/main$exeExt, ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ ја истата Π»ΠΎΠ³ΠΈΠΊΠ° ΠΊΠ°ΠΊΠΎ nim c - r Π·Π° Π΄Π° сС ослободитС ΠΎΠ΄ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΡ‚ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°ΡšΠ΅ ΠΊΠΎΠ³Π° ΠΈΠ·Π²ΠΎΡ€ΠΈΡ‚Π΅ Π½Π΅ сС ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Ρ‚ΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

nim r ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€/nim.nim --help # составСн Π·Π° ΠΏΡ€Π² ΠΏΠ°Ρ‚
Π΅Ρ…ΠΎ 'ΡƒΠ²ΠΎΠ· os; Π΅Ρ…ΠΎ getCurrentCompilerExe()' | nim r - # ΠΈ ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π°
nim r ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€/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