The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Facebook открыл код flint, системы для проверки кода на языке C++

25.02.2014 23:01

Facebook опубликовал исходные тексты утилиты flint, предназначенной для выявления типовых ошибок и проблемных конструкций в коде на языке С++. Представлены два варианта flint: основной, написанный на языке D, и устаревшая реализация на языке C++. Код открыт под свободной лицензией Boost Software License.

Утилита была создана для внутреннего применения в системе рецензирования кода Facebook, для автоматической проверки всех вносимых изменений. Существующие lint-системы для C++ не устроили Facebook из-за низкой производительности и отсутствия поддержки стандарта C++11 (например, Clang во время начала разработки flint не предоставлял должной поддержки C++). Также была необходимость адаптации правил проверки для особенностей стиля разработки в Facebook.

  1. Главная ссылка к новости (https://code.facebook.com/post...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/39190-flink
Ключевые слова: flink, lint, cpp, facebook
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (15) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.10, Perain (?), 01:25, 26/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Также была необходимость адаптации правил проверки для особенностей стиля разработки в Facebook.

    Я видел их чудо-аналог boost: Folly, быдл0кодинг присутсвует на 60%

     
     
  • 2.11, Аноним (-), 01:34, 26/02/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    это ожидаемо что еще ждать от php компании
     
     
  • 3.24, Аноним (-), 16:27, 26/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Домашнее задание предъявите. И к врачу бегом, а то уже зеленеете.
     

  • 1.14, _KUL (ok), 05:50, 26/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Обозвали С++ плохим. Смешные такие эти янки ... Юзайте g++, уже скоро С++14 ждём (Clang не показатель)
     
     
  • 2.20, dq0s4y71 (ok), 13:11, 26/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    И не говорите! Русский православный С++ плохим обзывать...
     
     
  • 3.21, _KUL (ok), 14:00, 26/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    std::cout << *Stroustrup->isNational

    :~$ NULL

     
     
  • 4.22, Аноним (-), 14:29, 26/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Страуструп - датчанин.
     
     
  • 5.23, Аноним (-), 15:54, 26/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Все правильно, просто у него точка с запятой не стоит в конце.
     
  • 5.26, xdscdc (?), 00:06, 27/02/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Страуструп - датчанин.

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

     

  • 1.18, Аноним (-), 09:37, 26/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >Представлены два варианта flint: основной, написанный на языке D, и устаревшая реализация на языке C++.

    Ждем flintD для проверки самого себя.

     
     
  • 2.27, Аноним (-), 00:04, 28/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    На С++, разумеется, чтобы они могли проверять друг-друга.)
     

  • 1.19, Аноним (-), 13:01, 26/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Первая используемая программа на D, которую я увидел.
     
  • 1.25, Замполит (?), 18:33, 26/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Есть еще web-сервер vibe.d
    http://vibed.org/
    http://habrahabr.ru/post/142964/
     
  • 1.28, vleschuk (?), 10:38, 01/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это какая-то недоподелка. Открыли 5 тыщ строк кода - целая новость.

    Ради интереса взял наугад код из первой попавшейся вакансии яндекса:

    http://company.yandex.ru/job/vacancies/dev_computer_vision.xml

    первое задание из теста. Там специально сделана куча ошибок, бОльшую часть из которых статический анализатор может найти. Этот код даже компилироваться не должен.

    Единственное, что увидел этот flint:

    ./flint 1.cpp
    1.cpp(5): Single-argument constructor 'Foo(int j)' may inadvertently be used as a type conversion constructor. Prefix the function with the 'explicit' keyword to avoid this, or add an /* implicit */ comment to suppress this warning.
    1.cpp(24): Single-argument constructor 'Bar(int j)' may inadvertently be used as a type conversion constructor. Prefix the function with the 'explicit' keyword to avoid this, or add an /* implicit */ comment to suppress this warning.

     
  • 1.29, Аноним (-), 16:29, 01/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    не понял, а сам компилятор уже не проверяет синтаксис кода?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру