Pull to refresh

Comments 23

статья «общая» но явно увидел такую структуру:
1. Нужно использовать статический анализ
2. Нужно правильно его использовать + примеры «неверных» сценариев
3. Наш анализатор лучше всех
4. У других Вам будет тяжело получить поддержку и узнать цену а мы молодцы.
5. Если хотите использовать статический анализ — идите к нам.

А теперь замечания: очень сильно пахнет рекламой. Второе, нигде не указано что этот анализатор только для Windows и только для VisualStudio. Поверьте, что сложные системы пишут не только под Windows и не только на Visual Studio. Ну и приблизительные цены бы уже указали + история успеха.
А так, лично мне кажется, что статья ни о чем. Просто крик, что вот Мы сделали очень клевый статический анализатор. Все к нам.
перевод пресс-релиза же =;)
все они по одной схеме писаны
какой пресс-релиз, о чем вы… вот он я (автор) живой, можно меня потрогать.
Статьи в которых упоминается PVS-Studio выходят чуть ли не раз в месяц. И да — я согласен с тем что это просто реклама.
Статический анализ кода — отличный инструмент, который иногда помогает в разработке, в этом спору нет.
Но вот нигде не увидел упоминаний об статическом анализаторе от LLVM+Clang.
Открытый, свободный, модульный, расширяемый, активно разрабатываемый.
Сам им пользуюсь время от времени, доволен его работой.
Скажите, зачем мне эти проприетарные анализаторы, чем они лучше?
Если убедите — буду их использовать.
У шланга (clang) есть следующие недостатки (по сравнению с «не скажу какими» анализаторами):
1. Поддержка C++ далеко не супер.
2. Поддержка C++0x даже и не близко.
3. Это GNU-style подход со всеми плюсами (кому близко) и минусами (кто живет в microsoft-мире). Как пример — интеграции в Visual Studio нет и не планируется.
4. Документация не супер.

Готов к дискуссии.
Не совсем там GNU стайл, скорее Unix, лицензия у него BSD и встроить в студию его реально.
> встроить в студию его реально

Встроить в студию != добиться запуска command line утилиты.
В xcode его прекрасно встроили. Да и в чем реально проблема?
Лучше мне другое объясните, кто плотно со шлангом работал. Что вот это за ошибка?
pastebin.org/824210
Ошибка возникает вот в таком коде
gitorious.org/qutim/qutim/blobs/master/libqutim/modulemanager.cpp
gitorious.org/qutim/qutim/blobs/master/libqutim/extensioninfo.h
>> Да и в чем реально проблема?

А, вы предлагаете его «на коленке» встроить. Ну-ну. И почему разработчики других (коммерческих) инструментов не догадались также говорить своим пользователям. Вот глупые, тратили столько времени на разработку удобной интеграции.
Я лишь говорю, что проблемы встроить нету, и можно спокойно коммерческий продукт для интеграции clang'а в студию выпускать, в отличии от gcc.
>> Что вот это за ошибка?

(скушным голосом) а разрабочики коммерческих инструментов обеспечивают поддержку…
Мне бы понять: это мы тупим или шланг
Скачал из гита… таки да тупил шланг
1) 2) C++ & C++0x нормальных анализаторов мне не доводилось встречать.
Однако не сомневаюсь что скоро поддержка этих языков в clang значительно улучшится.

3) Как я понимаю, вы плотно сидите на студии, поэтому и не смотрели даже clang, который вы почему-то относите к GNU-style.

Кстати, clang analyser чертовски удобно работает из Xcode (если вы предпочитаете GUI). Там он прямо поверх исходников рисует стрелочки, поясняя что он имеет ввиду. Visual Studio-совместимые анализаторы так умеют?
Я им пользуюсь и в Xcode и в консоли.

4) Не знаю, может быть для кого-то это так. Мне казалось что более внятно изложить свои замечания анализатору будет трудно (он и так уже и стрелочки и прочие цветочки рисует)

Мое субъективное мнение — clang даёт больше возможностей из-за модульной и хорошо продуманной архитектуры LLVM, плагины оптимизации там всякие можно прицепить, эмуляцию новых команд процессора. Его в основном ребята из университета Иллинойса разрабатывают, столько докторских уже на нём написано…
Алексей, спасибо за подробный комментарий.

Касательно C++0x у clang четко написано, что это — не приоритет. Зато с другой стороны не могу пройти мимо статьи коллеги (Статический анализ Си++ кода и новый стандарт языка C++0x).

В Visual Studio 2010 появилась классная возможность по выделению фрагментов кода. В строке-сообщении об ошибке можно указать номера блоков и редактор их подсветит.

Как Вы верно заметили, мне ближе окружение разработки от Microsoft. И по опыту знакомства со статическими анализаторами интеграция этого инструмента в VS — довольно существенная. То есть это зачастую просто «водораздел». Если инструмент интегрируется, то им пользуются. Если не интегрируется — то не пользуются. Здесь же речь не о том, осилит один конкретный человек (я, например) clang и xcode или нет.
Кажется теперь мне стала яснее ваша точка зрения.
Ладно, давайте следить за развитием этих инструментов, может пригодится. Я вот посмотрю поближе, что там нового в VS2010 появилось (чёрт побери, опять винду надо где-то ставить).
Кстати, соглашусь, что этот «водораздел» существует. И мне это не по душе если честно, не должно быть никаких барьеров для технологий.
Уверен что кто-то уже интегрирует clang анализатор в студию — его там только прикрепить-то и нужно, потроха в моторчике ковырять нет необходимости.
Евгений, планируете свой анализатор для .NET сделать?
блин, вечер глупость сморозил, ибо изначально в .net решена проблема портирования на 64bit и все итак работает
В качестве домашнего задания — рекомендую попробовать создать в .net массив более 2,147,483,647. Будете удивлены. И не поленитесь рассказать нам здесь о результатах.
Казалось бы, причем здесь портирование на 64бита?
Одна из прелестей .net в том, что в нём типы фиксированного размера. И перенос C# managed кода на 64бита проходит практически безболезненно, в отличие от C++. Если какие косячки и лезут, то обычно в коде, вызывающем нативные функции операционки, если, например, в прототипе функции написать int вместо IntPtr.
А что до вашего примера, можно еще попросить создать массив размером в 2^64. На C++, в 64битной среде.
Это ограничение дотнета, объект ограничен размером одинаково что на 2G что на x86 и на 64битной версии дотнета.
Sign up to leave a comment.