<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Релиз набора компиляторов LLVM 6.0</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/113774.html</link>
    <description>После шести месяцев разработки представлен (http://lists.llvm.org/pipermail/llvm-announce/2018-March/000077.html) релиз проекта LLVM 6.0 (http://llvm.org/) (Low Level Virtual Machine) - GCC-совместимого инструментария (компиляторы, оптимизаторы и генераторы кода), компилирующего программы в промежуточный биткод RISC-подобных виртуальных инструкций (низкоуровневая виртуальная машина с многоуровневой системой оптимизации). Сгенерированный псевдокод может быть преобразован при помощи JIT-компилятора в машинные инструкции непосредственно в момент выполнения программы. &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Напомним, что в соответствии с  новой нумерацией версий (https://www.opennet.ru/opennews/art.shtml?num=45690) осуществлён уход от разделения значительных и функциональных выпусков. В каждом функциональном обновлении теперь меняется первая цифра (например, осенью состоится релиз LLVM 7.0.0). Для обеспечения совместимости с существующими системами разбора номеров версий LLVM корректирующие обновления, как и раньше приводят к увеличению третьей ц</description>

<item>
    <title>Что-то пока не фонтан этот clang/clang++ :-( (Ne01eX)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/113774.html#46</link>
    <pubDate>Fri, 16 Mar 2018 11:18:22 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; а пишем минимальный, маленький и обозримый в одно лицо компилятор, достаточный &lt;br&gt;&amp;gt; и работоспособный только на ... stage1 gcc или tinycc, достаточный для &lt;br&gt;&amp;gt; сборки stage1 gcc.&lt;br&gt;&amp;gt; И кста, твой комментатор исходил из &quot;имеем исходники gcc, которым не доверяем&quot; &lt;br&gt;&amp;gt; и совсем не отразил это (=что мы не читаем исходники и &lt;br&gt;&amp;gt; не знаем, не лежит ли хак в них) в гадальной части, &lt;br&gt;&amp;gt; типа: ...или хак находится в недоверенных исходниках, или его там нет. &lt;br&gt;&amp;gt; А у тов.Wheeller-а про _недоверие_ таки именно к исходникам gcc не было: &lt;br&gt;&amp;gt; он-то ловит &quot;самораспространяющийся хак (патченную сборку) бинарника&quot;, не _обсуждая_ &lt;br&gt;&amp;gt; хаки в исходниках. В отличие &quot;упростившего всё&quot; от комментатора Dan.&lt;br&gt;&lt;br&gt;Ладно, лирика это всё. На практике тому же gcc абсолютно всё равно какие флаги используются в stage1. Он всё равно напихает своих при конфигурации. О какой повторяемости результата stage1/stage2 вообще тогда может быть и речь?&lt;br&gt;&lt;br&gt;Короче вечером попробую повторить, собрав только базовую инфраструктуру и Си </description>
</item>

<item>
    <title>Что-то пока не фонтан этот clang/clang++ :-( (Andrey Mitrofanov)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/113774.html#45</link>
    <pubDate>Fri, 16 Mar 2018 10:23:19 GMT</pubDate>
    <description>&amp;gt;&amp;gt;    https://www.schneier.com/blog/archives/2006/01/countering_trus.html &lt;br&gt;&amp;gt;&amp;gt; //&lt;br&gt;&amp;gt;&amp;gt;    https://lists.gnu.org/archive/html/guile-user/2017-11/msg00040.html &lt;br&gt;&amp;gt; Вообще в точку попал, спасибо! По предпоследней ссылке: Там чувак (Dan) в &lt;br&gt;&amp;gt; комментах в одном абзаце всю статью рассказал (мне понравился коммент как &lt;br&gt;&amp;gt; пример лаконичности). :-) &lt;br&gt;&lt;br&gt;Самый фан в --&lt;br&gt;&lt;br&gt;&#091;I&#093;&quot; If they produce the same binary, then either they are both non malicious, or they are both malicious in the exact same way (which we are guessing is relatively unlikely since they don&apos;t share any of the same code) &quot;&#091;/I&#093; --https://www.schneier.com/blog/archives/2006/01/countering_trus.html#c37840&lt;br&gt;&lt;br&gt;-- то есть либо оба норм, либо оба прохаканы, но одинаково. Мы можем только гадать, но отметаем неудобный вариант, как ... маловероятный.&lt;br&gt;&lt;br&gt;Наука!&lt;br&gt;&lt;br&gt;Wheeler trick обходит _это_ с &quot;completely independent compilers: A and T&quot; -- независимы настолько, что одного хака в двух быть не может.&lt;br&gt;&lt;br&gt;...&lt;br&gt;У автора Mes более надёжный подход: исходим не из 2ух недов</description>
</item>

<item>
    <title>Что-то пока не фонтан этот clang/clang++ :-( (Ne01eX)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/113774.html#44</link>
    <pubDate>Fri, 16 Mar 2018 09:15:44 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; ...а вот же, например: &lt;br&gt;&amp;gt;    https://gcc.gnu.org/ml/gcc/2015-05/msg00028.html &lt;br&gt;&amp;gt;    https://gcc.gnu.org/ml/gcc-patches/2018-02/msg00973.html &lt;br&gt;&amp;gt;    https://gcc.gnu.org/ml/gcc/2014-10/msg00269.html &lt;br&gt;&amp;gt; и далее https://duckduckgo.com/?q=with+clang+bootstrap+site:gcc.gnu.org/ml&#037;2F везде. &lt;br&gt;&amp;gt; Для fun-а &lt;br&gt;&amp;gt;    https://duckduckgo.com/?q=diverse+double+compilation &lt;br&gt;&amp;gt;    https://www.schneier.com/blog/archives/2006/01/countering_trus.html &lt;br&gt;&amp;gt; // &lt;br&gt;&amp;gt;    https://lists.gnu.org/archive/html/guile-user/2017-11/msg00040.html &lt;br&gt;&lt;br&gt;Вообще в точку попал, спасибо! По предпоследней ссылке: Там чувак (Dan) в комментах в одном абзаце всю статью рассказал (мне понравился коммент как пример лаконичности). :-)&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Что-то пока не фонтан этот clang/clang++ :-( (Andrey Mitrofanov)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/113774.html#43</link>
    <pubDate>Fri, 16 Mar 2018 08:19:48 GMT</pubDate>
    <description>&amp;gt; Где-то в соседней теме какой-то умник кричал, что дескать с помощью clang &lt;br&gt;&amp;gt; можно собрать gcc. Несколько лет назад я пробовал собрать этот набор&lt;br&gt;&amp;gt;компиляторов (gcc) с помощью clang, но не взлетело.&lt;br&gt;&lt;br&gt;&quot;Обычно&quot; неродным компилятором собирают только stage1 gcc&lt;br&gt;   https://gcc.gnu.org/install/build.html&lt;br&gt;- бутстрапят из другого компилятора, а не билдят целиком.&lt;br&gt;&lt;br&gt;С т.з. банальной эрудиции, FreeBSD, собирающая базу с системным clang, _должна_ же &#091;успешно&#093; собирать gcc-&#091;67890&#093; в портах системным clang-ом. Хотя они и &quot;второй системный&quot; gcc-4.2.1 попользуют -- недорого возьмут.&lt;br&gt;&lt;br&gt;...а вот же, например:&lt;br&gt;   https://gcc.gnu.org/ml/gcc/2015-05/msg00028.html&lt;br&gt;   https://gcc.gnu.org/ml/gcc-patches/2018-02/msg00973.html&lt;br&gt;   https://gcc.gnu.org/ml/gcc/2014-10/msg00269.html&lt;br&gt;и далее https://duckduckgo.com/?q=with+clang+bootstrap+site:gcc.gnu.org/ml&#037;2F везде.&lt;br&gt;&lt;br&gt;Для fun-а&lt;br&gt;   https://duckduckgo.com/?q=diverse+double+compilation&lt;br&gt;   https://www.schneier.com/blog/archives/2006/01/countering_trus.html&lt;br&gt;//&lt;br&gt;   https://list</description>
</item>

<item>
    <title>Что-то пока не фонтан этот clang/clang++ :-( (Ne01eX)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/113774.html#42</link>
    <pubDate>Thu, 15 Mar 2018 09:45:05 GMT</pubDate>
    <description>Где-то в соседней теме какой-то умник кричал, что дескать с помощью clang можно собрать gcc. Несколько лет назад я пробовал собрать этот набор компиляторов (gcc) с помощью clang, но не взлетело. В этот раз, исключительно just for fun озадачился сборкой gcc-7.3.0 с помощью clang clang++.&lt;br&gt;&lt;br&gt;Собственно, я и не ожидал что сборка зайдёт дальше непосредственно gcc и g++, но clang не смог сделать даже это.&lt;br&gt;&lt;br&gt;Пробовал с llvm-6.0.0 на x86_64 и i586. Чуть попозже попробую ещё раз, подойдя более серъёзно (реально интересует такая возможность).&lt;br&gt;&lt;br&gt;Ну и пока что... Я, опять же, just for fun попробовал сравнить эффективность сборки (размер ELF и его производительность) gcc/g++ и clang/clang++ около 20 пакаджей (с флажками -O2 и -O3, всего по четыре каждого для двух платформ - i586 и x86_64). Чё-то всё пока не пользу clang. Опять же, - &#091;b&#093;меня слабо интересуют искусственные попугаи, мне реально интересно, где использование clang/clang++ даст хоть какой-то плюс. Пускай это будет даже +1&#037; по производительности и -1&#037; по объё</description>
</item>

<item>
    <title>Релиз набора компиляторов LLVM 6.0 (Ne01eX)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/113774.html#41</link>
    <pubDate>Thu, 15 Mar 2018 08:56:12 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; эта магия просто не для вас предназначена, а для обычного пользователя - &lt;br&gt;&amp;gt; которому нужно чтобы инструмент просто работал, собирая здесь и сейчас - &lt;br&gt;&amp;gt; и не ломался о модуль, собранный рядомстоящим компиляторами.&lt;br&gt;&amp;gt; а разработчиков, вместо билдхоста собирающих что-то даже для тестов на собственной хз &lt;br&gt;&amp;gt; как хз для чего настроенной системе - надо давить поганым давилом. &lt;br&gt;&amp;gt; (потому что дальше начинаются докеры, полная операционная система внутри пакета, и прочий &lt;br&gt;&amp;gt; мусор вида &quot;у меня на домашнем ноуте все работает, сделайте мне!&quot; &lt;br&gt;&amp;gt; ) &lt;br&gt;&amp;gt;&amp;gt; Причём даже нельзя угадать из какой именно из установленных в системе версий gcc утянет.&lt;br&gt;&amp;gt; можно. просто вы не умеете. И низачем не нужно.&lt;br&gt;&lt;br&gt;Что самое, сцуко пародоксальное, то бардак в дистрибутивах наблюдается только в RPM-based. И частично в бубунте с дебиан. И почти никак в Slackware. Другими словами, - всё зависит от вендоров. Как правило, - чем жирнее дистрибутив, тем больше хаоса. Тем нужнее LXC и.т.п.&lt;br&gt;&lt;br&gt;Впрочем, непосредственно с ком</description>
</item>

<item>
    <title>Релиз набора компиляторов LLVM 6.0 (пох)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/113774.html#40</link>
    <pubDate>Tue, 13 Mar 2018 12:20:11 GMT</pubDate>
    <description>&amp;gt; Вот я даже не представляю, как при таком поведении компилятора можно собрать что-то без помощи&lt;br&gt;&amp;gt; докера&lt;br&gt;&lt;br&gt;да в том и дело, что прекрасно соберется, и будет работать - даже если пара .o произведена не тем компилятором.&lt;br&gt;&lt;br&gt;Переносу на соседнюю машину - да, подлежать совсем не будет, потому что зависит от хз какой libgcc_s и еще аллах ведает, чего. Но пользователю - оно и  не надо. А непользователь говорит &quot;дурак я, что-ли, на своем ноуте ЭТО делать, он же греется и руки обжигает&quot;, и делает push. Там за него само все соберется и результат пришлет.&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; Впрочем, при необходимости полностью выпилить gnu-стек и докер не сильно помогает.&lt;br&gt;&lt;br&gt;а его пока и нельзя выпилить полностью - даже если кому-то повезло с платформой, и он может обойтись без gnu ld (freebsd вот - пока не может, не смотря на все старания), без прослойки совместимости в трансляторе - не обойдешься в любом случае (то есть те же gcc_s и прочее все равно притащит) - ну и было бы тогда, за что бороться?&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Релиз набора компиляторов LLVM 6.0 (Аноним)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/113774.html#39</link>
    <pubDate>Sun, 11 Mar 2018 15:20:47 GMT</pubDate>
    <description>&amp;gt; Где бы это было полезно в чистом клиентском коде, я сходу не могу придумать.&lt;br&gt;&lt;br&gt;Самый простой пример &amp;#8212; сравнение строк:&lt;br&gt;&lt;br&gt;switch (str1 &amp;lt;=&amp;gt; str2) &#123;&lt;br&gt;// ...&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;будет значительно эффективнее, чем&lt;br&gt;&lt;br&gt;if (str1 &amp;lt; str2) &#123;&lt;br&gt;    // ...&lt;br&gt;&#125; else if (str1 &amp;gt; str2) &#123;&lt;br&gt;    // ...&lt;br&gt;&#125; else &#123;&lt;br&gt;    // ...&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;Есть, конечно, функции типа strcmp(), но:&lt;br&gt;1) для неравенства строк стандарт определяет только знак возвращаемого значения, так что вариант со switch-ем отпадает (скорее мелкое неудобство, чем реальный недостаток, но всё же);&lt;br&gt;2) сишные функции не годятся для строк, не оканчивающихся на &apos;&#092;0&apos; (std::string_view и пр.), и строк, которые сами знают свою длину и могут содержать &apos;&#092;0&apos; в любом месте.&lt;br&gt;</description>
</item>

<item>
    <title>Релиз набора компиляторов LLVM 6.0 (Аноним)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/113774.html#38</link>
    <pubDate>Sun, 11 Mar 2018 09:39:12 GMT</pubDate>
    <description>&amp;gt; а разработчиков, вместо билдхоста собирающих что-то даже для тестов на собственной хз &lt;br&gt;&amp;gt; как хз для чего настроенной системе - надо давить поганым давилом. &lt;br&gt;&lt;br&gt;Вот я даже не представляю, как при таком поведении компилятора можно собрать что-то без помощи докера или аналога, позволяющего создать минимальное воспроизводимое сборочное окружение. Впрочем, при необходимости полностью выпилить gnu-стек и докер не сильно помогает.&lt;br&gt;</description>
</item>

</channel>
</rss>
