Platformlar arası programlama dili Julia, 1.9 sürümüne ulaştı

julia lang

ulia, teknik bilgi işlem için dinamik, üst düzey, yüksek performanslı bir dildir.

Birkaç gün önce , programlama dili Julia'nın yeni sürümü olan Julia 1.9'un piyasaya sürülmesi duyuruldu . Yüksek performans, dinamik tip desteği ve paralel programlama için entegre araçlar gibi özellikleri bir araya getiriyor. Julia'nın sözdizimi MATLAB'e benzer olup, Ruby ve Lisp'ten de bazı unsurlar ödünç alınmıştır.

Julia , genel, teknik ve bilimsel hesaplamalar için yüksek seviyeli, yüksek performanslı, çok platformlu, çok paradigmalı, dinamik olarak tiplendirilmiş bir programlama dili olarak öne çıkıyor ve sözdizimi diğer benzer hesaplama ortamlarına benziyor.

Julia 1.9 ana haberleri

Julia 1.9'un bu yeni sürümü, ilk çalıştırma süresinde önemli bir azalma da dahil olmak üzere çeşitli çalışma zamanı/derleyici iyileştirmeleri içeriyor. Paket ön derlemesi artık yerel kodu bir "pkgimage" dosyasına kaydediyor; bu da ön derleme sırasında oluşturulan kodun paket yüklendikten sonra yeniden derlenmesine gerek kalmayacağı anlamına geliyor. pkgimages modu, "--pkgimages=no" seçeneğiyle devre dışı bırakılabilir.

Bir diğer önemli değişiklik ise, artık türe özgü olmayan argümanlara sahip çağrıların, birden fazla farklı gönderim adayı türü olsa bile, enjeksiyon veya statik çözümleme için birleşim bölme yöntemi kullanılarak optimize edilebilmesidir . Bu, nesne türlerinin statik olarak tam olarak çözümlenmediği belirli durumlarda, " @nospecialize-d" çağrılarının yerlerini statik olarak çözerek ve yeniden derlemeyi önleyerek performansı artırabilir.

Tek karakter değişmezleri artık dize değişmezleriyle aynı sözdizimini destekliyor; bu sözdizimi, Char türünün izin verdiği şekilde geçersiz UTF-8 dizilerini temsil edebilir.

Ayrıca, Linux ve Windows'ta " --threads=auto " seçeneği artık , genellikle yüksek performanslı bilgi işlem (HPC) ve bulut ortamlarında ayarlanan bir maske olan CPU yakınlığına göre kullanılabilir işlemci sayısını belirlemeye çalışır .

" --math-mode=fast " seçeneği devre dışı bırakıldı ve bunun yerine iyi tanımlanmış bir anlama sahip olan " @fastmath " makrosunun kullanılması önerilir. Ayrıca, " --threads " parametresi artık "auto | N[,auto|M]" biçimindedir ; burada M, oluşturulacak etkileşimli iş parçacığı sayısını belirtir.

“ –heap-size-hint=<size> ” seçeneği, aktif çöp toplama işleminin başlayacağı eşiği belirlemek için eklendi . Boyut, bayt, kilobayt (1000 KB), megabayt (300 MB) veya gigabayt (1,5 GB) cinsinden belirtilebilir.

1.7 sürümünde tanıtılan "@invoke" makrosu artık dışa aktarıldı ve kullanıma sunuldu. Ayrıca, "x" argümanı için tür açıklaması atlandığında " Any " yerine "Core.Typeof(x)" yöntemini kullanıyor . Bu, argüman olarak geçirilen türlerin doğru şekilde işlenmesi için gereklidir.

Ayrıca, `Threads.@spawn` artık isteğe bağlı olarak `:default` veya `:interactive` olmak üzere iki seçenekten birini seçebiliyor. Etkileşimli görevler düşük gecikmeli yanıt gerektirir ve kısa süreli veya sık çalıştırılmak üzere tasarlanmıştır. Julia başlatılırken belirtilirse, etkileşimli görevler etkileşimli iş parçacıklarında çalışır.

Diğer önemli değişiklikler şunlardır:

  • "!f" yüklem işlevini olumsuzlamak artık anonim bir işlev yerine "(!) ∘ f" bileşik işlevini döndürür.
  • Boyut ayırma işlevleri artık birden çok boyutta çalışıyor: «everyslice”, “eachrow” ve “eachcol” bir nesne döndür "Dilimler» nakliyenin daha verimli yöntemler sunmasını sağlar.
  • makro «@kwdef» genel API'ye eklendi.
  • "fld1"deki işlem sırası ile ilgili bir sorun düzeltildi.
  • Sıralama artık zaman içinde her zaman sabittir (Yeniden Tasarlanan QuickSort).
  • Varsayılan BLAS iş parçacığı sayısı artık ARM mimarisindeki CPU iş parçacığı sayısına ve diğer mimarilerdeki CPU iş parçacığı sayısının yarısına eşittir.
  • Printf: Daha iyi okunabilirlik için hatalı biçimlendirilmiş dizeler için yeniden işlenmiş hata mesajları.
  • Profil: Chrome tarafından desteklenen JSON tabanlı ".heapsnapshot" biçiminde bir dosya yazan yeni işlev "Profile.take_heap_snapshot(file)".
  • Unicode 15 spesifikasyonu için destek eklendi.
  • Demetlerin ve adlandırılmış karakter demetlerinin iç içe geçmiş kombinasyonları artık tür parametreleri olarak kullanılabilir.

Son olarak, daha fazla bilgi edinmek isterseniz, ayrıntıları aşağıdaki bağlantıda bulabilirsiniz.


Google'da tercih edilen kaynak olarak ekleyin.