January 07, 2014
Hi all,

Just wanted to share the latest news concerning ARM support.

I just had another go at fixing exception handling on ARM, and with the very, _very_ crude patch linked in https://github.com/ldc-developers/ldc/issues/489, simple instances of EH such as in the following example now behave as expected: (LLVM 3.3, ldc merge-2.064, armv7l-unknown-linux-gnueabihf)

———
void thrower() {
    throw new Exception("Hello World!");
}

void main() {
    import std.stdio;
    try {
        thrower();
    } catch (Exception e) {
        writeln(e.msg);
    }
}
———

There is still a long way to go through, as evidenced by this test suite log: https://gist.github.com/klickverbot/8294261. I cancelled the build of the std.algorithm tests due to its ridiculous memory requirements (in ARM SoC terms), but note that quite a few tests are segfaulting in strange ways. Many of which turn out to be caused by remaining unwinding issues (just look at the backtrace in GDB).

I don't think I'll really have the time to resume work on this until end of January or so, but if somebody else wants to continue where I left off, I'd be glad to provide assistance. The next step I'd suggest is getting the dmd-testsuite machinery to run, so as to iron out the most critical bugs before attacking the more complex Phobos test cases.

Best,
David