Dylan Graham heeft een lichtgewicht runtime LWDR geïntroduceerd voor programmeertaal D voor microcontrollers met een realtime besturingssysteem (RTOS). De huidige versie is gericht op ARM Cortex-M microcontrollers. De ontwikkeling is niet bedoeld om alle mogelijkheden van D volledig te dekken, maar biedt basisfunctionaliteiten. Geheugenallocatie gebeurt handmatig (new / delete), er is geen garbage collector geïmplementeerd, maar er zijn verschillende hooks voor het gebruik van RTOS-functionaliteiten.
In de gepresenteerde versie zijn de volgende functies ondersteund:
- allocatie en destructie van klasse-instanties en heaps voor structuren;
- invarianten;
- asserties;
- contracten, basisfunctionaliteiten RTTI (via Typeinfo-middelen);
- interfaces;
- virtuele functies;
- abstracte en statische klassen;
- statische arrays;
- allocatie, vrijgave en wijziging van de grootte van dynamische arrays;
- elementen toevoegen aan een dynamische array en concatenatie van dynamische arrays.
In de status van experimentele mogelijkheden: uitzonderingen en Throwables (omdat ze ondersteuning van de garbage collector vereisen).
Niet geïmplementeerd zijn:
- constructors en destructors van modules;
- ModuleInfo;
- lokale thread-variabelen (TLS);
- delegaten en closures;
- associatieve arrays;
- gedeelde en gesynchroniseerde gegevens;
- gehasheerde objecten.
Bron: opennet.ru
