28.11.2021

Мини-версия рантайма для программирования микроконтроллеров на D

Dylan Graham представил LWDR. Это легковесный D-рантайм для программирования на D микроконтроллеров на базе ОС реального времени. Текущая версия нацелена на ARM Cortex-M.

Разработка не ставит целью полное покрытие всех возможностей D, но предоставляет базовые средства. Распределение памяти производится вручную (new / delete), мусорщик не реализован, но имеется ряд хуков для использования средств RTOS.

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

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

В статусе экспериментальных возможностей:

  • Исключения и Throwables (так как требуют поддержку мусорщика)

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

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

Проект на GitHub

>>> LWDR (Light Weight D Runtime) for Microcontrollers v0.2.3

Источник.