Dylan Graham ha presentato un runtime leggero LWDR per la programmazione in linguaggio D per microcontrollori dotati di sistema operativo in tempo reale (RTOS). L'attuale versione è focalizzata sui microcontrollori ARM Cortex-M. Lo sviluppo non mira a coprire completamente tutte le funzionalità di D, ma fornisce strumenti di base. L'allocazione della memoria è effettuata manualmente (new / delete), il garbage collector non è implementato, ma ci sono alcuni hook per sfruttare gli strumenti RTOS.
Nella versione presentata sono supportati:
- allocazione e deallocazione di istanze di classi e heap per strutture;
- invarianti;
- assert;
- contratti, strumenti di base RTTI (grazie agli strumenti Typeinfo);
- interfacce;
- funzioni virtuali;
- classi astratte e statiche;
- array statici;
- allocazione, deallocazione e modifica delle dimensioni degli array dinamici;
- aggiunta di elementi a un array dinamico e concatenazione di array dinamici.
In fase di sperimentazione: eccezioni e Throwables (in quanto richiedono il supporto del garbage collector).
Non implementati:
- costruttori e distruttori di moduli;
- ModuleInfo;
- variabili locali di thread (TLS);
- delegati e chiusure;
- array associativi;
- dati condivisi e sincronizzati;
- oggetti hashati.
Fonte: opennet.ru
