What is the state of Microcontroller support in d?
Dan Walmsley via Digitalmars-d
digitalmars-d at puremagic.com
Tue Jun 20 01:48:05 PDT 2017
On Tuesday, 20 June 2017 at 07:51:47 UTC, Mike wrote:
> On Monday, 19 June 2017 at 20:01:01 UTC, Dan Walmsley wrote:
>
>> Hi you still around, I'm starting to investigate these issues
>> and see if I can start using D in some of my embedded projects
>> at my company. I've got stuck at the hurdle of trying to use
>> minilibd with Ldc compiler, did you make progress since this
>> post?,
>
> IMO microcontroller support in D is only slightly better than
> non-existent. I tried about 2 or 3 years ago to move the ball
> forward on it, but just ran into way too many obstacles. The
> nail in the coffin for me was
> https://issues.dlang.org/show_bug.cgi?id=14758.
>
> To enumerate some of the problems (I don't have the energy for
> an exhaustive list, so these are just off the top of my head at
> the moment)
>
> 1. Compiler-runtime coupling. The compiler expects too much
> of the runtime to exist even when what it requires has no hope
> of ever being executed in the resulting binary. So, it forces
> us to implement silly hacks and stubs just to get a build.
>
> 2. The compiler adds things that aren't even needed in the
> resulting binary, and does so in a way that prevents
> --gc-sections and LTO from removing them. For some of my code,
> the binary was so large it wouldn't even fit on the
> microcontroller's flash memory.
>
> 3. Many of the veterans in the D community support the current
> dependency the runtime has on C standard library bindings,
> stating that they are required (which is not true).
> Furthermore, they want to make the problem worse by adding C++
> standard library bindings as well. I submitted pull request
> to begin moving these bindings to Deimos, and make the
> dependencies private for individual platforms' ports, but only
> encountered resistance and misunderstanding.
>
> 4. The D gatekeepers have become very averse to anything that
> would cause too much disruption, making me believe that the
> fundamental changes that are needed to make microcontroller
> programming in D a reality will never be accepted.
>
> 5. Too many pull requests sit in "purgatory" for way too long
> without any progress. I believe that trying to move my changes
> forward would be an uphill battle, and ultimately not worth the
> frustration.
>
> 6. Rust has "minimal runtime" as one of the pillars of its
> language design philosophy. You can truly pay-as-you go while
> you build your system. This is how it should be, and unless
> you're looking for a fight, you'll probably be better off
> there: http://blog.japaric.io/quickstart/. That's where I'm
> allocating my resources these days.
>
> Mike
How about creating a fork and calling it "SystemD or EmbeddedD"
just 1 compiler (LDC probably), do you think its realistic idea?
I was so hopeful for D when I saw how nice the syntax is, I saw
rust and I didn't get the same feeling, not that I wont give it a
chance, I just feel as you know embedded systems is dominated by
C and C++ and D seems closer to those than Rust.
To be fair I was impressed with the -betterC flag and that
actually looks nice I you just want a C replacement but no
classes, etc.
I have not been able to get even a minimal project to compile
when a class is introduced
`Error: Missing class declaration: TypeInfo_AssociativeArray`
Will take a look at rust, but would be keen to know if you could
be motivated by the SystemD / EmbeddedD idea?
More information about the Digitalmars-d
mailing list