<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Facebook открыл RacerD, статический анализатор для многопото...</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/112556.html</link>
    <description>Facebook представил (https://code.facebook.com/posts/293371094514305/open-sourcing-racerd-fast-static-race-detection-at-scale/) проект RacerD (http://fbinfer.com/docs/racerd.html), в рамках которого открыты наработки по выявлению проблем, возникающих из-за одновременного выполнения кода в многопоточных программах на языке Java. RacerD интегрирован в систему статического анализа Infer (https://github.com/facebook/infer) и обеспечивает определение потенциальных ошибок в коде, использующем классы/методы, заявленные как &#064;ThreadSafe, или осуществляющем блокировки при помощи ключевого слова &quot;synchronized&quot;.&lt;br&gt;&lt;br&gt;&lt;br&gt;RacerD сконцентирован на выявлении состояний гонки (https://ru.wikipedia.org/wiki/&#037;D0&#037;A1&#037;D0&#037;BE&#037;D1&#037;81&#037;D1&#037;82&#037;D0&#037;BE&#037;D1&#037;8F&#037;D0&#037;BD&#037;D0&#037;B8&#037;D0&#037;B5_&#037;D0&#037;B3&#037;D0&#037;BE&#037;D0&#037;BD&#037;D0&#037;BA&#037;D0&#037;B8), возникающих между вызовом методов класса в разных потоках. Например, определяются ситуации, когда выполняется два одновременных обращения к переменной члена класса, не отделённой при помощи мьютекса, если в одном из обращений выполняется опер</description>

<item>
    <title>Facebook открыл RacerD, статический анализатор для многопото... (Кузнец)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/112556.html#61</link>
    <pubDate>Tue, 24 Oct 2017 19:53:21 GMT</pubDate>
    <description>P.S: Хотя, не совсем. &quot;Через чур&quot; тоже можно употреблять -- это, как раз, исконное выражение. Одно из значений &quot;Чур&quot; -- граница. Т.е. &quot;через чур&quot; это через границу. Или сверх меры. Так что, всё Ок.&lt;br&gt;</description>
</item>

<item>
    <title>Facebook открыл RacerD, статический анализатор для многопото... (Кузнец)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/112556.html#60</link>
    <pubDate>Tue, 24 Oct 2017 18:27:54 GMT</pubDate>
    <description>&amp;gt; Это всё гонка. Т.е. когда состояние обобществлённого ресурса зависит от (псевдо)случайных &lt;br&gt;&amp;gt; факторов, а не прописано логикой алгоритма.&lt;br&gt;&lt;br&gt;... Итак, резюмирую. Гонка всегда результат неверного суждения об исполнительной среде. А не порок языка. По крайней мере, в Яве.&lt;br&gt;</description>
</item>

<item>
    <title>Facebook открыл RacerD, статический анализатор для многопото... (Кузнец)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/112556.html#59</link>
    <pubDate>Tue, 24 Oct 2017 18:26:07 GMT</pubDate>
    <description>О каком коде вы говорите? Caps же -- это для тех, кто может только знакомится с Явой. Им важно помнить, что они всегда пишут многопоточную программу. Вы выше предположили, что коль проект крупный и раскрученный, то только в силу этого факта он всегда пример самых актуальных компетенций. По моему опыту, это совсем не так. Программеру нужно заботиться о хорошем коде, а не об удачном маркетологе: удачного маркетолога удаётся встретить единицам, а остальным нужно писать нормальный код.&lt;br&gt;</description>
</item>

<item>
    <title>thread safety analysis and thread sanitizer (Ivan)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/112556.html#58</link>
    <pubDate>Tue, 24 Oct 2017 12:08:22 GMT</pubDate>
    <description>&amp;gt; Насчёт макросов понял (хотя им с этого начинать надо бы - что вот так пишется на приличных плюсах, но для легаси тоже есть костыль), но есть и более серьёзные проблемы&lt;br&gt;&lt;br&gt;Я согласен. Я думаю это связано с тем, что документация писалась в 2011 году, когда C++11 был менее распространен.&lt;br&gt;&lt;br&gt;&amp;gt; 1) эти аннотации отделены от собственно кода синхронизации. То есть никто их соответствие реальному положению вещей не гарантирует.&lt;br&gt;&lt;br&gt;Я не понял, что имеется ввиду. Анализ проверяет, что при обращении к переменной вызывающий код удерживает мьютексы, указанные в аттрибуте guarded_by у этой переменной. Что значит &quot;никто их соответствие реальному положению вещей не гарантирует&quot;? Анализ как раз проверяет, что взятие мьютексов согласованно с аттрибутами guarded_by.&lt;br&gt;&lt;br&gt;Или ты имеешь ввиду, что аттрибуты guarded_by могут не соответствовать реальной логике работы программы? Ну здесь ничего не поможет. Компьютер не может знать какие данные защищены какими мьютексами.&lt;br&gt;&lt;br&gt;Даже в RacerD есть guarded_by: http://fbinfer.com/docs/infer-b</description>
</item>

<item>
    <title>Facebook открыл RacerD, статический анализатор для многопото... (Кузнец)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/112556.html#57</link>
    <pubDate>Tue, 24 Oct 2017 10:06:24 GMT</pubDate>
    <description>Да&lt;br&gt;</description>
</item>

<item>
    <title>Facebook открыл RacerD, статический анализатор для многопото... (Ordu)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/112556.html#56</link>
    <pubDate>Tue, 24 Oct 2017 06:01:15 GMT</pubDate>
    <description>чересчур&lt;br&gt;</description>
</item>

<item>
    <title>Facebook открыл RacerD, статический анализатор для многопото... (Ordu)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/112556.html#55</link>
    <pubDate>Tue, 24 Oct 2017 01:47:28 GMT</pubDate>
    <description>Может быть, я с джавой знакомился лет пятнадцать назад, через полгода потерял к ней всякий интерес, и больше никогда не возвращался. Но, что-то мне подсказывает, что, всё же, вы сейчас каким-то образом пытаетесь натянуть сову на глобус. Ну, в том смысле, что мне ни разу не приходилось сталкиваться со сколь-нибудь грамотной критикой кода, которая базировалась на использовании капса и общих представлениях об использованных инструментах. Сколь-нибудь грамотная критика всегда содержит в себе хотя бы одну цитату из кода.&lt;br&gt;</description>
</item>

<item>
    <title>thread safety analysis and thread sanitizer (Crazy Alex)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/112556.html#54</link>
    <pubDate>Mon, 23 Oct 2017 22:34:22 GMT</pubDate>
    <description>Насчёт макросов понял (хотя им с этого начинать надо бы - что вот так пишется на приличных плюсах, но для легаси тоже есть костыль), но есть и более серьёзные проблемы:&lt;br&gt;1) эти аннотации отделены от собственно кода синхронизации. То есть никто их соответствие реальному положению вещей не гарантирует.&lt;br&gt;2) необходимость заменять мьютекс своим типом.&lt;br&gt;3) необходимость вообще писать эти аннотации.&lt;br&gt;&lt;br&gt;А теперь сравните с джавой, где анализатор натравливается на стандартный, существующий код.&lt;br&gt;&lt;br&gt;А если обобщить... Я не помню ни механизма аннотирования в помощь статическим анализаторам, который бы получил повсеместное распространение. Ну, то есть вообще. Даже Страуструп свой GSL пропихнуть не смог. Почему - можно гадать, но оно так.&lt;br&gt;</description>
</item>

<item>
    <title>Facebook открыл RacerD, статический анализатор для многопото... (Кузнец)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/112556.html#53</link>
    <pubDate>Mon, 23 Oct 2017 22:27:32 GMT</pubDate>
    <description>&amp;gt; как раз по части модели памяти джава всегда была очень продвинутой. актуальную &lt;br&gt;&amp;gt; модель памяти плюсов делали в том числе опираясь на джавовую, но &lt;br&gt;&amp;gt; вот, к примеру, с OoTA-значениями так и не разобрались.&lt;br&gt;&lt;br&gt;Местами даже через чур. Особенно в отсутствии внятной документации.&lt;br&gt;</description>
</item>

</channel>
</rss>
