Dylan Graham przedstawił lekki runtime LWDR do programowania w języku D dla mikrocontrolerów z systemem czasu rzeczywistego (RTOS). Obecna wersja jest skierowana na mikrocontrolery ARM Cortex-M. Rozwój nie ma na celu pełnego wsparcia wszystkich możliwości D, ale zapewnia podstawowe narzędzia. Przydział pamięci odbywa się ręcznie (new / delete), zbieracz śmieci nie jest zaimplementowany, ale istnieje szereg haków do wykorzystania narzędzi RTOS.
W przedstawionej wersji obsługiwane są:
- przydzielanie i niszczenie instancji klas i stert dla struktur;
- inwarianty;
- assert-y;
- kontrakty, podstawowe narzędzia RTTI (dzięki narzędziom Typeinfo);
- interfejsy;
- funkcje wirtualne;
- klasy abstrakcyjne i statyczne;
- tablice statyczne;
- przydzielanie, zwalnianie i zmiana rozmiaru dynamicznych tablic;
- dodawanie elementów do dynamicznej tablicy i konkatenacja dynamicznych tablic.
W statusie eksperymentalnych możliwości: wyjątki i Throwables (ponieważ wymagają wsparcia zbieracza śmieci).
Nie zaimplementowano:
- konstruktory i destruktory modułów;
- ModuleInfo;
- lokalne zmienne wątku (TLS);
- delegaty i zamknięcia;
- tablice asocjacyjne;
- udzielane i synchronizowane dane;
- obiekty haszowane.
Źródło: opennet.ru
