From 1987b66d6f85861d1789d025d68a10934623988e Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Wed, 4 Mar 2020 22:09:16 +0300 Subject: [PATCH] =?utf8?q?GCC=20=D1=83=D0=B4=D0=B0=D0=BB=D1=91=D0=BD=20?= =?utf8?q?=D0=B8=D0=B7=20FreeBSD?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit https://www.opennet.ru/opennews/art.shtml?num=52470 С ходу я не знаю как относится к этой новости. Скорее негативно, но по мелочам. 1) Я сторонник свободного ПО, сторонник GPLv3 и мне не приятно видеть что BSD-шники не приемлют новые версии GCC из-за её лицензии. Их право. Как бы я не любил BSD мир, но то, что он весь из себя не любит GPL мне в нём сильно не нравится. 2) LLVM тупо долго ждать пока он соберётся. Раньше когда я собирал FreeBSD, то ждал в разы (как мне кажется) меньше, а сейчас наверное 80-90% всего времени я жду только сборки LLVM+Clang в составе ОС. Может быть и современные версии GCC тоже долго собираются -- если так, то тогда этот аргумент отпадает. LLVM действительно я замечал что для мультимедиа делает менее производительные сборки. Но это я замечал 5-7 лет назад. Сейчас возможно разница уже нивелирована. В любом случае я готов хоть десятки процентов падения производительности терпеть, если оно того стоит. К сожалению особо во всём этом мире C/C++ не сильно разбираюсь. Но, как минимум, видел именно в LLVM-е нормальные разукрашенные, удобочитаемые сообщения об ошибках, что даже мне, при сборке всякого софта, очень помогало. Насколько слышал, это был пинок GCC чтобы и он также удобно сделал в своих будущих версиях (что он и сделал). Я всю ОС и все пакеты собираю полностью из исходников. Буквально несколько пакетов (один это UEFI для bhyve -- его просто точно запомнил, другой это BLAS/LAPACK/что-то-такое) требуют явного использования GCC. Всё остальное -- собирается и работает без проблем с LLVM/Clang-ом. То есть, жить на LLVM можно без проблем. Да и вообще, как бы я не уважал GNU софт за качество, надёжность и производительность, но многое из GNU я даже принципиально использовать не буду: например Bash (zsh для интерактива во всём лучше, а так dash/sh), Screen (tmux однозначно лучше), tar (libarchive в FreeBSD используется в tar и спокойно делает PAX архивы, покрывая почти все потребности). Собственно сейчас у меня в системе из GNU стоят: * automake, binutils, m4 -- это для всякой сборки. Де-факто, ничего страшного. * diffutils -- честно говоря, не знаю для чего, кто-то подтянул за собой, но ничего я сам оттуда не использую. * gdbm -- тоже кто-то подтянул, почему бы и нет. * getopt, gettext -- де-факто, работает. * gmake -- к сожалению, очень многое использует GNU Make, это чуть ли не единственное что в обязательном порядке надо ставить. * gnu-watch -- это чисто я использую. Крайне редко, но штука удобная. * gnupg, gnutls -- ну тут альтернатив нет, как и нареканий. * gnugrep, gsed -- это ставлю уже я. Они работают на порядок (как минимум в разы) быстрее чем BSD аналоги. Качественно меняют работу в лучшую сторону. GNU sed не помню когда явно запускаю, а вот GNU grep каждый день постоянно в действии. * gtar -- скорее всего, кто-то тянет по зависимостям, но сам я давно не запускал его. BSD/libarchive tar достаточно хорош. -- 2.48.1