On Tuesday, 20 June 2017 at 22:31:15 UTC, Dan Walmsley wrote:

Mike, I was thinking if you had used memory mapped structs instead of classes you probably wouldn't have come up across the rtti bloat so hard and it although be annoying wouldn't have been a show stopper, was there a particular reason to use classes to represent the registers?

I was able to work around the problem without having to compromise on my programming by compiling to assembly, modifying the assembly with this sed hack [1], and compiling the assembly to object code. This masked the problem from me and my users, and I didn't have to change any of my code.

It's always possible to find something that will work, especially in a comprehensive language like D and a rich tools like ld, binutils, and Linux-in-general. But I can't go to my employer, colleagues, and customers with an object-oriented language, telling them they should avoid using classes or implement sed hacks in their build script, and expect to be taken seriously. It's fine to do such things for oneself, but my goal was to build a product line like Arduino around D, and I can't expect that to succeed with such blatant flaws in the language implementation. The problem should be fixed.

GDC may have fixed the problem recently with [2], but I haven't tested it. Lucia Cojocaru is (was?) also working on addressing the problem by lowering TypeInfo calls in the compiler to templates [3].

I've been meaning to test the GDC changes, but I still have a bad taste in my mouth from my last experience with D, and have trouble getting excited about it like I once was.

You seem quite determined to get this to work. With such determination I'm sure you'll find a way. I hope you succeed and find the support you need. Who knows? I may have a change of heart later and join you.

Mike

[1] - https://github.com/JinShil/stm32f42_discovery_demo/blob/master/build.d#L69
[2] - https://github.com/D-Programming-GDC/GDC/pull/456
[3] - http://dconf.org/2017/talks/cojocaru.html

Reply via email to