Utjefte fan de programmeertaal Nim 1.4.0

In nije ferzje fan de programmeertaal Nim systeem is útbrocht, dy't dizze septimber har ienjierrich jubileum fierde. earste stabile ferzje. De taal is yn syntaksis gelyk oan Python, en hast as C ++ yn prestaasjes. Neffens FAQ De taal lient swier oan (yn folchoarder fan bydrage): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


Wurket oeral troch de mooglikheid om te kompilearjen yn C/C++/Objective-C/JS. It stipet makro's, OOP, generika, útsûnderingen, hot koade swap en safolle mear. lisinsje: MIT.

De wichtichste feroarings:

  • Der is in nije ORC garbage collector dy't it algoritme fan ARC brûkt, mar tagelyk sirkulêre ferwizings op in spesjale manier behannelet. Ynskeakele troch de -gc:orc opsje. Oer de ARC / ORC ferskillen der is in geweldich artikel.

  • In modus foar strange funksje definysjes is tafoege, dy't mooglik makket in ekstra kontrôle foar objekt mutability. Aktivearre fia it pragma {.experimental: "strictFuncs".} of fia de --experimental:strictFuncs-kaai.

  • It trefwurd fan kin no brûkt wurde as operator.

  • Added .noalias pragma. It mapt oan it kaaiwurd C beheine om de effisjinsje te ferheegjen dy't it kaaiwurd kin leverje.

  • Spesifike warskôgings kinne no feroare wurde yn flaters fia --warningAsError[X]:on|út.

  • Nij kommando: nim r main.nim [args...], dy't main.nim kompilearret en útfiert, en omfettet --usenimcache sadat it resultaat wurdt opslein yn $nimcache/main$exeExt, mei deselde logika as nim c - r te krijen rid fan út recompilation doe't de boarnen binne net feroare. Foarbyld:

nim r compiler/nim.nim --help # kompilearre foar de earste kear
echo 'ymport os; echo getCurrentCompilerExe()' | nim r - # dit wurket ek
nim r compiler/nim.nim --fullhelp # sûnder rekompilaasje
nim r —nimcache:/tmp main # binêr bewarre yn /tmp/main

  • In nije hint tafoege -hint:msgOrigin, dy't sil sjen litte wêr't de kompilator flater- / warskôgingsberjochten generearre. Dit helpt as it net dúdlik is wêr't it berjocht wei kaam.

  • Flagge tafoege —backend:js|c|cpp|objc (of -b:js, ensfh.) om de backend te feroarjen.

  • Added --usenimcache flagge foar útfier binaries nei nimcache.

  • Keys fuortsmiten: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • It nut fan nimsuggest toant no net allinich de pre-ferklearring, mar ek de ymplemintaasjelokaasje foar in def-fersyk.

Derneist binne in protte wizigingen tafoege oan 'e standertbibleteek en in protte bugfixes.

Boarne: linux.org.ru