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