Разработчики NetBSD отчитались (http://blog.netbsd.org/tnf/entry/netbsd_entering_2019_with_more) о работе по обеспечению возможности сборки с использованием компилятора Clang и библиотек, развиваемых проектом LLVM. В настоящее время buildbot (http://buildbot.net/) успешно выполняет сборку и проходит тесты для библиотек LLVM, компилятора Clang, утилит clang-tools-extra, компоновшика lld, оптимизатора polly, runtime-библиотеки OpenMP, а также библиотек libunwind, libcxxabi и libcxx. Частично реализована поддержка отладчика lldb. Из ближайших планов отмечается включение runtime compiler-rt в buildbot, портирование компоновщика LLD для формирования рабочих исполняемых файлов NetBSD, портирование компонентов DFSan, ESan, LSan и shadowcallstack.URL: http://blog.netbsd.org/tnf/entry/netbsd_entering_2019_with_more
Новость: https://www.opennet.dev/opennews/art.shtml?num=49880
Меньше gpl-a в системе, меньше проблем!
Проблемы от GPL только у голимых проприетарщиков.
Вообще-то, в приличном обществе за GPL и в морду дать могут.
Во-во. Однажды на собеседовании обломился на этом. Есть репа на гитхабе - давай досвидания.
В чем подвох-то? Латентный дивергент или слишком умный?У меня однажды сработало ровно наоборот. Но это была вакансия работы по удаленке.
С компилятором это особенно сложный вопрос. Вот повадятся какие-то проприетарщики (какой-нибудь гугель или qualcomm) собирвть что-то писать для своего проприетарно пропатченного clang/llvm, так потом проблем не оберёшься.
Проблема не в GPLе GCC, а в том, что clang - кросс-компилятор. Реализовав поддержку для него сможешь собирать хоть под вёдра, хоть под рутеры, хоть под WebAssembly, хоть под iot, хоть под видеокарты, хоть под fpga (но работать не будет).
GNU is Not Usable
А смысл? Mesa 3D всё равно зависит от отдельно устанавливаемого LLVM.LLVM — большая ошибка архитектуры, не решающая проблемы единственной системы компиляции в операционной системе (как это делает GCC), но только множащаю сущности.
Сейчас во FreeBSD, например, штатно установлены: системный компилятор LLVM/Clang 6.0.1 и порт того же LLVM/Clang 6.0.1 для Mesa 3D (графическая подсистема X.org). Также можно собрать другие версии LLVM/Clang из портов и они кому-то ещё нужны! Налицо размножение ненужных сущностей одного и того же функционального предназначения и кодовой базы. Что-то в этом не так. Неправильно это.
Ошибка архитектуры в пакетном менеджере и мейнтейнерах, которые размножаются сущностями. Я не говорю про всякие хрусты, которые включают свою собственную внутренню версию ллвм. Еще флатпаки, аппимеджи с шнапсами завезут - будет одна архитектура ошибок.
Вот только не надо грязными руками касаться FreeBSD'ишного pkg: лучше ещё найти надо. Это вам не двусущное линуховое у@бище: yum/rpm || apt/dpkg. Здесь достаточно _одного_ pkg-static...
pacman?
pkg позволяет установить пакет с метаданными (пустое значение в поле порта, например), которые потом сам не может прочитать из базы. Н - надежность.
> pkg позволяет выстрелить в ногу, установ пакет с метаданными (пустое значение в поле порта, например),
Installing (null)-6.1_5...
pkg: Invalid package: object has missing property origin
pkg: the package is not valid
Ну-ну.> которые потом сам не может прочитать из базы. Н - надежность.
Т.е. умудриться выстрелить себе в ногу - умудрился, а вот про pkg shell - не, не слышал?
Кашу маслом, как грязное руками не испортишь. Потому что нет нормальных пакетных менежеров. Более менее продвинутый язык описания пакетов и их зависимостей есть только в гентушном портаже. Но то что есть язык не означает, что он как-то полезен. Потому что разруливание зависимостей - это непростая задача, которую естественно никто не пытался решить в пакетных менеджерах. Потому проблему решают в лоб: шнапсами, ржавыми карго-культами или удалением пол-системы ради установки безобидного пакета.
Ага. А система USE-флагов какая замечательная! Заходит человек в ресторан, заказывает котлету, а официант ему: "Вы не говорили, что будете употреблять мясное и жареное". Вся суть USE-флагов в одной фразе.
И где я говорил, что портаж замечательный? А дальше разивать тему я не хочу, в виду отсутствия взаимопониания. То что у людей есть язык, не говорить от том что они умеют им пользоваться. Как и портаж.
И все превратилось в портаж - даже небо, даже Аллах!
Молодец, ты переплюнул меня в плотности использования слова "портаж" в одном сообщении.
Большая ошибка думать, что LLVM - ошибка :)
Не используй devel/llvm60, ипользуй devel/llvm70 не только для сборки mesa-*, а и для [почти] всех портов. Не это ли свобода?
Почему-то $(ls -ld /usr/ports/lang/gcc*|wc -l) = 12 тебя смущает меньше, нежели $(ls -ld /usr/ports/devel/llvm*|wc -l) = 8.
Что-то в консерватории не так, Изя...
> Большая ошибка думать, что LLVM - ошибка :)
> Не используй devel/llvm60, ипользуй devel/llvm70 не только для сборки mesa-*, а и
> для [почти] всех портов. Не это ли свобода?Я это могу. Я свободен в выборе. Но по умолчанию всё вот так по-отдельности.
> Что-то в консерватории не так, Изя...
Дело не во мне, я всё могу настроить как надо. А в самой консерватории что-то пошло не так: множатся одни и те же сущности одних и тех же версий (LLVM/Clang 6.0.1 в системе и из портов установлены параллельно).
> Дело не во мне, я всё могу настроить как надо. А в самой консерватории что-то пошло не так: множатся одни и те же
> сущности одних и тех же версий (LLVM/Clang 6.0.1 в системе и из портов установлены параллельно).А системный (базовый) разве не сильно урезанная версия, чтобы не добавлять к размеру системы чуть ли ни цельный гиг только для компилятора (тем более, последние версии LLVM несколько "разжирели")?
LLVM — большая ошибка архитектуры, не решающая проблемы единственной системы компиляции в операционной системе (как это делает GCC), но только множащаю сущности.Ну чего, как там с системным GCC покросскомпиляли?
Начнём с того, что Apple вздумали потеснить набор трансляторов GNU GCC поддержав деньгами никому ранее не известный компилятор LLVM высранный в свою очередь сотрудниками Иллинойского университета.Потом БЗДуны ни с того ни с сего приняли на ура новый компилятор. А чё лицензия GPL не нравится?
Зачем вся эта кутерьма? Есть давно для всех юниксов фактический стандарт - это коллекция компиляторов ГНУ.
> Зачем вся эта кутерьма? Есть давно для всех юниксов фактический стандарт -
> это коллекция компиляторов ГНУ.Опоздавшие родиться и не пользовавшийся GCC дошланговской эпохи знатоки опеннета всегда могут взять gcc 4.2 и сравнить выхлоп диагностики и ошибок с современными версиями. Заодно обосновать резкое улучшение в gcc только после появления шланга совершенно случайным совпадением …