ulia është një gjuhë dinamike, e nivelit të lartë dhe me performancë të lartë për llogaritjen teknike.
Pak ditë më parë u njoftua lëshimi i versionit të ri të gjuhës së programimit Julia 1.9, i cili kombinon cilësi të tilla si performanca e lartë, mbështetje për shtypjen dinamike dhe mjete të integruara për programim paralel. Sintaksa e Julia është afër MATLAB, me disa elementë të huazuar nga Ruby dhe Lisp.
Julia shquhet për të qenit një gjuhë programimi me shumë platforma dhe shumë paradigma me shtypje dinamike Kornizë e nivelit të lartë, me performancë të lartë për llogaritjen gjenerike, teknike dhe shkencore, me një sintaksë të ngjashme me atë të mjediseve të tjera të ngjashme kompjuterike.
Lajmet kryesore të Julia 1.9
Në këtë version të ri të Julia 1.9 që është paraqitur, disa përmirësime në kohën e ekzekutimit/përpiluesit, që nga viti atje ishte Reduktim i ndjeshëm i kohës deri në ekzekutimin e parë. Parapërpilimi i paketës tani ruan kodin vendas në "pkgimage", që do të thotë se kodi i gjeneruar gjatë parapërpilimit nuk do të duhet të ripërpilohet pas ngarkimit të paketës. Përdorimi i modalitetit pkgimages mund të çaktivizohet me opsionin “–pkgimages=jo”.
Një tjetër nga ndryshimet që bie në sy janë ato thirrjet me argumente jo-specifike tani mund të optimizohen nëpërmjet ndarjes së bashkimit për injeksion ose rezolucionit statik, edhe nëse ka disa lloje të ndryshme kandidatësh për paraqitje. Kjo mund të përmirësojë performancën në situata të caktuara ku llojet e objekteve nuk zgjidhen plotësisht në mënyrë statike, duke zgjidhur në mënyrë statike faqet e thirrjeve "@nospecialize-d" dhe shmangni rikompilimin.
Literalet me një karakter tani mbështesin të njëjtën sintaksë si literalet e vargjeve; ato sintaksa mund të përfaqësojnë sekuenca të pavlefshme UTF-8, siç lejohet nga lloji Char.
Përveç kësaj, në Linux dhe Windows, opsioni «--threads=auto» tani përpiqet të përcaktojë numrin e disponueshëm të procesorëve bazuar në afinitetin e CPU-së, e cila është një maskë e vendosur zakonisht në mjediset HPC dhe cloud.
Opsioni është çaktivizuar--math-mode=i shpejtë", në vend të së cilës rekomandohet të përdorni makro"@fastmath", e cila ka semantikë të mirëpërcaktuar, përveç parametrit "–Treads» tani ka formatin «makinë | N[,auto|M]», ku M specifikon numrin e thread-ve ndërveprues për t'u krijuar.
Opsioni i shtuar «--heap-size-hint=» për të vendosur pragun pas të cilit fillon grumbullimi aktiv i plehrave. Madhësia mund të specifikohet në bajt, kilobajt (1000 KB), megabajt (300 MB) ose gigabajt (1,5 GB).
Makro "@invoke". i prezantuar në versionin 1.7 tani është eksportuar dhe i disponueshëm për përdorim. Përveç kësaj, tani përdorni metodën "Core.Typeof(x)". më tepër "Ndonjë" kur shënimi i tipit për argumentin "x" është hequr. Kjo kërkohet në mënyrë që llojet e kaluara si argumente të përpunohen saktë.
Për më tepër, "Threads.@spawn" tani ka një argument të parë opsional të ":default" ose ":interactive". Një detyrë ndërvepruese kërkon një përgjigje të ulët latente dhe është projektuar të jetë e shkurtër ose e shpeshtë. Detyrat ndërvepruese do të ekzekutohen në temat ndërvepruese nëse ato specifikohen kur fillon Julia.
Të ndryshime të tjera që bien në sy:
- Negimi i funksionit kallëzues "!f" tani kthen një funksion të përbërë "(!) ∘ f" në vend të një funksioni anonim.
- Funksionet e ndarjes së dimensioneve tani funksionojnë në dimensione të shumta: «çdo fetë, "secila" dhe "secila" kthe një objekt "feta» e cila lejon transportin për të ofruar metoda më efikase.
- makro «@kwdef» është shtuar në API-në publike.
- Rregulloi një problem me rendin e operacioneve në "fld1".
- Renditja tani është gjithmonë e qëndrueshme me kalimin e kohës (Ridizajnuar QuickSort).
- Numri i paracaktuar i fijeve BLAS tani është i barabartë me numrin e fijeve të CPU-së në arkitekturën ARM dhe gjysmën e numrit të thread-ve të CPU-së në arkitekturat e tjera.
- Printf: Mesazhe gabimi të ripunuara për vargjet e keqformuara për lexueshmëri më të mirë.
- Profili: Funksioni i ri "Profile.take_heap_snapshot(file)" i cili shkruan një skedar në formatin ".heapsnapshot" të bazuar në JSON i mbështetur nga Chrome.
- Mbështetje e shtuar për specifikimin Unicode 15.
- Kombinimet e mbivendosura të tupave dhe tupleve të karaktereve të emërtuara tani mund të përdoren si parametra tipi.
Së fundi, nëse jeni të interesuar të dini më shumë për të, mund të konsultoheni me detajet Në lidhjen vijuese.