История изменений
Исправление hateyoufeel, (текущая версия) :
Если сравнить цепочку vala -> C -> clang -> LLVM с vala -> LLVM, то во втором случае компилятор может создать более «правильный» LLVM-биткод, тогда как в первом разработчикам нужно методом проб и ошибок вылавливать патеррны на С, которые плохо оптимизируются
Как показывает опыт разработчиков GHC, такого не происходит, и C вполне можно использовать как промежуточный язык. Есть лучшие альтернативы (в том же GHC сейчас используется C-- из-за его крайней простоты), но тем не менее C в этой роли тоже неплох.
Проблема с Vala в том, что компилятор Vala не занимается никакими оптимизациями, если исходить из вот этого документа https://wiki.gnome.org/Projects/Vala/Hacking, а просто транслирует код на Vala в соответствующий код на C+GObject без каких-либо действий над ним.
Исходная версия hateyoufeel, :
Если сравнить цепочку vala -> C -> clang -> LLVM с vala -> LLVM, то во втором случае компилятор может создать более «правильный» LLVM-биткод, тогда как в первом разработчикам нужно методом проб и ошибок вылавливать патеррны на С, которые плохо оптимизируются
Как показывает опыт разработчиков GHC, такого не происходит, и C вполне можно использовать как промежуточный язык. Есть лучшие альтернативы (в том же GHC сейчас используется C--), но тем не менее C в этой роли тоже неплох.
Проблема с Vala в том, что компилятор Vala не занимается никакими оптимизациями, если исходить из вот этого документа https://wiki.gnome.org/Projects/Vala/Hacking, а просто транслирует код на Vala в соответствующий код на C+GObject без каких-либо действий над ним.