ulia yra dinamiška, aukšto lygio, didelio našumo kalba, skirta techniniams skaičiavimams.
Prieš kelias dienas buvo paskelbta apie naujos programavimo kalbos „Julia 1.9“ versijos išleidimą . Joje suderintos tokios funkcijos kaip didelis našumas, dinaminio tipizavimo palaikymas ir integruoti lygiagretaus programavimo įrankiai. „Julia“ sintaksė panaši į MATLAB, kai kurie elementai pasiskolinti iš „Ruby“ ir „Lisp“.
„Julia“ išsiskiria kaip aukšto lygio, naši, daugiaplatformė, daugiaparadigminė, dinamiškai tipizuota programavimo kalba, skirta bendriesiems, techniniams ir moksliniams skaičiavimams, kurios sintaksė panaši į kitų panašių skaičiavimo aplinkų.
Pagrindinės Julijos naujienos 1.9
Šioje naujoje „Julia 1.9“ versijoje yra keletas vykdymo laiko / kompiliatoriaus patobulinimų, įskaitant žymiai sutrumpintą laiką iki pirmojo vykdymo. Paketų išankstinis kompiliavimas dabar išsaugo natyvųjį kodą faile „pkgimage“, o tai reiškia, kad išankstinio kompiliavimo metu sugeneruoto kodo nereikės iš naujo kompiliuoti įkėlus paketą. „pkgimages“ režimo naudojimą galima išjungti naudojant parinktį „--pkgimages=no“.
Kitas pastebimas pakeitimas yra tas, kad iškvietimus su netipui būdingais argumentais dabar galima optimizuoti naudojant sąjungos skaidymą injekcijai arba statiniam sprendimui, net jei yra keli skirtingi pateikimo kandidatų tipai. Tai gali pagerinti našumą tam tikrose situacijose, kai objektų tipai nėra visiškai išsprendžiami statiškai, statiškai išsprendžiant „ @nospecialize-d“ iškvietimų vietas ir išvengiant pakartotinio kompiliavimo.
Vieno simbolio literalai dabar palaiko tą pačią sintaksę kaip ir eilučių literalai; ši sintaksė gali reikšti netinkamas UTF-8 sekas, kaip leidžia Char tipo.
Be to, „Linux“ ir „Windows“ sistemose parinktis „ --threads=auto “ dabar bando nustatyti galimą procesorių skaičių pagal procesoriaus afinitetą, kuris yra kaukė, paprastai nustatoma HPC ir debesijos aplinkose.
Parinktis „ --math-mode=fast “ buvo išjungta , todėl rekomenduojama naudoti makrokomandą „ @fastmath “ , kuri turi tiksliai apibrėžtą semantiką. Be to, parametras „ --threads “ dabar turi formatą „auto | N[,auto|M]“ , kur M nurodo sukurtų interaktyvių gijų skaičių.
Pridėta parinktis „ –heap-size-hint=<dydis> “ , skirta nustatyti ribą, po kurios pradedamas aktyvus šiukšlių surinkimas. Dydį galima nurodyti baitais, kilobaitais (1000 KB), megabaitais (300 MB) arba gigabaitais (1,5 GB).
Makrokomanda „@invoke“ , pristatyta 1.7 versijoje, dabar eksportuojama ir yra paruošta naudoti. Be to, dabar, kai argumento „x“ tipo anotacija praleidžiama , vietoj „ Any “ naudojamas metodas „Core.Typeof(x)“ . Tai būtina, kad argumentais perduoti tipai būtų apdoroti teisingai.
Be to, `Threads.@spawn` dabar turi pasirenkamą pirmąjį argumentą – `:default` arba `:interactive`. Interaktyviai užduočiai reikalingas mažo delsos atsakas ir ji sukurta taip, kad būtų trumpa arba vykdoma dažnai. Interaktyvios užduotys bus vykdomos interaktyviuose gijose, jei tai bus nurodyta paleidžiant Julia.
Kiti svarbūs pakeitimai:
- Neigiant predikato funkciją „!f“, vietoj anoniminės funkcijos grąžinama sudėtinė funkcija „(!) ∘ f“.
- Matmenų padalijimo funkcijos dabar veikia su keliais matmenimis: «kiekvienas gabalas“, „kiekviena eilė“ ir „kiekviena eilė“ grąžinti objektą"Griežinėliai» kuri leidžia pristatyti efektyvesnius būdus.
- Makro“@kwdef» buvo pridėtas prie viešosios API.
- Ištaisyta „fld1“ operacijų tvarkos problema.
- Dabar rūšiavimas visada stabilus laikui bėgant (perkurtas QuickSort).
- Numatytasis BLAS gijų skaičius dabar yra lygus CPU gijų skaičiui ARM architektūroje ir pusei procesoriaus gijų skaičiaus kitose architektūrose.
- Printf: Perdaryti klaidų pranešimai dėl netinkamai suformuotų eilučių, kad būtų geriau skaitoma.
- Profilis: nauja funkcija „Profile.take_heap_snapshot(file)“, kuri įrašo failą JSON pagrindu „.heapsnapshot“ formatu, kurį palaiko „Chrome“.
- Pridėtas Unicode 15 specifikacijos palaikymas.
- Dabar kaip tipo parametrus galima naudoti įdėtas eilutes ir pavadintas simbolių eilutes.
Galiausiai, jei norite sužinoti daugiau, išsamią informaciją galite rasti šioje nuorodoje.