ulia is een dynamische, high-level, high-performance taal voor technisch computergebruik.
Paar dagen geleden de release van de nieuwe versie van de programmeertaal Julia 1.9 werd aangekondigd, dat kwaliteiten combineert zoals hoge prestaties, ondersteuning voor dynamisch typen en ingebouwde tools voor parallel programmeren. Julia's syntaxis ligt dicht bij MATLAB, met enkele elementen die zijn ontleend aan Ruby en Lisp.
Julia onderscheidt zich door een multi-platform en multi-paradigma programmeertaal te zijn met dynamisch typen hoogwaardig, krachtig raamwerk voor generiek, technisch en wetenschappelijk computergebruik, met een syntaxis die vergelijkbaar is met die van andere vergelijkbare computeromgevingen.
Belangrijkste nieuws van Julia 1.9
In deze nieuwe versie van Julia 1.9 die wordt gepresenteerd, zijn er verschillende verbeteringen in de runtime/compiler sinds er was Aanzienlijke verkorting van de tijd tot de eerste run. Pakketprecompilatie slaat nu de oorspronkelijke code op in "pkgimage", wat betekent dat code die tijdens precompilatie is gegenereerd niet opnieuw hoeft te worden gecompileerd na het laden van het pakket. Het gebruik van pkgimages-modus kan worden uitgeschakeld met de optie “–pkgimages=no”.
Een andere opvallende verandering zijn de aanroepen met niet-typespecifieke argumenten kunnen nu worden geoptimaliseerd via join-split voor injectie of statische resolutie, zelfs als er verschillende soorten inzendingskandidaten zijn. Dit kan de prestaties verbeteren in bepaalde situaties waarin objecttypen niet volledig statisch worden opgelost, door call-sites statisch op te lossen "@nospecialize-d" en vermijd hercompilatie.
Literals van één teken ondersteunen nu dezelfde syntaxis als letterlijke tekenreeksen; die syntaxis kan ongeldige UTF-8-reeksen vertegenwoordigen, zoals toegestaan door het Char-type.
Daarnaast, op Linux en Windows, de optie «--threads=auto» probeert nu het beschikbare aantal processors te bepalen gebaseerd op CPU-affiniteit, een masker dat doorgaans wordt ingesteld in HPC- en cloudomgevingen.
De optie is uitgeschakeld--wiskunde-modus=snel", in plaats daarvan wordt aanbevolen om de macro te gebruiken "@fastmath", die een goed gedefinieerde semantiek heeft, naast de parameter "--draden»heeft nu het formaat «auto | N[,auto|M]», waarbij M het aantal interactieve threads aangeeft dat moet worden gemaakt.
Optie toegevoegd «--heap-grootte-hint=» om de drempel in te stellen waarna actieve afvalophaling begint. De grootte kan worden opgegeven in bytes, kilobytes (1000 KB), megabytes (300 MB) of gigabytes (1,5 GB).
De "@invoke"-macro geïntroduceerd in versie 1.7 is nu geëxporteerd en beschikbaar voor gebruik. Daarnaast, gebruik nu de methode "Core.Typeof(x)". liever "Elke" wanneer de type-annotatie voor het argument "x" wordt weggelaten. Dit is vereist zodat typen die als argumenten worden doorgegeven correct worden verwerkt.
Daarnaast is "Threads.@spawn" heeft nu een optioneel eerste argument van ":default" of ":interactive". Een interactieve taak vereist een reactie met lage latentie en is ontworpen om kort of frequent te zijn. Interactieve taken worden uitgevoerd op interactieve threads als deze zijn opgegeven bij het starten van Julia.
Van de andere opvallende veranderingen:
- Negeren van de predikaatfunctie "!f" levert nu een samengestelde functie "(!) ∘ f" op in plaats van een anonieme functie.
- Functies voor het splitsen van dimensies werken nu op meerdere dimensies: «elke plak", "elke rij" en "elke col" geef een object terug "Slices» waardoor verzending efficiëntere methoden kan bieden.
- De macro «@kwdef» is toegevoegd aan de openbare API.
- Probleem opgelost met de volgorde van bewerkingen in "fld1".
- Sorteren is nu altijd stabiel in de tijd (Redesigned QuickSort).
- Het standaard aantal BLAS-threads is nu gelijk aan het aantal CPU-threads op ARM-architectuur en de helft van het aantal CPU-threads op andere architecturen.
- Printf: Herwerkte foutmeldingen voor misvormde strings voor een betere leesbaarheid.
- Profiel: Nieuwe functie "Profile.take_heap_snapshot(file)" die een bestand schrijft in JSON-gebaseerde ".heapsnapshot"-indeling die wordt ondersteund door Chrome.
- Ondersteuning toegevoegd voor de Unicode 15-specificatie.
- Geneste combinaties van tupels en benoemde karakter-tupels kunnen nu als typeparameters worden gebruikt.
Ten slotte, als u geïnteresseerd bent om er meer over te weten, kunt u de details raadplegen In de volgende link.