Nim basa programming release 1.4.0

Versi anyar tina basa program sistem Nim parantos dileupaskeun, anu dina Séptémber ieu ngagungkeun ulang taunna. Vérsi stabil munggaran. Basana sami dina sintaksis sareng Python, sareng ampir sapertos C ++ dina pagelaran. Numutkeun kana FAQ Basa nginjeum pisan tina (dina urutan kontribusi): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.


Gawéna madhab berkat kamampuhan pikeun compile dina C / C ++ / obyektif-C / JS. Ieu ngarojong macros, OOP, generik, pangaluaran, swap kode panas sareng seueur deui. Lisensi: MIT.

Parobahan anu paling signifikan:

  • Aya ORC sampah collector anyar anu ngagunakeun algoritma ti ARC, tapi dina waktos anu sareng handles rujukan sirkular dina cara husus. Diaktipkeun ku pilihan -gc:orc. Ngeunaan bédana ARC / ORC aya artikel hébat.

  • Modeu pikeun definisi fungsi anu ketat parantos ditambah, anu ngamungkinkeun pamariksaan tambahan pikeun mutabilitas obyék. Diaktipkeun ku pragma {.experimental: "strictFuncs".} atanapi liwat konci --experimental:strictFuncs.

  • Kecap konci ti ayeuna tiasa dianggo salaku operator.

  • Ditambahkeun .noalias pragma. Ieu peta ka C ngawatesan keyword pikeun ngaronjatkeun efisiensi nu keyword bisa nyadiakeun.

  • Peringatan khusus ayeuna tiasa dirobih janten kasalahan via --warningAsError[X]:on|off.

  • Paréntah anyar: nim r main.nim [args...], anu nyusun sareng ngajalankeun main.nim, sareng kalebet --usenimcache supados hasilna disimpen dina $ nimcache / main $ exeExt, nganggo logika anu sami sareng nim c - r meunang leupas tina recompilation lamun sumber teu robah. conto:

nim r compiler / nim.nim --help # disusun pikeun kahiji kalina
echo 'impor os; gema getCurrentCompilerExe ()' | nim r - # ieu jalan teuing
nim r kompiler / nim.nim --fullhelp # tanpa recompilation
nim r —nimcache:/tmp main # binér disimpen dina /tmp/main

  • Ditambahkeun hint anyar -hint: msgOrigin, anu bakal nunjukkeun dimana kompiler ngahasilkeun pesen kasalahan / peringatan. Ieu ngabantuan lamun teu jelas ti mana pesen asalna.

  • Ditambahkeun bandéra —backend:js|c|cpp|objc (atawa -b:js, jsb.) pikeun ngarobah backend.

  • Ditambahkeun --usenimcache bandéra kana kaluaran binari ka nimcache.

  • Konci dihapus: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • Utilitas nimsuggest ayeuna nunjukkeun henteu ngan ukur pra-deklarasi, tapi ogé lokasi palaksanaan pikeun pamundut def.

Salaku tambahan, seueur parobihan parantos ditambah kana perpustakaan standar sareng seueur perbaikan bug.

sumber: linux.org.ru