RFC: Pay-as-you-go, Portable D Runtime for Microcontrollers (and maybe more)

Dan Olson via Digitalmars-d digitalmars-d at puremagic.com
Mon May 4 23:39:41 PDT 2015


"Mike" <none at none.com> writes:

> Read on GitHub: https://github.com/JinShil/minimal_druntime_experiment
>
> There was recently a discussion about how we could create a portable,
> pay-as-you-go, D runtime to help bring the promise of D to
> free-standing platforms and devices with tight resource constraints
> (e.g. microcontrollers).  Thread started here:
> http://forum.dlang.org/post/mhrs4p$31id$1@digitalmars.com

This is cool stuff.  Embedded has been the bulk of my software life and
is most fun.  I see there has been a lot of discussion that I'll have to
read up on before I say much more though.

> * the newlib C library

newlib has treated me well in the past, especially being so highly
customizable.  I think it is a good choice.  It would be fun to rewrite
it in D, but that perhaps is much work for little immediate benefit.

>
> Plea to Compiler Implementers
> ***********************************
> We need better control over codegen.  TypeInfo and dead-code removal
> is preventing me from making progress
> (http://forum.dlang.org/post/quemhwpgijwmqtpxukiv@forum.dlang.org). I've
> resorted to compiling to assembly, using sed to hack the assembly, and
> then compiling the assembly.  Things like that make me want to not use
> D at all.

Yeah, this should be improved.

How about a -disable-tls option so that when there are no threads and
thus no TLS, you can compile exising D code as-is.  Otherwise you have
to rewrite normal variables to __gshared everywhere (I actually have this
option in a ldc fork).

> LDC Folks:  https://github.com/ldc-developers/ldc/issues/781 is
> currently preventing me from supporting LDC with this runtime.

I looked at this and found a workaround and noted it in the above issue
link.
-- 
Dan Olson


More information about the Digitalmars-d mailing list