For the D language, a runtime is presented for programming microcontrollers

Dylan Graham presented a lightweight runtime LWDR for D programming of microcontrollers equipped with a real-time operating system (RTOS). The current version is aimed at ARM Cortex-M microcontrollers. The development does not aim to fully cover all D capabilities, but provides basic tools. Memory allocation is done manually (new / delete), there is no garbage collector, but there are a number of hooks for using RTOS tools.

The presented version supports:

  • allocation and destruction of class and heap instances for structures;
  • invariants;
  • asserts;
  • contracts, basic RTTI tools (at the expense of Typeinfo);
  • interfaces;
  • virtual functions;
  • abstract and static classes;
  • static arrays;
  • allocating, freeing and resizing dynamic arrays;
  • adding elements to a dynamic array and concatenating dynamic arrays.

In the status of experimental features: exceptions and Throwables (as they require scavenger support).

Not implemented:

  • module constructors and destructors;
  • ModuleInfo;
  • thread local variables (TLS);
  • delegates and closures;
  • associative arrays;
  • shared and synchronized data;
  • hashed objects.

Source: opennet.ru

Add a comment