Nim системийн програмчлалын хэлний шинэ хувилбар гарсан бөгөөд энэ XNUMX-р сард гарснаас хойш нэг жил болж байна. анхны тогтвортой хувилбар. Синтакс нь Python-той төстэй бөгөөд гүйцэтгэл нь бараг C++-тэй адил юм. дагуу тусламж Хэл нь (хувь нэмэр оруулах жингийн дарааллаар): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon-аас их хэмжээгээр зээлдэг.
C/C++/Objective-C/JS хөрвүүлэх чадварын ачаар хаа сайгүй ажилладаг. Энэ нь дэмждэг макро, OOP байна, ерөнхий зүйл, үл хамаарах зүйл, халуун код солих болон бусад олон. Лиценз - MIT.
Хамгийн чухал өөрчлөлтүүд:
-
ARC алгоритмыг ашигладаг боловч дугуй лавлагааг тусгай аргаар зохицуулдаг шинэ ORC хог цуглуулагч бий. --gc:orc сонголтоор идэвхжүүлсэн. ARC/ORC ялгааны тухай сайхан нийтлэл байна.
-
Функцийн хатуу тодорхойлолтын горим нэмэгдсэн бөгөөд үүнд объектын өөрчлөлтийн нэмэлт шалгалт орно. {.experimental: "strictFuncs".} прагма эсвэл --experimental:strictFuncs шилжүүлэгчээр идэвхжүүлсэн.
-
from түлхүүр үгийг одоо оператор болгон ашиглаж болно.
-
.noalias прагма нэмсэн. Энэ нь энэ түлхүүр үгийн өгч чадах үр ашгийг нэмэгдүүлэхийн тулд C хязгаарлах түлхүүр үгтэй харьцдаг.
-
Тусгай анхааруулгыг одоо --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 гэх мэт) тугийг нэмсэн.
-
Nimcache руу хоёртын файлуудыг гаргахын тулд --usenimcache тугийг нэмсэн.
-
Түлхүүрүүдийг хассан: --oldNewlines, --laxStrings, --oldast, --oldgensym
-
nimsuggest хэрэгсэл нь одоо зөвхөн дамжуулалтын мэдэгдлийг төдийгүй def хүссэн үед хэрэгжилтийн байршлыг харуулдаг.
Үүнээс гадна стандарт номын санд олон өөрчлөлт орж, олон алдаа зассан.
Эх сурвалж: linux.org.ru