Bu Eylül ayında birinci yıl dönümünü kutlayan sistem programlama dili Nim'in yeni bir sürümü yayınlandı. ilk kararlı sürüm. Dil, söz dizimi açısından Python'a benzer ve performans açısından neredeyse C++'a benzer. Buna göre SSS Dil büyük ölçüde (katkı sırasına göre) ödünç alınmıştır: Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.
C/C++/Objective-C/JS'de derleme yeteneği sayesinde her yerde çalışır. Destekler makrolar, FKÖ, jenerik, ve kesintiler, sıcak kod değiştirme ve daha fazlası. Lisans: MİT.
En önemli değişiklikler:
-
ARC'nin algoritmasını kullanan ancak aynı zamanda döngüsel referansları özel bir şekilde işleyen yeni bir ORC çöp toplayıcı var. -gc:orc seçeneğiyle etkinleştirilir. ARC/ORC farklılıkları hakkında harika bir makale var.
-
Nesnenin değişebilirliği için ek bir kontrol sağlayan katı işlev tanımlarına yönelik bir mod eklenmiştir. Pragma {.experimental: "strictFuncs".} veya --experimental:strictFuncs anahtarı aracılığıyla etkinleştirilir.
-
From anahtar sözcüğü artık operatör olarak kullanılabilir.
-
.noalias pragma eklendi. Anahtar kelimenin sağlayabileceği verimliliği artırmak için C kısıtlama anahtar kelimesiyle eşleşir.
-
Belirli uyarılar artık --warningAsError[X]:on|off aracılığıyla hatalara dönüştürülebilir.
-
Yeni komut: nim r main.nim [args...], main.nim'i derleyip çalıştırır ve --usenimcache'i içerir, böylece sonuç nim c ile aynı mantığı kullanarak $nimcache/main$exeExt'te saklanır - Kaynaklar değişmediğinde yeniden derlemekten kurtulmak için r. Örnek:
nim r derleyici/nim.nim --help # ilk kez derlendi
echo 'içe aktarma işletim sistemi; echo getCurrentCompilerExe()' | nim r - # bu da işe yarıyor
nim r derleyici/nim.nim --fullhelp # yeniden derleme olmadan
nim r —nimcache:/tmp main # ikili dosya /tmp/main'e kaydedildi
-
Derleyicinin hata/uyarı mesajlarını nerede oluşturduğunu gösterecek yeni bir ipucu -hint:msgOrigin eklendi. Bu, mesajın nereden geldiği belli olmadığında yardımcı olur.
-
Arka ucu değiştirmek için —backend:js|c|cpp|objc (veya -b:js, vb.) işareti eklendi.
-
İkili dosyaların nimcache'e gönderilmesi için --usenimcache bayrağı eklendi.
-
Kaldırılan anahtarlar: --oldNewlines, --laxStrings, --oldast, --oldgensym
-
Nimsuggest yardımcı programı artık yalnızca ön bildirimi değil, aynı zamanda bir def isteğinin uygulama konumunu da gösteriyor.
Ayrıca standart kitaplığa birçok değişiklik ve birçok hata düzeltmesi eklendi.
Kaynak: linux.org.ru