On Tuesday, 12 November 2013 at 05:49:23 UTC, Andrei Alexandrescu
wrote:
On 11/11/13 5:53 PM, Chad Joan wrote:
What would you suggest as an alternative for targeting
disparate
hardware like microcontrollers (ALL of them), newly released
game
consoles, and legacy platforms that could use D for migration
tools
(like OpenVMS on IA64)?
Oh, and I want instantaneous release times. I need to be able
to stick
the compiler on a machine it has NEVER seen and say, "Use POSIX
libraries to fulfill Phobos' deps. Use reference counting.
DO WORK!".
Or maybe I would say, "Ditch Phobos, we in da sticks. Use
reference
counting. GOGOGO!" And I want to be running my D program 5
minutes later.
Let me initially dismiss these:
LLVM: not /everywhere/ yet, and missing on many of the targets
I mentioned.
C--: also not everywhere; this is the first I've heard of it.
Java/Javascript/.NET: Actually also good backends, but a
different
ecosystems.
Thus, I suggest that C is an AWESOME backend (with C++ for
exceptions,
but ONLY if it's available). Destroy :)
Fine with me. I have no stake in this. I don't see how you
reach the conclusion that C is "awesome" given it makes
exceptions tenuous to implement. It does have the advantage of
being universally available. If that's everything you need,
sure.
Andrei
I call it "awesome" because you seem to have objections to the
whole notion, and your objections are usually very interesting.
So I'm just pulling your chain in the hopes that you bestow
insights on me :)
Honestly, I look forward to being able to implement exception
handling in C! It sounds like a fun couple coding sessions
waiting to happen. I already did it with C macros, so giving me
an entire code generator to work with might make it /too/ easy.
And it scratches an itch that current compiler's can't (well,
maybe LDC is catching up).
Perhaps this is just the difference between choosing a good IR
(which C is not) and choosing a good compilation target (where C
is needed).