Dylan Graham hat eine leichtgewichtige Laufzeitumgebung (LWDR) für die Programmierung in der D-Sprache auf Mikrocontrollern mit Echtzeitbetriebssystem (RTOS) vorgestellt. Die aktuelle Version richtet sich an ARM Cortex-M Mikrocontroller. Das Projekt zielt nicht darauf ab, alle Funktionen von D vollständig abzudecken, bietet jedoch grundlegende Werkzeuge. Der Speicher wird manuell verwaltet (new / delete), ein Garbage Collector ist nicht implementiert, es gibt jedoch mehrere Hooks zur Verwendung von RTOS-Diensten.
Die präsentierte Version unterstützt:
- die Allokation und Zerstörung von Klasseninstanzen und Heaps für Strukturen;
- Invarianten;
- Assertions;
- Verträge, grundlegende RTTI-Tools (über Typeinfo);
- Schnittstellen;
- virtuelle Funktionen;
- abstrakte und statische Klassen;
- statische Arrays;
- Allokation, Freigabe und Größenänderung von dynamischen Arrays;
- Hinzufügen von Elementen zu einem dynamischen Array und Verketten von dynamischen Arrays.
Im Status experimenteller Funktionen: Ausnahmen und Throwables (da sie Unterstützung des Garbage Collectors erfordern).
Nicht implementiert:
- Konstruktoren und Destruktoren von Modulen;
- ModuleInfo;
- Thread-lokale Variablen (TLS);
- Delegaten und Closures;
- assoziative Arrays;
- geteilte und synchronisierte Daten;
- hashierte Objekte.
Quelle: opennet.ru
