28.11.2021

Для языка D представлен runtime для программирования микроконтроллеров

Дилан Грэм (Dylan Graham) представил легковесный runtime LWDR для программирования на языке D микроконтроллеров, оснащённых ОС реального времени (RTOS). Текущая версия нацелена на микроконтроллеры ARM Cortex-M. Разработка не ставит целью полное покрытие всех возможностей D, но предоставляет базовые средства. Распределение памяти производится вручную (new / delete), сборщик мусора не реализован, но имеется ряд хуков для использования средств RTOS.

В представленной версии поддержаны:

  • выделение и разрушение экземпляров классов и кучи для структур;
  • инварианты;
  • assert-ы;
  • контракты, базовые средства RTTI (за счёт средств Typeinfo);
  • интерфейсы;
  • виртуальные функции;
  • абстрактные и статические классы;
  • статические массивы;
  • выделение, освобождение и изменение размера динамических массивов;
  • добавление элементов в динамический массив и конкатенация динамических массивов.

В статусе экспериментальных возможностей: исключения и Throwables (так как требуют поддержку мусорщика).

Не реализованы:

  • конструкторы и деструкторы модулей;
  • ModuleInfo;
  • локальные переменные потока (TLS);
  • делегаты и замыкания;
  • ассоциативные массивы;
  • разделяемые и синхронизированные данные;
  • хэшированые объекты.

Источник.