<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Релиз компилятора PCC 1.0.0, распространяемого под лицензией...</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/76044.html</link>
    <description>Андрес Магнуссон (Anders Magnusson) представил (http://marc.info/?l=pcc-list&amp;m=130167083618322&amp;w=2) первый стабильный релиз  компилятора PCC 1.0.0 (http://pcc.ludd.ltu.se/) (Portable C Compiler), развиваемого с целью создания альтернативы Си-компилятора из состава GCC, распространяемой (ftp://pcc.ludd.ltu.se/pub/pcc-releases/) под лицензией BSD. PCC достиг стабильного состояния при работе на платформах i386 и amd64 в различных ОС, включая BSD-системы, большинство Linux-дистрибутивов, а также Microsoft Windows. Поддержка остальных аппаратных платформ еще недостаточно отлажена и может содержать ошибки и недоработки. Следом за версией 1.0.0 в недалёком будущем будет выпущено несколько корректирующих релизов, после чего ожидается версия 1.1 с реализацией более серьезных изменений.&lt;br&gt;&lt;br&gt;На данный момент PCC может быть использован (http://bsdfund.org/projects/pcc/) для сборки большинства составляющих базовой системы FreeBSD (http://www.opennet.ru/opennews/art.shtml?num=29433), NetBSD (http://ww...&lt;br&gt;&lt;br&gt;URL: http://marc.in</description>

<item>
    <title>Релиз компилятора PCC 1.0.0, распространяемого под... (netch)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/76044.html#93</link>
    <pubDate>Tue, 12 Apr 2011 07:25:05 GMT</pubDate>
    <description>&amp;gt; И второй случай из недавнего читалка TSC-регистра (а-ля команда RDTSC) дабы сэкономить &lt;br&gt;&amp;gt; пару байт ( функция как раз кончалась на этой ассемблерной вставке) &lt;br&gt;&amp;gt; эпилог функции был перенесен мною в эту самую многострадальную __asm__ volatile(), &lt;br&gt;&amp;gt; с -O0 все прекрасно, даже с просто -O Segmentation Fault. Как &lt;br&gt;&amp;gt; мне кажется GCC делает оптимизацию работы со стеком и мой выкрутас &lt;br&gt;&amp;gt; поломал логику оптимимзатора ( хотя не должен был) и я получил &lt;br&gt;&amp;gt; SegFault.&lt;br&gt;&lt;br&gt;Эпилог - да, делать точно не стоило.&lt;br&gt;Просто описать команду и результаты.&lt;br&gt;</description>
</item>

<item>
    <title>Релиз компилятора PCC 1.0.0, распространяемого под... (ImPressed)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/76044.html#92</link>
    <pubDate>Tue, 12 Apr 2011 06:39:16 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Ваши бы слова да богу в уши=). Иногда без инлайнового ассемблера просто &lt;br&gt;&amp;gt;&amp;gt; не обойтись, вот и приходится изощряться.&lt;br&gt;&amp;gt; в отдельную либу, её с -O0, не забыть пояснить компилятору, какие регистры &lt;br&gt;&amp;gt; дохлые.&lt;br&gt;&amp;gt; кстати, а можно поинтересоваться: зачем инлайн-асм? именно вот вмонтированый в сишный исходник &lt;br&gt;&amp;gt; асм мне &amp;#8212; дай демона памяти &amp;#8212; за 10+ лет ни &lt;br&gt;&amp;gt; разу не понадобился. вообще, могу вспомнить только случаи конверсии бэкбуфера в &lt;br&gt;&amp;gt; разный BPP да софтварного текстуризатора &amp;#8212; там пришлось асм делать.&lt;br&gt;&lt;br&gt;Была задачка надо было с MSR-регистрами работать с юзерленда. Отдельную либу городить - муторно, а пару __asm__ volatile () втыкнуть в код функции много проблем не доставляло.&lt;br&gt;И второй случай из недавнего читалка TSC-регистра (а-ля команда RDTSC) дабы сэкономить пару байт ( функция как раз кончалась на этой ассемблерной вставке) эпилог функции был перенесен мною в эту самую многострадальную __asm__ volatile(), с -O0 все прекрасно, даже с просто -O Segmentation Fault. Как мне кажется G</description>
</item>

<item>
    <title>Релиз компилятора PCC 1.0.0, распространяемого под... (anonymous)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/76044.html#91</link>
    <pubDate>Tue, 12 Apr 2011 06:31:29 GMT</pubDate>
    <description>&amp;gt; Ваши бы слова да богу в уши=). Иногда без инлайнового ассемблера просто &lt;br&gt;&amp;gt; не обойтись, вот и приходится изощряться.&lt;br&gt;&lt;br&gt;в отдельную либу, её с -O0, не забыть пояснить компилятору, какие регистры дохлые.&lt;br&gt;&lt;br&gt;кстати, а можно поинтересоваться: зачем инлайн-асм? именно вот вмонтированый в сишный исходник асм мне &amp;#8212; дай демона памяти &amp;#8212; за 10+ лет ни разу не понадобился. вообще, могу вспомнить только случаи конверсии бэкбуфера в разный BPP да софтварного текстуризатора &amp;#8212; там пришлось асм делать.&lt;br&gt;</description>
</item>

<item>
    <title>Релиз компилятора PCC 1.0.0, распространяемого под... (ImPressed)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/76044.html#90</link>
    <pubDate>Tue, 12 Apr 2011 05:39:40 GMT</pubDate>
    <description>&amp;gt;&amp;gt; такие грабли с -O0 код работает, даем -O2 в надежде выиграть &lt;br&gt;&amp;gt;&amp;gt; пару &#037; производительности, но при этом получаем SIGSEGV сразу же после старта).&lt;br&gt;&amp;gt; а что на это говорят -Wall и valgrind?&lt;br&gt;&amp;gt;&amp;gt; Наиболее часто бинарники валятся после борки с оптимизацией, если в коде были ассемблерные вставки.&lt;br&gt;&amp;gt; удивительно, не так ли? а не надо их писать, если не знаешь, &lt;br&gt;&amp;gt; какой код компилятор нагенерит.&lt;br&gt;&lt;br&gt;Ваши бы слова да богу в уши=). Иногда без инлайнового ассемблера просто не обойтись, вот и приходится изощряться.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Релиз компилятора PCC 1.0.0, распространяемого под лицензией... (ImPressed)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/76044.html#89</link>
    <pubDate>Tue, 12 Apr 2011 05:36:36 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; Ты тоже оптимист. Есть широко известный глюк gcc 2.9* при сборке squid &lt;br&gt;&amp;gt; при -O1 или -O3, но не -O2 :) &lt;br&gt;&amp;gt; Вообще отношение к оптимизациям у  gcc некорректное. Во-первых, хотя info говорит, &lt;br&gt;&amp;gt; что эти уровни разлагаются на кучу отдельных параметров, в коде дофига &lt;br&gt;&amp;gt; прямых проверок типа if (optimize &amp;gt; 0). Во-вторых, при -O1 уже &lt;br&gt;&amp;gt; уезжают номера строк, а при -O0 может генерироваться 10 команд с &lt;br&gt;&amp;gt; пинг-понгом между регистрами, запись в стек и вычитка записанного обратно, и &lt;br&gt;&amp;gt; т.д.; в результате код дико неэффективен. Правильного же промежуточного уровня - &lt;br&gt;&amp;gt; какие угодно оптимизации, но в пределах отрезка кода между двумя sequence &lt;br&gt;&amp;gt; point - там нет.&lt;br&gt;&lt;br&gt;Согласен, оптимизатор в GCC иногда настолько суров и беспощаден, что бинарь после компиляции валится в кору, особенно если со всякими -ffast-math -O3 -funroll-all-loops -falign-* перемудрить. &lt;br&gt;</description>
</item>

<item>
    <title>Релиз компилятора PCC 1.0.0, распространяемого под лицензией... (netch)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/76044.html#88</link>
    <pubDate>Tue, 12 Apr 2011 05:31:20 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Поставил убунту на самособраное ядро с -O3. Как видишь вся ок. ЧАДНТ?&lt;br&gt;&amp;gt; &quot;Если вам кажется что дела идут хорошо, значит вы просто чего-то не &lt;br&gt;&amp;gt; заметили&quot; (законы Мерфи). Как-то так исторически лично я натыкался на глюки &lt;br&gt;&amp;gt; после юзания -O3 у гцц. При том порой - на редкие &lt;br&gt;&amp;gt; и трудноуловимые. Оно, конечно, можно - всяких флагов навинтить. Только потом &lt;br&gt;&amp;gt; придется мозг ломать - чьи глюки: программы или компилятора. Заведомо стабильные &lt;br&gt;&amp;gt; оптимизации идут в -O2, а то что выше - на свой &lt;br&gt;&amp;gt; зад уже ;). Кстати данный тезис и бсдунов вполне касается - &lt;br&gt;&amp;gt; если они думают что баги есть только в GCC - они &lt;br&gt;&amp;gt; это, оптимисты-идеалисты, видимо :) &lt;br&gt;&lt;br&gt;Ты тоже оптимист. Есть широко известный глюк gcc 2.9* при сборке squid при -O1 или -O3, но не -O2 :)&lt;br&gt;&lt;br&gt;Вообще отношение к оптимизациям у  gcc некорректное. Во-первых, хотя info говорит, что эти уровни разлагаются на кучу отдельных параметров, в коде дофига прямых проверок типа if (optimize &amp;gt; 0). Во-вторых, при -O1 уже уезжают номера строк, а при -O0 может генериро</description>
</item>

<item>
    <title>Релиз компилятора PCC 1.0.0, распространяемого под лицензией... (netch)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/76044.html#87</link>
    <pubDate>Tue, 12 Apr 2011 05:27:24 GMT</pubDate>
    <description>&amp;gt; Зачем сейчас ещё один компилятор С на С? Уже десять раз бы &lt;br&gt;&amp;gt; обогнали всех по качеству генерируемого бинарника, если бы на джаваскрипте писали &lt;br&gt;&amp;gt; или схеме.&lt;br&gt;&lt;br&gt;1. На Javascript - точно не обогнали бы. А какая-то специфическая форма LISP у gcc внутрях, используется на всю катушку, но супер-достижений не видно. Просто почти оптимум.&lt;br&gt;2. Независимая простая реализация в качестве контрольной - обязательная штука в сложных системах. Как-то даже для сравнительно простой криптографии я писал 4 реализации: C/OpenSSL, C/GnuTLS, Python и Erlang. Зато в результате я смог каждому участнику дать все 4 и сказать &quot;вот канонический набор реализаций, сдирай код сколько угодно, но твоя реализация должна давать идентичный результат&quot;. А компиляторы диагностировать обычно сложнее криптографии.&lt;br&gt;</description>
</item>

<item>
    <title>Релиз компилятора PCC 1.0.0, распространяемого под лицензией... (netch)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/76044.html#86</link>
    <pubDate>Tue, 12 Apr 2011 05:18:51 GMT</pubDate>
    <description>&amp;gt; Исходный код FreeBSD написан на ISO-стандартном языке. Коммит gcc&apos;измов запрещён.&lt;br&gt;&lt;br&gt;Ну, честно говоря, это не совсем так, есть явные исключения - встроенный ассемблер, разнообразные __attribute__(). Именно поэтому основным путём сейчас рассматривается переход на clang (который старается уметь все расширения gcc), а не pcc, хотя весь userland стараются прогнать через другие компиляторы (и icc, и pcc, и TenDRA...) чтобы получить оценку проблем конкретных кусков.&lt;br&gt;Но это те gcc&apos;измы, которые &quot;неизбежное зло&quot;.&lt;br&gt;</description>
</item>

<item>
    <title>Релиз компилятора PCC 1.0.0, распространяемого под лицензией... (iZEN)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/76044.html#84</link>
    <pubDate>Wed, 06 Apr 2011 21:12:39 GMT</pubDate>
    <description>Обновился порт lang/pcc на FreeBSD: http://www.freshports.org/lang/pcc/&lt;br&gt;</description>
</item>

</channel>
</rss>
