LINUX.ORG.RU

C


344

5

Всего сообщений: 3225

См. также:

 , , , , , , , ,

Синонимы:

 си

Mettle 0.15.0 и 0.15.1

 , mettle, ,

Группа Разработка

31 июля состоялись выпуски 0.15.0 и 0.15.1 Mettle — языка системного программирования со статической типизацией:

  • Нативная поддержка x86-64 (+ AVX2), AArch64, NVIDIA PTX, SPIR-V (OpenCL 2.0).

  • Собственный линкер для Windows PE.

  • Собственный отладчик на уровне исходного кода:

    • Без внешних форматов.
    • Точки останова, пошаговая отладка, а также чтение и запись переменных в реальном времени через --debug-hooks.
    • Без gdb, PDB и DWARF.
  • Бэкенд CUDA.

  • Без LLVM, виртуальной машины и рантайма.

  • Выполнение на этапе компиляции: функции с атрибутом @test запускаются в интерпретаторе компилятора командой mettle test, без создания бинарного файла. Команда mettle trace интерпретирует одну функцию и выводит построчное отслеживание значений. Команда --pgo интерпретирует функцию main() на этапе сборки и передаёт измеренные частоты вызовов обратно в оптимизатор.

  • Проверка заимствований (borrow checker):

    ОписаниеПримерАналог Rust
    Use-after-free (direct)free(p); p[0]ownership / Drop
    Double freefree(p); free(p)ownership
    Use-after-free through an aliasq = p; free(q); p[0]move semantics
    Use-after-free across a call (inferred)consume(p); p[0] where consume frees pmove semantics
    Borrow outliving its stack scope{ var x; g = &x[0]; } use(g)lifetimes ('a)
    Interior pointer after reallocq = &buf[i]; realloc(buf,..); q[0]iterator invalidation
    Interior pointer after freeq = &buf[i]; free(buf); q[0]dangling reference
    Returning the address of a stack localreturn &localfn() -> &T lifetime error
    Leak (no owner on any path)var p = malloc(n); return 0(Rust frees via Drop)

Компилятор основан на библиотеке libmtlc:

  • Собственный промежуточный язык (IR).
  • Классические и GNN оптимизаторы кода.
  • Нативная генерация кода (x86-64 (+ AVX2), AArch64, NVIDIA PTX, SPIR-V (OpenCL 2.0)).
  • Нативная компоновка.

Проекты написаны кейптаунским программистом suidvandiewereld на языке C (стандарт C99) и распространяются по лицензии Apache-2.0.

>>> Подробности на GitHub (github.com)

dataman
()

Еще новости

Вчера

Август 2026

Июль 2026

Июнь 2026

Июнь 2026

Май 2026

Опросы

Февраль 2026

2017

2017

2012

Галерея

Статьи

Май 2026

Март 2026

Февраль 2026

Форум

Август 2026

Июль 2026

Июнь 2026

Май 2026

Апрель 2026

Март 2026