Dylan Graham ha presentato un runtime leggero, LWDR, per la programmazione in D su microcontrollori dotati di sistemi operativi in tempo reale (RTOS). L'attuale versione è progettata per i microcontrollori ARM Cortex-M. Lo sviluppo non si propone di coprire tutte le funzionalità di D, ma offre strumenti di base. La gestione della memoria avviene manualmente (new / delete), il garbage collector non è implementato, ma sono disponibili alcuni hook per l'uso delle funzionalità RTOS.
Nella versione presentata sono supportati:
- l'allocazione e la distruzione di istanze di classi e heap per strutture;
- invarianti;
- assert;
- contratti, strumenti di base per RTTI (tramite Typeinfo);
- interfacce;
- funzioni virtuali;
- classi astratte e statiche;
- array statici;
- allocazione, deallocazione e ridimensionamento degli array dinamici;
- aggiunta di elementi agli array dinamici 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
