ulia on dynaaminen, korkeatasoinen ja suorituskykyinen kieli tekniseen laskemiseen.
Muutama päivä sitten Ohjelmointikielen Julia 1.9:n uusi versio julkistettiin, jossa yhdistyvät ominaisuudet, kuten korkea suorituskyky, dynaamisen kirjoittamisen tuki ja sisäänrakennetut työkalut rinnakkaisohjelmointiin. Julian syntaksi on lähellä MATLABia, ja jotkut elementit on lainattu Rubysta ja Lispistä.
Julia erottuu siitä, että se on monikäyttöinen ja usean paradigman ohjelmointikieli dynaamisella kirjoituksella korkeatasoinen, suorituskykyinen kehys yleiselle, tekniselle ja tieteelliselle laskennalle, jonka syntaksi on samanlainen kuin muissa vastaavissa laskentaympäristöissä.
Julian tärkeimmät uutiset 1.9
Tässä esitellyssä Julia 1.9:n uudessa versiossa useita suoritusajan/kääntäjän parannuksia vuodesta lähtien siellä oli Huomattava lyhennys ensimmäiseen ajoon. Paketin esikäännös tallentaa nyt alkuperäisen koodin "pkgimageen", mikä tarkoittaa, että esikäännöksen aikana luotua koodia ei tarvitse kääntää uudelleen paketin lataamisen jälkeen. Pkgimages-tilan käyttö voidaan poistaa käytöstä vaihtoehdolla “–pkgimages=no”.
Toinen erottuvista muutoksista on ei-tyyppikohtaisia argumentteja sisältävät kutsut voidaan nyt optimoida yhdistämällä splitin injektiota tai staattista resoluutiota varten, vaikka ehdokkaita olisi useita eri tyyppejä. Tämä voi parantaa suorituskykyä tietyissä tilanteissa, joissa objektityyppejä ei ole täysin ratkaistu staattisesti, ratkaisemalla puhelupaikat staattisesti.@nospecialize-d" ja välttää uudelleenkääntämistä.
Yksimerkkiset literaalit tukevat nyt samaa syntaksia kuin merkkijonoliteraalit; nämä syntaksit voivat edustaa virheellisiä UTF-8-sekvenssejä Char-tyypin sallimalla tavalla.
Tämän lisäksi Linuxissa ja Windowsissa vaihtoehto «--threads=auto» yrittää nyt määrittää käytettävissä olevan prosessorien määrän perustuu CPU-affiniteettiin, joka on tyypillisesti HPC- ja pilviympäristöissä asetettu maski.
Vaihtoehto on poistettu käytöstä--math-mode=nopea", jonka sijaan on suositeltavaa käyttää makroa "@fastmath", jolla on hyvin määritelty semantiikka parametrin "–Langat» on nyt muodossa «auto | N[,auto|M]», jossa M määrittää luotavien interaktiivisten säikeiden määrän.
Lisätty vaihtoehto «--heap-size-vint=» asettaaksesi kynnyksen, jonka jälkeen aktiivinen roskienkeruu alkaa. Koko voidaan määrittää tavuina, kilotavuina (1000 kt), megatavuina (300 MB) tai gigatavuina (1,5 Gt).
@invoke-makro versiossa 1.7 esitelty on nyt viety ja käytettävissä. Sitä paitsi, käytä nyt menetelmää "Core.Typeof(x)" pikemminkin"mitään", kun argumentin "x" tyyppimerkintä jätetään pois. Tämä on tarpeen, jotta argumentteina välitetyt tyypit käsitellään oikein.
Lisäksi, "Threads.@spawn" sisältää nyt valinnaisen ensimmäisen argumentin ":default" tai ":interactive". Vuorovaikutteinen tehtävä vaatii alhaisen latenssivasteen, ja se on suunniteltu lyhyeksi tai toistuvaksi. Interaktiiviset tehtävät suoritetaan interaktiivisissa säikeissä, jos ne on määritetty Juliaa käynnistettäessä.
Niistä muut erottuvat muutokset:
- Predikaattifunktion "!f" kieltäminen palauttaa nyt yhdistelmäfunktion "(!) ∘ f" anonyymin funktion sijaan.
- Mittojen jakotoiminnot toimivat nyt useissa ulottuvuuksissa: «jokainen viipale", "eachrow" ja "eachcol" palauta esine"Slices» mikä mahdollistaa toimituksen tehokkaampien menetelmien tarjoamisen.
- Makro «@kwdef» on lisätty julkiseen API:hen.
- Korjattu "fld1"-toimintojen järjestyksen ongelma.
- Lajittelu on nyt aina vakaa ajan myötä (uudelleen suunniteltu QuickSort).
- BLAS-säikeiden oletusmäärä on nyt yhtä suuri kuin CPU-säikeiden lukumäärä ARM-arkkitehtuurissa ja puolet muiden arkkitehtuurien CPU-säikeiden lukumäärästä.
- Printf: Väärin muotoiltujen merkkijonojen uudelleen muokatut virheilmoitukset luettavuuden parantamiseksi.
- Profiili: Uusi toiminto "Profile.take_heap_snapshot(file)", joka kirjoittaa tiedoston JSON-pohjaisessa ".heapsnapshot"-muodossa, jota Chrome tukee.
- Lisätty tuki Unicode 15 -spesifikaatiolle.
- Sisäkkäisiä monikoiden ja nimettyjen merkkijonojen yhdistelmiä voidaan nyt käyttää tyyppiparametreina.
Lopuksi, jos haluat tietää enemmän siitä, voit tutustua yksityiskohtiin Seuraavassa linkissä.