Mettle 0.15.0 ja 0.15.1


3

31. juuli toimusid väljalasked 0.15.0 ja 0.15.1 Mettle — staatilise tüpiseerimisega süsteemse programmeerimise keele:

  • Natiivne tugi x86-64 (+ AVX2), AArch64, NVIDIA PTX, SPIR-V (OpenCL 2.0).

  • Oma linker Windows PE jaoks.

  • Oma põhjataseme debugger:

    • Ilma väliste formaatide kasutamiseta.
    • Peatumpunktid, samm-sammult tõrkeotsing ning muutuja lugemine ja kirjutamine reaalajas —debug-hooks kaudu.
    • Ilma gdb, PDB ja DWARF-ita.
  • CUDA backend.

  • Ilma LLVM, virtuaalmasina ja runtime'ita.

  • Täitmine kompileerimise etapis: funktsioonid, millel on atribuut @test, käivituvad tõlgis kommandiga mettle test, ilma binaarfaili loomata. Kommando mettle trace tõlgib ühe funktsiooni ja väljastab rida-realt jälgimise väärtustest. Kommando —pgo tõlgib main() funktsiooni kogumise etapis ja edastab mõõdetud kutsumise sagedused tagasi optimeerijale.

  • Laenude kontrollimine (borrow checker):

    KirjeldusNäideAnaloog Rustiga
    Use-after-free (otsene)free(p); p[0]omandiõigus / Drop
    Kaks korda vabastaminefree(p); free(p)omandiõigus
    Use-after-free aliasi kauduq = p; free(q); p[0]liikumise semantika
    Use-after-free funktsiooni kutsumise kaudu (järeldatud)consume(p); p[0], kus consume vabastab pliikumise semantika
    Laenamine ületab virna ulatuse{ var x; g = &x[0]; } use(g)eluead (‘a)
    Sisemine pointer pärast reallocq = &buf[i]; realloc(buf,..); q[0]iteraatori kehtetuks muutmine
    Sisemine pointer pärast vabastamistq = &buf[i]; free(buf); q[0]rippuv viide
    Kohalikule virnale adresseerimise tagastaminereturn &localfn() -> &T eluea viga
    Leek (omanikuta igal teel)var p = malloc(n); return 0(Rust vabastab läbi Drop)

Kompilaator põhineb raamatukogul libmtlc:

  • Oma vahekeel (IR).
  • Klassikalised ja GNN koodi optimeerijad.
  • Natiivne koodi genereerimine (x86-64 (+ AVX2), AArch64, NVIDIA PTX, SPIR-V (OpenCL 2.0)).
  • Natiivne sidumine.

Projektid, mille on kirjutanud Kaplinnas elav programmeerija suidvandiewereld keeles C (C99 standard) ja levitatakse litsentsi Apache-2.0 alusel.

Allikas: linux.org.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster