Mettle 0.15.0 und 0.15.1


3

Am 31. Juli wurden die Versionen 0.15.0 und 0.15.1 veröffentlicht. Mettle — Programmiersprache mit statischer Typisierung:

  • Native Unterstützung für x86-64 (+ AVX2), AArch64, NVIDIA PTX, SPIR-V (OpenCL 2.0).

  • Eigener Linker für Windows PE.

  • Eigener Debugger auf Quellcode-Ebene:

    • Ohne externe Formate.
    • Haltepunkte, schrittweise Fehlersuche sowie das Lesen und Schreiben von Variablen in Echtzeit über —debug-hooks.
    • Ohne gdb, PDB und DWARF.
  • CUDA-Backend.

  • Ohne LLVM, virtuelle Maschine und Laufzeitumgebung.

  • Ausführung zur Kompilierungszeit: Funktionen mit dem Attribut @test werden im Interpreter des Compilers mit dem Befehl mettle test ausgeführt, ohne eine Binärdatei zu erstellen. Der Befehl mettle trace interpretiert eine Funktion und gibt eine zeilenweise Verfolgung der Werte aus. Der Befehl —pgo interpretiert die Funktion main() während des Build-Prozesses und übergibt die gemessenen Aufrufhäufigkeiten zurück an den Optimierer.

  • Prüfung von Leihgaben (borrow checker):

    BeschreibungBeispielÄhnlich wie Rust
    Use-after-free (direkt)free(p); p[0]Ownership / Drop
    Doppeltes Freigebenfree(p); free(p)Ownership
    Use-after-free durch ein Aliasq = p; free(q); p[0]Move Semantik
    Use-after-free über einen Aufruf (abgeleitet)consume(p); p[0] wo consume p freigibtMove Semantik
    Leihgabe überlebt ihren Stack-Bereich{ var x; g = &x[0]; } use(g)Lebensdauern (‘a)
    Interior-Zeiger nach reallocq = &buf[i]; realloc(buf,..); q[0]Iterator-Invalidierung
    Interior-Zeiger nach freeq = &buf[i]; free(buf); q[0]dangling reference
    Rückgabe der Adresse eines lokalen Stack-Elementsreturn &localfn() -> &T Lebensdauermist
    Leck (kein Eigentümer auf einem Pfad)var p = malloc(n); return 0(Rust gibt über Drop frei)

Der Compiler basiert auf der Bibliothek libmtlc:

  • Eigene Zwischensprache (IR).
  • Klassische und GNN-Codeoptimierer.
  • Native Codegenerierung (x86-64 (+ AVX2), AArch64, NVIDIA PTX, SPIR-V (OpenCL 2.0)).
  • Native Linkage.

Die Projekte wurden von einem Programmierer aus Kapstadt geschrieben suidvandiewereld in C (C99-Standard) und werden unter der Lizenz Apache-2.0 vertrieben.

Quelle: linux.org.ru

Erwerben Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster