После 6 месяцев разработки доступен (http://lists.cs.uiuc.edu/pipermail/llvm-announce/2011-April/...) релиз проекта LLVM 2.9 (http://llvm.org/docs/ReleaseNotes.html) (Low Level Virtual Machine) - GCC совместимого инструментария (компиляторы, оптимизаторы и генераторы кода), компилирующего программы в промежуточный байт-код RISC подобных виртуальных инструкций (низкоуровневая виртуальная машина с многоуровневой системой оптимизации). Сгенерированный платформонезависимый псевдокод может быть преобразован при помощи JIT-компилятора в машинные инструкции непосредственно в момент выполнения программы.В версию LLVM 2.9 включены наработки с реализацией расширенных методов оптимизиации и генерации кода (в частности, задействованы новые возможности современных ARM-систем), в Clang и libc++ улучшена поддержка стандарта C++'0x, значительно расширена функциональность отладчика LLDB (http://lldb.llvm.org/). Из новшеств также можно отметить:
- В LLVM-форнтэнде Clang, улучшена ...
URL: http://llvm.org/docs/ReleaseNotes.html#whatsnew
Новость: http://www.opennet.me/opennews/art.shtml?num=30161
Как их C++ с boost-ом? Дружит?
Дружит http://blog.llvm.org/2010/05/clang-builds-boost.html
> Дружит http://blog.llvm.org/2010/05/clang-builds-boost.htmlНу что же, молодцы, молодцы. Такой задел уже вполне себе похож на что-то, что можно реально использовать.
когда я смогу скомпилировать этим ядро?
Наверное когда найдется свободнное время для этого
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2010-October/0117...
Ждешь избавления от 12309?
Смотря какое ядро, фрюшное - хоть щас.
Линукс написан с использованием GCC-специфичных особенностей. А вот FreeBSD собирается им влегкую
кто пробовал LDC для D2 - им можно пользоваться (хотяб для простых программ) ?
LDC2 проходит почти все тесты, идущие в комплекте с dmd и phobos, на linux x86 и x86_64.
припоминается баг, или ошибка, когда компилятору нужно было указывать дополнительные пути к библиотекам. Хотя в /etc/ldc.conf все было прописано. И что удивительно, на хелловорде не надо было ничего, а что-то сложнее - надо было. Не разбирался особо в чем дело.
>Unladen SwallowОн уже год как помер
Сильвия, тебе надо выпустить новую версию Wyrmtail
хм, похоже clang поддерживает Objective C 2.0 это ок, а из нормальных runtime для него только gnustep ? gui не интересуют
Есть еще Cocotron, не знаю на сколько он нормальный.
>Определение циклов аналогичных по действию функциям memset и memcpy и автоматическая замена цикла на вызов функции из libc (реализации memset и memcpy в libc как правило оптимизированы);Спорная какая-то фича.
Вот-вот. libc libc рознь, я бы предпочёл встраивание наиболее эффективного кода inplace.
а он и встраевается инплайс, вот только из libc
Мне вот непонятна следующая вещь: если компилятор LLVM компилирует в промежуточный байт-код, то как на нём вообще возможно собирать linux-ядро? Или на нём всё-таки возможна компиляция в машинные коды?
Проясните плиз, кто шарит
> Мне вот непонятна следующая вещь: если компилятор LLVM компилирует в промежуточный байт-код,
> то как на нём вообще возможно собирать linux-ядро? Или на нём
> всё-таки возможна компиляция в машинные коды?
> Проясните плиз, кто шаритиз байт-кода можно выхлопнуть нативный код для целевой платформы
А можно ли при этом просто собрать на clang программу на с++, при этом слинковав её с библиотеками, которые собраны gcc? Или придётся ещё и все библиотеки тоже пересобирать?
похоже да, gcc c++ abi поддерживается судя по:Clang C++ able to parse GCC 4.2 libstdc++ and generate working code for non-trivial programs[8] and was able to compile itself
http://en.wikipedia.org/wiki/Clang#Status_history
> Определение циклов аналогичных по действию функциям memset и memcpy и автоматическая замена цикла на вызов функции из libcспасибо, не надо. если я пишу такой цикл — я знаю, зачем я его пишу и почему не зову функцию из библиотеки. что за манера вообще — делать то, что не просили? оптимизируйте код на здоровье, но зачем же левые функции вызывать при этом?
> спасибо, не надо. если я пишу такой цикл — я знаю, зачемДа, не за что. Найди ключ, отключающий это, в man-е и вставь его в свой Makefile, autoconf или куда у тебя там где, да. Проблемы-то, полблемы...
> Да, не за что. Найди ключ, отключающий это, в man-е и вставь
> его в свой Makefile, autoconf или куда у тебя там где,
> да. Проблемы-то, полблемы…конечно. потому что это должен быть геморойный opt-in, а не геморойный opt-out. а я почему-то уверен (уж пардон, лень лезть проверять), что при каком-нибудь -O2 оно превращается как раз в геморройный opt-out.