Около года назад мы смогли проверить ядро Linux. Это была одна из самых обсуждаемых статей о проверке open-source проекта за всё время. Предложения обратить внимание и на FreeBSD тогда активно поступали, но только сейчас появилось достаточно времени, чтобы это сделать.
Читать полностью »
Рубрика «Компиляторы» - 45
PVS-Studio покопался в ядре FreeBSD
2016-02-17 в 16:48, admin, рубрики: C, c++, freebsd, open source, pvs-studio, static code analysis, Блог компании PVS-Studio, Компиляторы, Си, статический анализ кодаПроверяем исходный код WPF примеров от компании Infragistics
2016-02-10 в 13:19, admin, рубрики: C#, dependecy properties, infragistics, open source, pvs-studio, static code analysis, wpf, Блог компании PVS-Studio, Компиляторы, статический анализ кода
Мы продолжаем проверять различные C#-проекты с целью демонстрации возможностей статического анализатора кода PVS-Studio. В этой статье мы рассмотрим результаты проверки WPF примеров от компании Infragistics. Сама компания Infragistics является глобальным поставщиком программного обеспечения, основанная в 1989 году. Компания сделала себе имя на разработке компонентов пользовательских интерфейсов для сторонних разработчиков на всех платформах, включая .NET.
Читать полностью »
Знакомьтесь: Jack и Jill на платформе x86
2016-02-09 в 12:50, admin, рубрики: Jack and Jill, Jack Intermediate Library Linker, java, Java Android Compiler Kit, Блог компании Intel, Компиляторы, разработка, Разработка под android, метки: Jack and Jill, Jack Intermediate Library Linker, Java Android Compiler KitJack (Java Android Compiler Kit) – это компилятор, преобразующий исходный код на Java в DEX-файлы Android. Jack – это набор инструментов, среди его возможностей – переупаковка, сжатие, обфускация и поддержка множественных DEX-файлов.
В Jack используются промежуточные библиотеки в формате .jack. Преобразованием существующих .aar/.jar файлов в этот формат занимается Jill (Jack Intermediate Library Linker).
Если для сборки используется Jack, то сначала Jill конвертирует внешние библиотеки, используемые в проекте, в .jack-файлы. Это подготавливает библиотеки к быстрому слиянию с другими .jack-файлами на следующем этапе, когда Jack и плагин Android Gradle, используя подготовленные ранее.jack-файлы и исходный Java-код, компилируют DEX-файл (или файлы). В ходе этого процесса Jack может выполнить минификацию кода (сжатие, обфускацию, или и то и другое вместе). На выходе получается APK-файл Android-приложения.
Читать полностью »
«Почему ещё не изобрели искусственный интеллект?» или проверка инструментария CNTK от Microsoft Research
2016-02-02 в 11:16, admin, рубрики: artificial intelligence, c++, CNTK, microsoft, open source, pvs-studio, static code analysis, Блог компании PVS-Studio, Компиляторы, машинное обучение, Программирование, статический анализ кода Microsoft выложила в открытый доступ исходный код инструментов, которые используются в компании для ускорения разработок в области искусственного интеллекта: набор Computational Network Toolkit теперь доступен на Github. Разработчикам пришлось создать собственное решение, так как имеющиеся инструменты работали слишком медленно. Давайте же взглянем на результаты проверки этого проекта статическим анализатором кода.
Читать полностью »
Rust и парадокс Блаба
2016-01-25 в 7:21, admin, рубрики: blub, c++, Rust, TypeScript, Александреску, блаб, день ног, Компиляторы, парадокс, побеждая посредственность, Пол Грэм, Программирование, системное программированиеНесколько недель назад я наткнулся на сравнительный анализ Rust, D и Go от Андрея Александреску. Андрей, уважаемый член сообщества C++ и главный разработчик языка программирования D, нанес Rust сокрушительный удар под конец своего повествования, высказав нечто, что выглядит довольно проницательным наблюдением:
Чтение кода на Rust навевает шутки о том, как «друзья не позволяют друзьям пропускать день ног» и вызывает в голове комические образы мужчин с халкообразным торсом, балансирующим на тощих ногах. Rust ставит во главу угла безопасность и ювелирное обращение с памятью. В действительности, это довольно редко является настоящий проблемой, и такой подход превращает процесс мышления и написания кода в монотонный и скучный процесс.
После нескольких встреч с Андреем, увидев некоторые из его выступлений, я убедился, что он любит подшучивать. Тем не менее, давайте проглотим наживку. Эта шутка смешная только потому, что она выглядит смешной, или может быть потому, что в ней только доля шутки?Читать полностью »
ChakraCore: проверка JavaScript-движка для Microsoft Edge
2016-01-22 в 11:21, admin, рубрики: c++, Chakra, ChakraCore, cтатический анализ кода, javascript, Microsoft Edge, open source, pvs-studio, static code analysis, Блог компании PVS-Studio, Компиляторы, метки: cтатический анализ кодаВ декабре 2015 года на конференции JSConf US разработчики объявили, что планируют открыть исходный код ключевых компонентов JavaScript-движка Chakra, работающего в Microsoft Edge. Недавно исходный код ChackraCore под MIT лицензией опубликовали в соответствующем репозитории на GitHub. В статье я расскажу, что удалось найти интересного в проекте с помощью статического анализатора PVS-Studio.
Введение
ChakraCore это базовая составляющая Chakra, высокопроизводительный движок JavaScript, который запускает приложения Microsoft Edge и Windows, написанные на HTML/CSS/JS. ChakraCore поддерживает JIT-компиляцию на JavaScript для x86/x64/ARM, сборку мусора и широкий спектр самых последних возможностей JavaScript.
PVS-Studio — это статический анализатор для выявления ошибок в исходном коде программ, написанных на языках С, C++ и C#. Инструмент PVS-Studio предназначен для разработчиков современных приложений и интегрируется в среды Visual Studio 2010-2015.
Читать полностью »
Анонс Rust 1.6
2016-01-21 в 22:18, admin, рубрики: Rust, анонсы, Компиляторы, Новости, ПрограммированиеПривет в 2016-м году! Мы рады объявить первый в этом году релиз Rust — 1.6. Rust — системный язык программирования, нацеленный на безопасную работу с памятью, скорость и параллельное выполнение кода.
Как всегда, вы можете установить Rust 1.6 с соответствующей страницы нашего сайта, а также посмотреть подробный список изменений для версии 1.6 на Github. Этот релиз включил в себя 1100 патчей.
Что вошло в стабильную версию 1.6
В этот релиз вошли ряд небольших доработок, одно большое нововведение и изменение на Crates.io.
Читать полностью »
Выходу Dolphin Smalltalk 7 под Open Sourсe посвящается
2016-01-12 в 9:03, admin, рубрики: c++, Dolphin Smalltalk, open source, pvs-studio, smalltalk, static code analysis, Блог компании PVS-Studio, Компиляторы, ооп, Смолток, статический анализ кодаНа днях компания ObjectArts полностью открыла исходники и выпустила язык, и среду разработки Dolphin Smalltalk под открытой лицензией MIT! Я не смог пройти мимо, не попробовав проверить этот проект с помощью анализатора кода PVS-Studio. Могу поздравить разработчиков с тем, что у них получилось создать код высокого качества. Мне не удалось найти значимых ошибок. Однако как всегда есть некоторое количество багов и пахнущего кода. Надеюсь благодаря этой статье код станет чуть лучше.
О проекте
Dolphin Smalltalk — это среда разработки на собственном диалекте Smalltalk для Windows. Ключевыми особенностями является тесная интеграция с нативными виджетами и подсистемами операционной системы, включая COM и ActiveX, и приятный глазу графический дизайн.
Долгое время Dolphin Smalltalk был доступен в двух вариантах: условно-бесплатная ограниченная версия (community edition) и платный пакет для профессиональной разработки. Последний давал доступ ко всем функциям, включая продвинутые редакторы и публикацию приложений в standalone режиме, однако стоил около четырехсот долларов.
С помощью PVS-Studio 6.00 были проверены открытые исходники Dolphin Smalltalk Virtual Machine. Далее представлены результаты проверки статическим анализатором. Несмотря на то, что проект DolphinVM очень маленький, в его коде всё равно встречаются подозрительные места.
Читать полностью »
Проверяем IronPython и IronRuby с помощью PVS-Studio
2016-01-11 в 11:29, admin, рубрики: .net, C#, DLR, ironpython, ironruby, open source, pvs-studio, python, static code analysis, Блог компании PVS-Studio, Компиляторы, статический анализ кодаСовсем недавно мы выпустили новую версию нашего анализатора PVS-Studio с поддержкой проверки C# проектов. Пока на время релиза дальнейшая разработка продукта была приостановлена, я занимался тестированием анализатора. В качестве проектов для своих экспериментов я взял IronPython и IronRuby. А раз эти проекты были проверены, я решил написать небольшую статью-отчёт.
IronPython и IronRuby
IronPython и IronRuby представляют собой реализацию языков программирования Python и Ruby на платформе .NET. Исходный код этих проектов доступен на GitHub по этой ссылке. Также в комплекте идёт исходный код DLR. Начиная с .NET Framework 4.0 DLR является его частью, и IronPython и IronRuby используют её. Тем не менее я всё равно проверил старую версию DLR, раз уж она там оказалась.
Читать полностью »
Rust в 2016 году
2016-01-10 в 11:53, admin, рубрики: 2016, Rust, Компиляторы, Программирование, системное программирование2015 год был значительным годом для Rust: мы выпустили версию 1.0, стабилизировали большинство элементов языка и кучу библиотек, значительно выросли как сообщество, а также реорганизовали управление проектом. Может показаться что 2016 год не будет таким же интересным (будет трудно превзойти выпуск 1.0), но это будет супер-важный год для Rust, в котором произойдет много захватывающих вещей. В этой статье я расскажу о том, что, как я думаю, должно произойти. Это не официальная позиция и не обещание разработчиков Rust.
2015
Прежде чем мы поговорим о будущем, вот несколько цифр за прошлый год:
В 2015 году силами сообщества Rust:
- Создано 331 предложение по улучшению языка (RFC)
- из которых 161 были приняты и влиты в основной репозиторий
- всего 120 человек подавало RFC, из них 6 человек создало 10 и более, Alex Crichton создал 23 RFC
- Создано 559 задач по улучшению RFC
- Прислано и влито в репозиторий Rust 4630 Pull-запросов
- авторами которых является 831 человек, из них 91 создали больше 10 запросов, 446 человек создали только один, а Steve Klabnik был автором 551 pull-запроса
- Создано 4710 задач
- из которых 1611 еще открыты
- авторами которых является 1319 человек, из которых 79 создали больше 10, а Alex Crichton открыл всего 159 задач
- Выпущено шесть стабильных релизов Rust (1.0 – 1.5)
- Поддерживается стабильность Rust – 96% пакетов, которые компилировались на 1.0, по прежнему компилируются с использованием версии 1.5