IWYU 0.21
Вышел релиз IWYU (или include-what-you-use), программы позволяющей находить избыточные и предлагать недостающие #include
в вашем коде на C/C++.
( читать дальше... )
>>> Подробности
Всего сообщений: 34
Вышел релиз IWYU (или include-what-you-use), программы позволяющей находить избыточные и предлагать недостающие #include
в вашем коде на C/C++.
( читать дальше... )
>>> Подробности
Вышла новая версия LLVM. Проект LLVM включает в себя оптимизатор и кодогенератор с LLVM IR во многие процессорные архитектуры, который используется многими проектами для реализации своих языков программирования, а также:
( читать дальше... )
>>> Подробности
LLVM – платформа для разработки компиляторов и тулчейнов под лицензией Apache 2.0 с исключениями.
Некоторые изменения в clang:
Теперь по умолчанию компиляция не запускается в новом процессе как раньше.
Поддерживаются концепты C++20.
Арифметика указателей в C и C++ разрешается только в пределах массивов, в соответствии со стандартами. Добавлены соответствующие проверки в Undefined Behavior Sanitizer.
Улучшена поддержка OpenCL и OpemMP 5.0.
Поведение в ряде случаев приближено к поведению GCC.
Некоторые общие изменения в LLVM:
Новые intrinsics для генерации оптимизированных векторных инструкций.
Значительно расширены возможности межпроцедурной оптимизации в экспериментальном фреймворке Attractor.
Множество улучшений в поддержке различных архитектур (AArch64, ARM, MIPS, PowerPC, SystemZ, X86, WebAssembly, RISC-V).
А также различные улучшения в libclang, clangd, clang-format, clang-tidy, Static Analyzer, LLDB.
>>> Подробности
После полугода разработки был выпущен релиз проекта LLVM 9.0 (Low Level Virtual Machine) - GCC-совместимого инструментария (компиляторы, оптимизаторы и генераторы кода), компилирующего программы в промежуточный псевдокод RISC-подобных виртуальных инструкций (виртуальная машина низкого уровня с многоуровневой системой оптимизации). У сгенерированного псевдокода есть возможность преобразования при помощи JIT-компилятора в машинные инструкции непосредственно в момент выполнения программы.
Из новых возможностей LLVM 9.0 отмечается обеспечение готовности целевой платформы RISC-V, реализация C++ для OpenCL, возможность разделить программу на динамически подгружаемые части в LLD и поддержка конструкции «asm goto», используемой в коде ядра Linux. В libc++ стал поддерживаться WASI (WebAssembly System Interface), а в LLD появилась возможность динамического связывания WebAssembly.
>>> Подробности
Zapcc — компилятор языка C++, основанный на наработках LLVM/Clang, данный компилятор отличается высокой скоростью компиляции из-за применения активного кеширования в различных этапах сборки программы. Данный компилятор может выступать в качестве замены gcc и clang, также он поддерживает интеграцию с любыми системами сборок. Исходный код был открыт под лицензией LLVM и располагается на GitHub.
Данный компилятор заметно ускоряет компиляцию C++, но для C это не настолько заметно, к примеру сборка Boost.Math производится в 10 раз быстрее чем у clang, сборка Webkit происходит в 2-4 раза быстрее, сборка Clang при помощи Zapcc выполняется в два раза быстрее, чем самим Clang.
Высокая скорость компиляции достигается применением zapccs, непосредственно выполняющего компиляцию и поддерживающего в оперативной памяти кэш компиляции, в котором между разными запусками сохраняется информация о всех этапах сборки.
>>> Подробности
После шести месяцев разработки представлен релиз проекта LLVM 5.0 (Low Level Virtual Machine) — GCC-совместимого инструментария (компиляторы, оптимизаторы и генераторы кода), компилирующего программы в промежуточный биткод RISC-подобных виртуальных инструкций (низкоуровневая виртуальная машина с многоуровневой системой оптимизации). Сгенерированный псевдокод может быть преобразован при помощи JIT-компилятора в машинные инструкции непосредственно в момент выполнения программы.
Напомним, что в соответствии с новой нумерацией версий осуществлён уход от разделения значительных и функциональных выпусков. В каждом функциональном обновлении теперь меняется первая цифра (например, весной следующего года состоится релиз LLVM 6.0.0). Для обеспечения совместимости с существующими системами разбора номеров версий LLVM корректирующие обновления, как и раньше приводят к увеличению третьей цифры (5.0.1, 5.0.2, 5.0.3).
Из новых возможностей LLVM 5.0 отмечается полная реализация стандарта C++17, поддержка сопрограмм в C++, реализация GNU-расширения для неявного скалярного преобразования в вектор, новые оптимизации и средства диагностики ошибок.
Новшества в Clang:
typedef unsigned v4i32 __attribute__((vector_size(16)));
v4i32 foo(v4i32 a) {
return a + 5;
}
class MyClass
: public X
, public Y {
};
/* line 1
* line 2
*/
namespace A {
int i;
int j;
} // namespace A
Основные новшества LLVM 5.0:
>>> Подробности
Компилятор Clang добавлен в базовую сборку OpenBSD для платформ i386 и x86_64 в качестве альтернативы GCC.
Ранее Clang поставлялся лишь для arm64.
>>> Подробности
Что нового в LLVM:
MemorySSA
, который работает быстрее и точнее, чем MemoryDependenceAnalysis
.
-flto=thin
— по сравнению с обычным LTO кодогенерация намного быстрее, а итоговый код производительнее;
-march=skylake-avx512
, активирующего поддержку соответствующих процессоров Intel.
Что нового в Clang:
-std=c++1z
;
>>> Подробности
15-го декабря 2015 команда разработчиков представила выпуск Qt Creator 3.6.0.
Данный выпуск примечателен одним большим нововведением — редактором UML-like диаграмм. Однако этот редактор все еще находится в состоянии «экспериментальной функциональности», поэтому отключен по умолчанию. Для включения необходимо проследовать в меню Help > About Plugins > ModelEditor и отметить ModelEditor. Так как данный редактор поддерживает большое количество различных типов диаграмм и стилей элементов, его документация была вынесена на отдельную веб-страничку. Поблагодарим Jochen Becher за такое замечательное расширение!
Также кодовая модель Clang получила множество улучшений. Clang Fix-its теперь доступны через меню Refactor. Теперь Qt Creator умолчанию показывает больше диагностических сообщений (отрегулировать показываемые сообщения можно в меню C++ > Code Model).
В Qt Designer появилась возможность быстро переключатся между *.ui.qml и соответствующим *.qml файлами (аналогично Switch Source/Form для Qt Widgets). В дополнение, Connection Editor и Path Editor стали доступны для opensource-edition (ранее были доступны только в коммерческой версии).
Для проектов QMake появился новый тип профиля — Profiling (Release c внешними отладочными символами). Для проектов CMake теперь (наконец) можно выбирать стандартные CMake-профили: Debug, Release, ReleaseWithDebugInfo и MinSizeRelease. На OS X добавлена возможность настраивать то, будет ли Qt Creator считать файловую систему чувствительной к регистру, или нет (Preferences > Environment > System).
Важная заметка для платформы Linux x86_32:
Начиная с выпуска 3.6, для платформы Linux x86_32 прекращена поддержка бинарных сборок на qt.io. Однако, сборка из исходных кодов все еще официально поддерживается.
>>> Подробности
После более чем года разработки, стала доступна первая бета-версия многоязыковой среды разработки KDevelop 5.0.
Новая версия примечательна следующими изменениями:
Из планов проекта также отмечается желание обеспечить поддержку языков Rust и Go. Проект с радостью примет желающих помочь в работе над поддержкой этих языков.
>>> Подробности
1 сентября состоялся очередной и долгожданный релиз инструментария LLVM.
С момента предыдущего релиза в феврале 2015 произошли следующие значительные изменения:
Замеры производительности LLVM 3.7 в сравнении с GCC доступны на Phoronix.
Ознакомиться со статистикой коммитов можно на github.
>>> Подробности
Начиная с Chrome 38, при сборке релизов для Linux разработчики стали использовать Clang вместо GCC.
Сообщается, что особых проблем (кроме невозможности запуска получившихся сборок в устаревших 32-разрядных дистрибутивах Debian) не возникло. Переход на Clang позволил сократить размер исполняемых файлов на 8% без потерь в производительности (слегка ускорился запуск браузера, в одних тестах наблюдается незначительный прирост производительности, в других — такое же незначительное ухудшение).
>>> Подробности
OpenMandriva Lx 2015 станет первым дистрибутивом Linux, перешедшим на LLVM/Clang в качестве базового компилятора. В качестве его преимуществ перед GCC были названы более быстрое развитие, более широкие возможности проверки кода и меньшие временные затраты на сборку пакетов. GCC будет оставлен дополнительным компилятором.
>>> Подробности
Спустя 6 месяцев разработки было объявлено об очередном релизе LLVM. Этот релиз включает в себя большое количество изменений. Основные изменения:
LLVM 3.4 - это результат работы невероятного числа людей работавших вместе последние 6 месяцев, но релиз был бы невозможен без нашей команды добровольцев. Благодарности Bill Wendling за его работу по выпуску релиза, а также тестерам: Arnaud A. de Grandmaison, Ben Pope, Dimitry Andric, Duncan Sands, Erik Verbruggen, Hans Wennborg, Nikola Smiljanic, Paweł Worach, Rafael Espíndola, Renato Golin, Sebastian Dreßler, Sylvestre Ledru, and Tom Stellard.
>>> Подробности
Начиная с прошлой недели GNU Compiler Collection (GCC) больше не собирается по умолчанию как часть базовой системы FreeBSD 10. Известно, что на протяжении нескольких месяцев разработчики FreeBSD, а также пользователи BSD-семейства, добивались перехода на LLVM/Clang и ограничения роли GCC.
Функциональные возможности Clang в качестве компилятора C/C++ достигли уровня GCC, а распространение под лицензией BSD делает его более привлекательным для разработчиков системы. Кроме того, показатели эффективности LLVM продолжают расти: это и более быстрая компиляция, и меньший расход памяти.
GCC останется лишь на тех архитектурах, где неприменим Clang. Желающим продолжить использование GNU Compiler Collection на своей системе необходимо будет указать опции WITH_GCC и WITH_GNUCXX в файле src.conf
В дереве HEAD FreeBSD размещен коммит, отключающий на архитектурах i386, amd64 и arm сборку gcc и libstdc++. Взамен используется clang и libc++. По всей видимости, версия 10.0 FreeBSD будет первой, в которой clang будет использоваться по умолчанию.
Исходя из сообщения, отключение сборки gcc обусловлено тем, что значительное количество портов системы теперь можно собрать с помощью clang.
GCC по-прежнему доступен для установки из портов, либо из исходных текстов системы. Включить его сборку возможно с помощью директив WITH_GCC и WITH_GNUCXX в src.conf.
>>> Подробности
Инженеры корпорации Intel сообщили о завершении работы по полной реализации поддержки OpenMP 3.1 в компиляторе С-подобных языков Clang. На текущий момент реализация успешно проходит все тесты совместимости, исходники лежат на github отдельной веткой, и уже начат процесс объединения изменений с основной веткой Clang.
OpenMP является открытым стандартом по распараллеливанию программ на C-подобных языках и языке программирования Fortran. Наличие поддержки OpenMP в компиляторе позволяет с помощью pragma-директив распараллеливать выполнение ресурсоемких вычислений в таких программах как ImageMagic, GraphicsMagic и многих других. Следует также отметить, что в июле 2013 года вышла новая версия спецификации OpenMP 4.0.
>>> Подробности
Вышел новый релиз LLVM.
В числе изменений:
Изменения в LLDB — отладчике для LLVM, используемом для скриптов и отдельных приложений:
Также достаточно много изменений в целевых архитектурах LLVM.
>>> Подробности
В прошедший вторник в список рассылки GCC попало одно письмо, вызвавшее множество ответов и даже интересное обсуждение о будущем GNU Compiler Collection, о его конечных целях и об их достижимости. В первом письме просто был задан вопрос о примерных сроках полной реализации стандарта ISO C++11. Но по мере разрастания нити Diego Novillo из Google, хорошо зарекомендовавший себя в роли разработчика GCC, даже высказал опасения, что GCC уже прошёл точку невозврата и ему грозит естественная смерть.
( читать дальше... )
>>> Подробности
Chris Lattner из Apple представил новый релиз LLVM — низкоуровневой виртуальной машины, работающей на многих архитектурах, в байткод которой могут компилироваться многие популярные языки при помощи соответствующих фронтендов.
Разработчики называют данную версию большим скачком, она разрабатывалась более 6 месяцев и содержит большое количество улучшений и новой функциональности.
Clang теперь имеет лучшую в отрасли поддержку C++11, улучшена диагностика, улучшения в C11 и Obj-C (включая поддержку «ObjC literals»). Статический анализатор Clang теперь имеет поддержку кроссфункционального анализа вместе с улучшенной поддержкой Objective-C.
LLVM 3.2 теперь включает:
>>> Подробности
следующие → |