Mettle 0.15.0 dhe 0.15.1


3

31 korrik u shpallĂ«n versionet 0.15.0 dhe 0.15.1 Mettle — njĂ« gjuhĂ« programimi sistemike me tipizim statik:

  • MbĂ«shtetje native pĂ«r x86-64 (+ AVX2), AArch64, NVIDIA PTX, SPIR-V (OpenCL 2.0).

  • Linker i vetĂ«pavarur pĂ«r Windows PE.

  • Debugger i vetĂ«pavarur nĂ« nivelin e kodit burimor:

    • Pa formate tĂ« jashtme.
    • Pikat e ndaljes, hap pas hapi, si dhe leximi dhe shkrimi i variablave nĂ« kohĂ« reale pĂ«rmes —debug-hooks.
    • Pa gdb, PDB dhe DWARF.
  • Backend CUDA.

  • Pa LLVM, makinĂ« virtuale dhe runtime.

  • Ekzekutimi nĂ« fazĂ«n e kompilimit: funksionet me atributin @test ekzekutohen nĂ« interpreterin e kompajlerit me komandĂ«n mettle test, pa krijuar njĂ« skedhĂ« binar. Komanda mettle trace interpreton njĂ« funksion dhe jep ndjekjen e vlerave rresht pas rreshti. Komanda —pgo interpreton funksionin main() gjatĂ« fazĂ«s sĂ« ndĂ«rtimit dhe dĂ«rgon frekuencat e matur pĂ«rsĂ«ri nĂ« optimizues.

  • Kontrolli i huazimeve (borrow checker):

    PërshkrimiShembujE ngjashme me Rust
    Përdorim pas lëshimit (direkte)free(p); p[0]pronësi / Drop
    Lëshim i dyfishtëfree(p); free(p)pronësi
    Përdorim pas lëshimit përmes një aliasiq = p; free(q); p[0]sematikë e lëvizjes
    Përdorim pas lëshimit përmes një thirrje (të inferuar)consume(p); p[0] ku consume lëshon psematikë e lëvizjes
    Huazimi qĂ« jeton mĂ« gjatĂ« se scope i stack{ var x; g = &x[0]; } use(g)jetĂ«gjatĂ«sitĂ« (‘a)
    Pointeri brendshëm pas rialokimitq = &buf[i]; realloc(buf,..); q[0]invalidimi i iteratorit
    Pointeri brendshëm pas lëshimitq = &buf[i]; free(buf); q[0]referencë që pendon
    Kthimi i adresës së një lokale në stackreturn &localfn() -> &T gabim i jetëgjatësisë
    Kërcim (pa pronar në asnjë rrugë)var p = malloc(n); return 0(Rust lëshon përmes Drop)

Kompilator i bazuar në bibliotekën libmtlc:

  • Gjuha e vetme e ndĂ«rmjetme (IR).
  • Optimizues klasikĂ« dhe GNN pĂ«r kodin.
  • Gjenerim native tĂ« kodit (x86-64 (+ AVX2), AArch64, NVIDIA PTX, SPIR-V (OpenCL 2.0)).
  • Kompozim native.

Projektet janë shkruar nga një programues në Cape Town suidvandiewereld në gjuhën C (standard C99) dhe shpërndahen sipas licencës Apache-2.0.

Burimi: linux.org.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster