ulia ist eine dynamische, hochwertige und leistungsstarke Sprache für technisches Rechnen.
Vor ein paar Tagen die Veröffentlichung der neuen Version der Programmiersprache Julia 1.9 wurde angekündigt, das Qualitäten wie hohe Leistung, Unterstützung für dynamisches Tippen und integrierte Tools für die parallele Programmierung vereint. Julias Syntax ähnelt MATLAB, wobei einige Elemente von Ruby und Lisp übernommen wurden.
Julia zeichnet sich dadurch aus, dass es sich um eine plattform- und paradigmenübergreifende Programmiersprache mit dynamischer Typisierung handelt Hochwertiges, leistungsstarkes Framework für generisches, technisches und wissenschaftliches Rechnen mit einer Syntax, die der anderer ähnlicher Computerumgebungen ähnelt.
Hauptneuigkeiten von Julia 1.9
In dieser neuen Version von Julia 1.9 werden mehrere vorgestellt Verbesserungen in der Laufzeit/Compiler, seitdem dort war Deutliche Verkürzung der Zeit bis zum ersten Durchgang. Die Paketvorkompilierung speichert jetzt den nativen Code in „pkgimage“, was bedeutet, dass der während der Vorkompilierung generierte Code nach dem Laden des Pakets nicht erneut kompiliert werden muss. Die Verwendung des pkgimages-Modus kann mit der Option „–pkgimages=no“ deaktiviert werden.
Eine weitere herausragende Änderung sind die Aufrufe mit nicht typspezifischen Argumenten können jetzt optimiert werden über Join-Split zur Injektion oder statischen Auflösung, auch wenn es mehrere verschiedene Arten von Einreichungskandidaten gibt. Dies kann die Leistung in bestimmten Situationen verbessern, in denen Objekttypen nicht vollständig statisch aufgelöst werden, indem Aufrufstellen statisch aufgelöst werden.@nospecialize-d" und vermeiden Sie eine Neukompilierung.
Einzelzeichenliterale unterstützen jetzt dieselbe Syntax wie Zeichenfolgenliterale. Diese Syntax kann ungültige UTF-8-Sequenzen darstellen, wie es der Char-Typ zulässt.
Darüber hinaus gibt es unter Linux und Windows die Option «--threads=auto» versucht nun die verfügbare Anzahl an Prozessoren zu ermitteln basierend auf der CPU-Affinität, einer Maske, die typischerweise in HPC- und Cloud-Umgebungen festgelegt wird.
Die Option wurde deaktiviert--math-mode=schnell", stattdessen empfiehlt sich die Verwendung des Makros "@fastmath", das zusätzlich zum Parameter " eine wohldefinierte Semantik aufweist–Fäden» hat jetzt das Format «Auto | N[,auto|M]», wobei M die Anzahl der zu erstellenden interaktiven Threads angibt.
Option «hinzugefügt--heap-size-hint=» um den Schwellenwert festzulegen, nach dem die aktive Speicherbereinigung beginnt. Die Größe kann in Bytes, Kilobyte (1000 KB), Megabyte (300 MB) oder Gigabyte (1,5 GB) angegeben werden.
Das „@invoke“-Makro Das in Version 1.7 eingeführte Programm ist jetzt exportiert und steht zur Verwendung zur Verfügung. Neben, Verwenden Sie nun die Methode „Core.Typeof(x)“. eher "Jedes" wenn die Typanmerkung für das Argument „x“ weggelassen wird. Dies ist erforderlich, damit als Argumente übergebene Typen korrekt verarbeitet werden.
Außerdem „Threads.@spawn“ hat jetzt das optionale erste Argument „:default“ oder „:interactive“. Eine interaktive Aufgabe erfordert eine Reaktion mit geringer Latenz und ist so konzipiert, dass sie kurz oder häufig ist. Interaktive Aufgaben werden in interaktiven Threads ausgeführt, wenn sie beim Starten von Julia angegeben werden.
Der andere Änderungen, die auffallen:
- Das Negieren der Prädikatfunktion „!f“ gibt nun eine zusammengesetzte Funktion „(!) ∘ f“ anstelle einer anonymen Funktion zurück.
- Dimensionsaufteilungsfunktionen funktionieren jetzt für mehrere Dimensionen: «everyslice“, „eachrow“ und „eachcol“ ein Objekt zurückgeben "Scheiben» Dadurch kann der Versand effizientere Methoden anbieten.
- Das Makro «@kwdef» wurde zur öffentlichen API hinzugefügt.
- Ein Problem mit der Reihenfolge der Operationen in „fld1“ wurde behoben.
- Die Sortierung ist jetzt immer über die Zeit stabil (neu gestaltetes QuickSort).
- Die Standardanzahl der BLAS-Threads entspricht jetzt der Anzahl der CPU-Threads auf der ARM-Architektur und der Hälfte der Anzahl der CPU-Threads auf anderen Architekturen.
- Printf: Fehlermeldungen für fehlerhafte Zeichenfolgen zur besseren Lesbarkeit überarbeitet.
- Profil: Neue Funktion „Profile.take_heap_snapshot(file)“, die eine Datei im JSON-basierten „.heapsnapshot“-Format schreibt, das von Chrome unterstützt wird.
- Unterstützung für die Unicode 15-Spezifikation hinzugefügt.
- Als Typparameter können nun verschachtelte Kombinationen aus Tupeln und benannten Zeichentupeln verwendet werden.
Wenn Sie mehr darüber erfahren möchten, können Sie die Details einsehen im folgenden Link.