ulia je dinamičan jezik visokog nivoa i visokih performansi za tehničko računarstvo.
Prije nekoliko dana najavljeno je izdavanje nove verzije programskog jezika Julia 1.9, koji kombinuje kvalitete kao što su visoke performanse, podrška za dinamičko kucanje i ugrađeni alati za paralelno programiranje. Julijina sintaksa je bliska MATLAB-u, sa nekim elementima pozajmljenim iz Rubyja i Lisp-a.
Julia ističe se po tome što je višeplatformski i višeparadigmatski programski jezik sa dinamičkim kucanjem Okvir visokog nivoa, visokih performansi za generičko, tehničko i naučno računarstvo, sa sintaksom sličnom onoj u drugim sličnim računarskim okruženjima.
Glavne vijesti Julije 1.9
U ovoj novoj verziji Julije 1.9 koja je predstavljena, nekoliko poboljšanja u vremenu izvođenja/kompajleru, pošto bilo je Značajno smanjenje vremena do prvog pokretanja. Prekompilacija paketa sada sprema izvorni kod u "pkgimage", što znači da kod generiran tokom prekompilacije neće biti potrebno ponovo kompajlirati nakon učitavanja paketa. Upotreba režima 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 podjele spajanja za injekciju ili statičku rezoluciju, čak i ako postoji nekoliko različitih tipova kandidata za podnošenje. Ovo može poboljšati performanse u određenim situacijama kada tipovi objekata nisu u potpunosti statički razriješeni, statičkim rješavanjem lokacija poziva "@nospecialize-d" i izbjegavajte ponovnu kompilaciju.
Literali jednog karaktera sada podržavaju istu sintaksu kao i literali stringova; ta sintaksa može predstavljati nevažeće UTF-8 sekvence, kao što dozvoljava tip Char.
Osim toga, na Linuxu i Windowsu, opcija «--threads=auto» sada pokušava odrediti raspoloživi broj procesora baziran na CPU afinitetu, što je maska koja se obično postavlja u HPC i cloud okruženjima.
Opcija je onemogućena--math-mode=brzo", umjesto čega se preporučuje korištenje makronaredbe "@fastmath", koji ima dobro definiranu semantiku, pored parametra "–Nitke» sada ima format «automobil | N[,auto|M]», gdje M specificira broj interaktivnih niti za kreiranje.
Dodana opcija «--heap-size-hint=» za postavljanje praga nakon kojeg počinje aktivno sakupljanje smeća. Veličina se može odrediti u bajtovima, kilobajtima (1000 KB), megabajtima (300 MB) ili gigabajtima (1,5 GB).
Makro "@invoke". uveden u verziji 1.7 je sada izvezen i dostupan za upotrebu. osim toga, 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 ispravno obrađivali.
Sa druge strane, "Threads.@spawn" sada ima opcioni prvi argument ":default" ili ":interactive". Interaktivni zadatak zahtijeva reakciju niske latencije i dizajniran je tako da bude kratak ili čest. Interaktivni zadaci će se izvoditi na interaktivnim nitima ako su navedeni pri pokretanju Julije.
Of the ostale istaknute promjene:
- Negiranje predikatske funkcije "!f" sada vraća složenu funkciju "(!) ∘ f" umjesto anonimne funkcije.
- Funkcije podjele dimenzija sada rade na više dimenzija: «svaka kriška", "svaki red" i "svaki kolo" vrati objekat "Rezine» što omogućava dostavu da pruži efikasnije metode.
- Makro «@kwdef» je dodan javnom API-ju.
- Rešen je problem sa redosledom operacija u "fld1".
- Sortiranje je sada uvijek stabilno tokom vremena (redizajniran QuickSort).
- Zadani broj BLAS niti je sada jednak broju CPU niti na ARM arhitekturi i polovini broja CPU niti na drugim arhitekturama.
- Printf: Prerađene poruke o grešci za pogrešno oblikovane stringove radi bolje čitljivosti.
- Profil: Nova funkcija "Profile.take_heap_snapshot(file)" koja upisuje datoteku u formatu ".heapsnapshot" baziranom na JSON-u koji podržava Chrome.
- Dodata podrška za Unicode 15 specifikaciju.
- Ugniježđene kombinacije torki i imenovanih tuple znakova sada se mogu koristiti kao parametri tipa.
Konačno, ako vas zanima više o tome, možete se obratiti detaljima Na sledećem linku.