Julia, višeplatformski programski jezik dostiže svoju verziju 1.9

julia lang

ulia je dinamičan jezik visoke razine i visokih performansi za tehničko računalstvo.

Prije nekoliko dana najavljen je izlazak nove verzije programskog jezika Julia 1.9, koji kombinira kvalitete kao što su visoke performanse, podrška za dinamičko tipkanje i ugrađeni alati za paralelno programiranje. Julijina sintaksa je bliska MATLAB-u, s nekim elementima posuđenim iz Rubyja i Lispa.

Julia ističe se kao programski jezik s više platformi i više paradigmi s dinamičkim tipkanjem Okvir visoke razine visokih performansi za generičko, tehničko i znanstveno računalstvo, sa sintaksom sličnom onoj u drugim sličnim računalnim okruženjima.

Glavna vijest Julije 1.9

U ovoj novoj verziji Julije 1.9 koja je predstavljena, nekoliko poboljšanja u vremenu izvođenja/kompilatoru, od bilo je Značajno smanjenje vremena do prve vožnje. Predkompilacija paketa sada sprema izvorni kod u "pkgimage", što znači da se kod generiran tijekom predkompilacije neće morati ponovno kompajlirati nakon učitavanja paketa. Korištenje načina rada pkgimages može se onemogućiti opcijom “–pkgimages=no”.

Još jedna od promjena koja se ističe su pozivi s argumentima koji nisu specifični za tip sada se mogu optimizirati putem dijeljenja pridruživanja za ubacivanje ili statičku rezoluciju, čak i ako postoji nekoliko različitih vrsta kandidata za podnošenje. To može poboljšati izvedbu u određenim situacijama kada tipovi objekata nisu u potpunosti statički razriješeni, statičkim razrješavanjem mjesta poziva "@nospecialize-d" i izbjegavati rekompilaciju.

Jednoznačni literali sada podržavaju istu sintaksu kao string literali; ta sintaksa može predstavljati nevažeće UTF-8 sekvence, što dopušta tip Char.

Osim toga, na Linuxu i Windowsima, opcija «--threads=auto» sada pokušava odrediti raspoloživi broj procesora na temelju CPU afiniteta, što je maska ​​koja se obično postavlja u HPC i oblak okruženjima.

Opcija je onemogućena--matematički način=brz", umjesto koje se preporučuje korištenje makronaredbe "@brza matematika", koji ima dobro definiranu semantiku, uz parametar "–Nitke» sada ima format «auto | N[,auto|M]», gdje M specificira broj interaktivnih niti koje treba stvoriti.

Dodana opcija «--heap-size-hint=» za postavljanje praga nakon kojeg počinje aktivno sakupljanje smeća. Veličina se može navesti u bajtovima, kilobajtima (1000 KB), megabajtima (300 MB) ili gigabajtima (1,5 GB).

Makro "@invoke". uveden u verziji 1.7 sada je izvezen i dostupan za korištenje. Osim, sada koristite metodu "Core.Typeof(x)". radije "bilo koji" kada je oznaka tipa za argument "x" izostavljena. Ovo je potrebno kako bi se tipovi proslijeđeni kao argumenti pravilno obrađivali.

Štoviše, "Threads.@spawn" sada ima izborni prvi argument ":default" ili ":interactive". Interaktivni zadatak zahtijeva odgovor niske latencije i osmišljen je da bude kratak ili čest. Interaktivni zadaci izvodit će se na interaktivnim nitima ako su navedeni prilikom pokretanja Julije.

Od ostale istaknute promjene:

  • Negiranje predikatne funkcije "!f" sada vraća složenu funkciju "(!) ∘ f" umjesto anonimne funkcije.
  • Funkcije dijeljenja dimenzija sada rade na više dimenzija: «eachslice”, “eachrow” i “eachcol” vratiti objekt "kriške» što omogućuje dostavu da pruži učinkovitije metode.
  • Makro «@kwdef» je dodan u javni API.
  • Riješen je problem s redoslijedom operacija u "fld1".
  • Razvrstavanje je sada uvijek stabilno tijekom vremena (redizajnirano QuickSort).
  • Zadani broj BLAS niti sada je jednak broju CPU niti na ARM arhitekturi i polovici broja CPU niti na drugim arhitekturama.
  • Printf: Prerađene poruke o pogrešci za neispravne nizove radi bolje čitljivosti.
  • Profil: nova funkcija "Profile.take_heap_snapshot(file)" koja piše datoteku u JSON formatu ".heapsnapshot" koji podržava Chrome.
  • Dodana podrška za specifikaciju Unicode 15.
  • Ugniježđene kombinacije torki i imenovanih znakovnih torki sada se mogu koristiti kao parametri tipa.

Konačno, ako vas zanima više o tome, možete se posavjetovati s pojedinostima U sljedećem linku.


Dodaj kao preferirani izvor na Googleu