Julia, platvormideülene programmeerimiskeel jõuab oma versioonini 1.9

Julia lang

ulia on dünaamiline, kõrgetasemeline ja suure jõudlusega keel tehniliseks andmetöötluseks.

Paar päeva tagasi teatati programmeerimiskeele Julia 1.9 uue versiooni väljaandmisest, mis ühendab endas sellised omadused nagu kõrge jõudlus, dünaamilise tippimise tugi ja sisseehitatud tööriistad paralleelseks programmeerimiseks. Julia süntaks on lähedane MATLABile, mõned elemendid on laenatud Ruby ja Lisp.

Julia paistab silma mitme platvormi ja mitme paradigmaga programmeerimiskeele poolest, millel on dünaamiline tippimine kõrgetasemeline suure jõudlusega raamistik üldiseks, tehniliseks ja teaduslikuks andmetöötluseks, mille süntaks on sarnane teiste sarnaste andmetöötluskeskkondade omaga.

Julia peamised uudised 1.9

Selles esitletavas Julia 1.9 uues versioonis on mitu käitusaja/kompilaatori täiustused, alates seal oli Esimese jooksuni kuluv aeg on oluliselt vähenenud. Paketi eelkompileerimine salvestab nüüd algkoodi "pkgimage", mis tähendab, et eelkompileerimise käigus genereeritud koodi ei pea pärast paketi laadimist uuesti kompileerima. Pkgimages režiimi kasutamise saab keelata valikuga “–pkgimages=no”.

Teine silma paistev muudatus on tüübispetsiifiliste argumentidega kõnesid saab nüüd optimeerida süstimiseks või staatiliseks eraldusvõimeks ühendamise split kaudu, isegi kui esitamise kandidaate on mitut tüüpi. See võib parandada jõudlust teatud olukordades, kus objektitüübid ei ole täielikult staatiliselt lahendatud, lahendades kõnesaidid staatiliselt.@nospecialize-d" ja vältige uuesti kompileerimist.

Ühemärgilised literaalid toetavad nüüd sama süntaksit kui stringiliteraalid; need süntaksid võivad esindada kehtetuid UTF-8 jadasid, nagu seda võimaldab Char tüüp.

Lisaks sellele on see valik Linuxis ja Windowsis «--threads=auto» proovib nüüd määrata saadaolevate protsessorite arvu põhineb CPU afiinsusel, mis on tavaliselt HPC ja pilvekeskkondades seatud mask.

Valik on keelatud--math-mode=kiire", mille asemel on soovitatav kasutada makrot "@fastmath", millel on lisaks parameetrile ka täpselt määratletud semantika–Niidid» on nüüd vormingus «auto | N[,auto|M]», kus M määrab loodavate interaktiivsete lõimede arvu.

Lisatud valik «--heap-size-hint=» määramaks läve, mille järel algab aktiivne prügikoristus. Suurust saab määrata baitides, kilobaitides (1000 KB), megabaitides (300 MB) või gigabaitides (1,5 GB).

Makro "@invoke". versioonis 1.7 tutvustatud on nüüd eksporditud ja kasutamiseks saadaval. Pealegi, kasutage nüüd meetodit "Core.Typeof(x)". pigem "mistahes", kui argumendi "x" tüübimärkus jäetakse välja. See on vajalik argumentidena edastatud tüüpide korrektseks töötlemiseks.

Lisaks "Threads.@spawn" sisaldab nüüd valikulist esimest argumenti ":default" või ":interactive". Interaktiivne ülesanne nõuab madala latentsusaega ja on kavandatud olema lühike või sagedane. Interaktiivsed ülesanded töötavad interaktiivsetel lõimedel, kui need on Julia käivitamisel määratud.

Kohta muud silmapaistvad muudatused:

  • Predikaatfunktsiooni "!f" eitamine tagastab nüüd anonüümse funktsiooni asemel liitfunktsiooni "(!) ∘ f".
  • Dimensioonide jagamise funktsioonid töötavad nüüd mitme mõõtmega: «iga viil“, „iga rida“ ja „iga kool“ tagasta objekt"Lõigud» mis võimaldab tarnimisel pakkuda tõhusamaid meetodeid.
  • Makro «@kwdef» on lisatud avalikku API-sse.
  • Lahendatud on "fld1" toimingute järjekorra probleem.
  • Sortimine on nüüd aja jooksul alati stabiilne (ümberkujundatud QuickSort).
  • BLAS-lõimede vaikearv on nüüd võrdne CPU-lõimede arvuga ARM-i arhitektuuris ja poole CPU-lõimede arvuga teistes arhitektuurides.
  • Printf: valesti vormindatud stringide ümbertöödeldud veateated parema loetavuse tagamiseks.
  • Profiil: uus funktsioon "Profile.take_heap_snapshot(file)", mis kirjutab faili JSON-põhises ".heapsnapshot"-vormingus, mida Chrome toetab.
  • Lisatud tugi Unicode 15 spetsifikatsioonile.
  • Tüübiparameetritena saab nüüd kasutada pesastatud kortereid ja nimega kortereid.

Lõpuks, kui olete huvitatud sellest rohkem teada saama, saate üksikasju vaadata Järgmisel lingil.


Lisa eelistatud allikana Google'is