Dylan Graham ha presentato un LWDR runtime leggero per la programmazione D di microcontrollori dotati di un sistema operativo in tempo reale (RTOS). La versione attuale è rivolta ai microcontrollori ARM Cortex-M. Lo sviluppo non mira a coprire completamente tutte le funzionalità D, ma fornisce strumenti di base. L'allocazione della memoria viene eseguita manualmente (nuova/elimina), non esiste un garbage collector, ma esistono numerosi hook per l'utilizzo degli strumenti RTOS.
La versione presentata supporta:
- allocazione e distruzione di istanze di classi e heap per strutture;
- invarianti;
- afferma;
- contratti, strumenti RTTI di base (a spese di Typeinfo);
- interfacce;
- funzioni virtuali;
- classi astratte e statiche;
- array statici;
- allocare, liberare e ridimensionare gli array dinamici;
- aggiunta di elementi a un array dinamico e concatenazione di array dinamici.
Nello stato di funzionalità sperimentali: eccezioni e Throwable (poiché richiedono il supporto dello scavenger).
Non implementato:
- costruttori e distruttori di moduli;
- Informazioni sul modulo;
- variabili locali del thread (TLS);
- deleghe e chiusure;
- array associativi;
- dati condivisi e sincronizzati;
- oggetti con hash.
Fonte: opennet.ru