LWDR (Light Weight D Runtime) for Microcontrollers v0.2.3
Paulo Pinto
pjmlp at progtools.org
Sun May 30 16:33:48 UTC 2021
On Sunday, 30 May 2021 at 14:28:25 UTC, Dylan Graham wrote:
> Github: https://github.com/0dyl/LWDR
> DUB: https://code.dlang.org/packages/lwdr
>
> Hi, all!
> This is LWDR (Light Weight D Runtime) It is a ground-up
> implementation of a D runtime targeting the ARM Cortex-M
> microcontrollers and other microcontroller platforms with
> RTOSes (Real Time Operating Systems).
>
> It doesn't, and possibly may not, support all D features in
> order to make it viable for the constrained environments. For
> example, all memory allocation is manually done via `new` and
> `delete` - no GC.
>
> It works by providing a series of barebones API hooks (alloc,
> dealloc, assert, etc) (defined in `rtoslink.d`), which you must
> implement and/or point to your RTOS implementation.
>
> It can be compiled with either GDC or LDC and it is DUB
> compatible.
>
> It has so far been successfully run on a real STM32F407.
>
> LWDR currently supports the following language features:
> - Class allocations and deallocations (via new and delete)
> - Struct heap allocations and deallocations (via new and delete)
> - Invariants
> - Asserts
> - Contract programming
> - Basic RTTI (via TypeInfo stubs)
> - Interfaces
> - Static Arrays
> - Virtual functions and overrides
> - Abstract classes
> - Static classes
> - Allocation and deallocation of dynamic arrays
> - Concatenate an item to a dynamic array
> - Concatenate two dynamic arrays together
> - Dynamic array resizing
>
> The following features are experimental:
> - Exceptions and Throwables (so far are working on GDC only)
>
> Not supported:
> - Module constructors and destructors
> - ModuleInfo
> - There is no GC implementation
> - TLS (thread local static) variables
> - Delegates/closures
> - Associative arrays
> - Shared/synchronized
> - Object hashing
> - Other stuff I have forgotten :(
>
> It is beta, so expect bugs.
Great work!
More information about the Digitalmars-d-announce
mailing list