Совсем недавно вышла бета-версия готовящегося к релизу LDC 0.10.0 - компилятора D, использующего LLVM для генерации машинного кода.
Решив проверить LDC на практике, я только что собрал им Atrium. Результат очень обрадовал, при компиляции в релизном режиме и с уровнем оптимизаций -O3, LDC выдал весьма шустрый код: ~100 FPS против ~80 у DMD 2.060! При этом я всего один раз столкнулся с необходимостью поправить исходники - при использовании ассоциативного массива указателей.
Как вывод: LDC вполне созрел для использовании в качестве основного компилятора D под Linux - во всяком случае, для работы с OpenGL и графикой реального времени. К сожалению, я не в курсе, как у него обстоят дела c поддержкой Windows - надеюсь, со временем этот вопрос устаканится.
Решив проверить LDC на практике, я только что собрал им Atrium. Результат очень обрадовал, при компиляции в релизном режиме и с уровнем оптимизаций -O3, LDC выдал весьма шустрый код: ~100 FPS против ~80 у DMD 2.060! При этом я всего один раз столкнулся с необходимостью поправить исходники - при использовании ассоциативного массива указателей.
Как вывод: LDC вполне созрел для использовании в качестве основного компилятора D под Linux - во всяком случае, для работы с OpenGL и графикой реального времени. К сожалению, я не в курсе, как у него обстоят дела c поддержкой Windows - надеюсь, со временем этот вопрос устаканится.
Кому интересно, LDC падает на следующей конструкции:
ОтветитьУдалитьMD5Animation*[uint] animations =
[
ST_IDLE: &anim_idle,
ST_WALK: &anim_walk,
ST_JUMP: &anim_jump,
ST_FALL: &anim_fall
];
Ее пришлось заменить на
MD5Animation*[uint] animations;
animations[ST_IDLE] = &anim_idle;
animations[ST_WALK] = &anim_walk;
animations[ST_JUMP] = &anim_jump;
animations[ST_FALL] = &anim_fall;
MD5Animation - это структура, ST_IDLE и пр. - enum-константы.