LINUX.ORG.RU

Clang


69

3

Всего сообщений: 34

libc++ теперь есть и в Debian Experimental

Группа Debian

Как результат работы, проделанной Andrej Belym в рамках Google Summer of Code, в Debian Experimental теперь есть новая реализация стандартной библиотеки C++ (libc++), разрабатываемая под эгидой llvm и лицензией MIT/UIUC. В виде deb-пакетов теперь предлагаются как разделяемые библиотеки времени выполнения (libc++abi1), так и определенные в стандарте заголовочные файлы (libc++-dev).

Библиотека libc++ доступна для использования как через clang, так и (с более длинной командной строкой) через g++.

>>> Подробности

 , ,

AEP
()

Продемонстрирован запуск openSUSE с ядром Linux, собранным при помощи Clang

Группа Ядро Linux

Разработчики openSUSE представили видеоролик, на котором продемонстрирован процесс загрузки и работы дистрибутива в графическом окружении, при использовании ядра Linux, собранного с использованием компилятора Clang вместо GCC. Сборка осуществлена с задействованием наработок проекта LLVMLinux, развиваемом при участии организации Linux Foundation с целью решения проблем со сборкой ядра в Clang и продвижения созданных патчей в upstream-проекты (ядро Linux и LLVM/Clang).

Использование компилятора Clang, распространяемого под лицензией BSD, позволяет задействовать дополнительные техники оптимизации и диагностики проблем, например, автоматизировать выявление фактов разыменования указателей и других ошибок, связанных с некорректной работой с памятью. Изначально проект LLVMLinux развивался в рамках инициативы Linaro и был ориентирован на сборку ядра для платформы ARM, но месяц назад была обеспечена поддержка архитектур x86_64 и i586.

Для упрощения формирования сборочного окружения и кросс-компиляции ядра с использованием Clang и LLVM подготовлен специальный сборочный инструментарий.

Сборка ядра для архитектур i586 и x86_64 полностью работоспособна и позволяет получать рабочие системы, что демонстрирует пример openSUSE, но официально подобные ядра пока не готовы для применения в конечных продуктах.

Дополнительно налажен ежедневный процесс сравнительного тестирования при помощи пакета Linux Test Project (LTP) свежих сборок ядра, собранных с использованием GCC и Clang.

>>> Подробности

 , , ,

Boy_from_Jungle
()

Ориентированная на LLVM стандартная библиотека C++ теперь во FreeBSD

Группа BSD

Как уже упоминалось в новостях, FreeBSD 10 отказывается от GCC в пользу CLANG.

Следующим шагом в замене компилятора по умолчанию и планомерного избавления от GPL-кода в базовой системе стала замена стандартной библиотеки C++ на libc++ — совместимой со стандартами C++0x/C++11 библиотеки из проекта CLANG. Библиотека распространяется под двойной лицензией MIT и UIUC.

На данный момент код доступен в ветке 9-STABLE и эти изменения будут доступны в следующем релизе FreeBSD 9.1.

Сообщение о состоявшейся замене библиотеки в списке рассылки freebsd-stable

>>> Новость на www.phoronix.com

 , ,

sergv
()

FreeBSD 10 отказывается от GCC в пользу CLANG

Группа BSD

Как отмечено в Q1-2012 FreeBSD Status Report, LLVM компилятор Clang стремительно замещает GCC для этой популярной BSD ОС. Разработчики заметно продвинулись в построении C++11-стека, свободного от GNU. К релизу FreeBSD 10 они планируют сделать Clang С/С++ компилятором по умолчанию, отказавшись от GCC, и получить стек разработки на C++ под лицензией BSD.

Q1-2012 FreeBSD Status Report
http://wiki.freebsd.org/BuildingFreeBSDWithClang

>>> Подробности

 , , ,

power
()

Debian: clang способен заменить gcc

Группа Open Source

Sylvestre Ledru провел эксперимент по сборке репозитория Debian с помощью компилятора clang. Вопреки ожиданиям, результаты оказались обнадеживающими:

На мой взгляд, clang уже стабилен и достаточно хорош для пересборки большинства пакетов Debian, хотя многие из них потребуют незначительных исправлений.

В ближайшие несколько лет, учитывая лучшие инструмены статического анализа кода, clang может заменить gcc/g++ как компилятор C/C++ по умолчанию в дистрибутивах Linux и BSD.

Разработчики clang продвигаются очень быстро: с версией 2.9 не собиралось 14.5% пакетов, а с 3.0 - 8.8%. Сделаны существенные шаги: chromium/chrome собираются по умолчанию с помощью clang, Xcode по умолчанию предоставляет clang, FreeBSD работает над переходом с gcc на clang и т. д.

Однако для Debian важно, чтобы clang справлялся со всеми поддерживаемыми архитектурами (11 официальных, 6 неофициальных).

Собрать не удалось 1381 пакет из 15658. Самая частая причина неудачи - более строгое следование стандартам со стороны clang.

Найденные баги будут отправлены в багтрекер Debian вместе с патчами. Автор исследования продолжит тестировать новые версии clang.

>>> Подробности

 , ,

unsigned
()

Статус готовности CLang к сборке ядра Linux

Группа Ядро Linux

В прошлом октябре был анонсирован проект по адаптации LLVM компилятора CLang к сборке ядра Linux. С тех пор прошло более полугода, и на днях разработчики опубликовали свой отчет о проделанной работе.

В целом:

  • Удалось получить работающую сборку ядер 2.6.37 и 2.6.38 (для некоторых конфигураций)
  • KVM и Xen использовать нельзя, причем последний пока даже не компилируется
  • Компилируются примерно 90% драйверов ядра, многие работают
  • Некоторые поставляемые сторонними вендорами драйвера (Broadcom, NVIDIA) работают отлично
  • Можно использовать многопроцессорные конфигурации (правда, только на x86), однако в некоторых случаях они требуют дополнительных усилий по доработке компилируемого кода

Что не работает:

  • Ассемблер для генерации кода реального режима (директивы code16gcc), поэтому, невозможно откомпилировать код начальной загрузки (для этой цели используется gas)
  • GCC-расширения языка C (некоторые работают, некоторые нет)
  • Опции генерации и оптимизации кода: -mregparm, -fcall-saved-reg, __arch_hweight*(), -pg, атрибут no_instrument_function, -fno-optimize-sibling-calls

Несмотря на возникающие трудности, разработчики полны энтузиазма. Свой проект они назвали LLL project, что расшифровывается как LLVM Linux project.

>>> Подробности

 , , license bsd, lll, , , ,

ttnl
()

Компилятор Clang теперь пригоден для сборки Linux-ядра

Группа Ядро Linux

В блоге разработчиков Clang появилась информация о том, что с помощью Clang удалось собрать работоспособное ядро Linux версии 2.6.36 с поддержкой многопроцессорных систем (SMP). Несмотря на то, что некоторые компоненты ядра пока не поддаются компиляции, это событие приближает тот момент, когда Clang превратится в полноценный аналог GCC.

Немного технической информации:

  • В качестве основного стенда использовался Macbook 5.1 на базе Intel Core 2 Duo (не стоит забывать, что разработку Clang поддерживает в первую очередь компания Apple). На этой конфигурации удалось запустить ядро с работоспособным X-сервером, а также ядро в среде Qemu
  • В качестве второго стенда использовалась microATX-платформа на базе Intel Atom. В этом случае ядро также функционировало, однако разработчики не пытались запускать X-сервер
  • В системе на базе собранного ядра компилятор успешно собирает сам себя, а также новое ядро. Разработчики докладывают об успешной работе кода, полученного в ходе четвертого цикла самосборки.

Работоспособны следующие компоненты ядра:

  • Базовый код ядра, файловые системы, поддержка шин, в том числе и PCI, ACPI
  • SMP, SMT, SysV, pThreads и POSIX IPC
  • NUMA, управление памятью и SWAP
  • Сетевой стек IPv4, за исключением IPSec
  • Некоторые драйверы и прошивки

Пока не удалось добиться работы следующих подсистем:

  • CryptoAPI, а следовательно, и SELinux, Posix ACLs, IPSec, eCrypt
  • Стека IPv6 и код Netfilter/Router из-за зависимости от CryptoAPI
  • Виртуализации (поддержки гипервизора Xen)
  • Поддержки загружаемых модулей

Разработчики намерены и дальше улучшать совместимость между Clang и GCC и добиваться сборки с помощью Clang полностью работоспособного ядра.

>>> Подробности

 , ,

frankincent
()

Сообщено о возможности clang собрать себя на платформе ARM

Группа Open Source

В рассылке clang было сообщено об успешном bootstrap'е компилятора clang на платформе ARM. Сборка производилась на Debian-ARM.

Способность clang бутстрапиться на платформе ARM делает возможным использование его не только в качестве кросскомпилятора для встраиваемых решений, но и для разворачивание полноценных систем в устройствах на базе процессора ARM.

Напомним, что clang — компилятор на базе фреймворка LLVM, развиваемый Apple и сообществом. Распространяется он под BSD лицензией.

Домашняя страница проекта

>>> Подробности

 , , , ,

vaulter
()

Dovecot переходит на CLang

Группа Open Source

Автор популярного IMAP/POP3 сервера Dovecot давно хотел перейти на CLang, но многие важные проверки на возможные ошибки не были реализованы, например проверка на корректность формата в printf() из-за этого и использовался GCC.

В последние пару дней один из разработчиков стал добавлять такие проверки. И у него это получилось лучше, чем у команды GCC.

Были проведены тесты, которые показали, что код собранный CLang работает на 7% быстрее.

Похоже, что это первый из наиболее крупных проектов, которые официально сказали что CLang/LLVM это mainstream.

>>> Оригинал

 , , ,

catap
()

LLVM 2.7

Группа Open Source

Low-Level Virtual Machine - инфраструктура компиляторов для различных языков программирования, кодогенераторов байт-кода и двоичного исполняемого кода для различных платформ.

  • Clang
    • Умеет собирать сам себя
    • Улучшена поддержка Objective-C ABI
    • Поддержка ARM для Linux и Darwin ABI
    • Множество улучшений в анализаторе кода
  • DragonEgg - плагин для gcc, заменяющий встроенные в gcc оптимизаторы и кодогенераторы аналогами от LLVM. Поддерживает C, C++, Fortran, Ada и слегка Obj-C.
  • llvm-gcc работает с gcc-4.5 и поддерживает ARM v7 NEON
  • Новый логотип
  • Ассемблер и дисассемблер машкода
  • И множество других улучшений в кодогенераторах, оптимизаторах, интерпретаторах и JIT, кодоанализаторах и поддержке ARM...

LLVM развивается силами корпорации Apple и сообщества. Исходники доступны под лицензией BSD.

>>> Подробности

 , , , , ,

shahid
()

ClangBSD самособирается - нужны тестеры

Группа BSD

Roman Divacky от имени команды ClangBSD написал сегодня в рассылку:

ClangBSD - это бранч FreeBSD, который нацелен на интегрирование clang в FreeBSD, и замену GCC как системного компилятора. Недавно, мы достигли этапа, когда clang может откомпилировать весь базовый сет FreeBSD на архитектурах i386/amd64 (включая все приложения на C++ и самого себя) и загружаемое ядро. Поэтому мы считаем, что пришло время попросить коммьюнити выполнить более широкое тестирование на i386/amd64 (вы также конечно можете помочь и с другими платформами :)).

Все желающие помочь могут воспользоваться этой инструкцией.

>>> Подробности

 , , , ,

val-amart
()

Успешный бутстрап (bootstrap) Clang

Группа Open Source

Clang наконец-то способен откомпилировать сам себя!

Сегодня Clang впервые успешно выполнил бутстрап самого себя (более 550 тысяч строк на C++). Результирующие бинарники прошли все регрессионные тесты Clang и LLVM, а Clang, откомпилированный Clang'гом смог потом откомпилировать весь LLVM и Clang снова. Получившийся Clang (третий этап) также был полностью функциональным и таким образом завершил бутстрап.

Поздравляем всех разработчиков LLVM и Clang с этим важным этапом развития их проекта!

>>> Подробности

 , , ,

val-amart
()

LLVM 2.6

Группа Open Source

Шесть месяцев усердной разработки принесли свежие плоды: релиз Low-Level Virtual Machine за номером 2.6.

  • Архитектуры
    • Серьёзно и основательно доработана кодогенерция x86-64
    • Поддержка архитектуры ARM V7 (включая Thumb2 и NEON)
    • Новые кодогенераторы для MSP430, SystemZ, и BlackFin
    • SSE 4.2
  • Новые виды оптимизации
  • Многопоточная компиляция и оптимизация кода
  • Оптимизация при линковке на ELF-архитектурах (плагин 'gold linker')
  • Clang
    • Компилятор для C и Objective-C перешёл в статус «production quality» на х86
    • По сравнению с GCC у Clang улучшены сообщения об ошибках и предупреждениях
    • Компиляция проходит в 3 раза быстрее, чем у GCC
  • Новые подпроекты:
    • compiler-rt: Compiler runtime library
    • KLEE: Symbolic Analysis & Test Case Generator
    • DragonEgg: «llvm-gcc» плагин для GCC 4.5
    • llvm-mc: фреймворк, ориентированный на операции с машкодом, в том числе ассемблер, дисассемблер и проч. Проект находится в ранней стадии.

Проект LLVM находит всё более широкое применение в самых различных областях. На данный момент:

  • Компания Apple использует LLVM для оптимизаций в OpenGL
  • Проекты Rubinius и MacRuby являются реализациями виртуальных машин языка Ruby
  • LLVM D компилятор
  • Unladen Swallow (Python)
  • Roadsend PHP compiler и многие другие

>>> Подробности

 , , ,

shahid
()

Проект FreeBSD намерен сменить GCC на LLVM+Clang

Группа BSD

В квартальном отчете проекта FreeBSD сообщается о желании заменить набор компиляторов GNU Compiler Collection на связку LLVM и Clang, в текущее время развиваемого корпорацией Apple. Сообщается, что на текущий момент новый компилятор удачно справляется с 99% пакетов, в том числе и с ядром FreeBSD на архитектурах i386 и amd64. Разработчики команды FreeBSD уже отправили более 100 багрепортов в проект Clang.

>>> Подробности

 , , ,

shahid
()