Выходит наш основной релиз за год Svace 3.4.231130. Это баг-фикс релиз для версии 3.4.230712. Помимо множества исправлений мы добавили некоторое количество новых возможностей.
Этот релиз будет поддерживаться ещё год. Исправления будут выпускаться в виде обновлений. Новые фичи войдут уже в релиз следующего год.
Теперь Svace может анализировать код на языке Scala. Поддержка языка выполнена не в полной мере как для других языков. Основное отличие заключается в том, что мы не стали интегрировать компиляторы языка в Svace. Для языка Scala у нас не реализовано анализов на основе абстрактных синтаксических деревьев. Также из-за отсутствия модификаций компилятора Scala анализатор не может находить ошибки, чувствительные к конструкциям, сгенерированным компилятором. В остальном используется тот же самый движок анализа, что и для языков Java и Kotlin.
Подробнее о Scala написано здесь.
Мы обновили компилятор clang. Теперь доступны самые свежие изменения clang, что позволит лучше анализировать код на C/C++.
Промежуточное представление llvm, используемое для языков C/C++ было обновлено с версии 12
до версии 16
.
Мы обновили поддерживаемую версию Go с 1.20 до 1.21.
Кроме этого мы уменьшили размер директории .svace-dir
для Go, а также поправили ошибки, связанные с ОС Windows.
Анализ языка Python всё ещё является экспериментальным и не имеет качества анализа других языков. В этом релизе мы значительно улучшили моделирование внутреннего представления для нашего анализатора, а также поправили множество ошибок во время сборки и анализа.
Теперь Svace реагирует на аннотации языка Java @SuppressWarnings
и не выдаёт предупреждения о разыменовании нулей для полей классов, помеченных этой спецификацией. Подобная аннотация может требоваться для случаев, когда байткод будет меняться после компиляции.
Мы наконец добавили возможность подавления предупреждений по комментариям в исходном коде. Поддержали сразу множество вариантов: svacer_review
, NOLINK
, NOSONAR
and noqa
. По умолчанию данное поведение выключено. Как включить – смотрите документацию.
Мы добавили команду svace remote kill
, которая позволяет остановить запущенную задачу на удалённом сервере.
Также теперь есть возможность автоматически настроить (опции сервера DELETE_ANALYZE_DIR_ALL
, DELETE_ANALYZE_DIR_SUCCESS
) удаление директорий (всех, либо только для успешного анализа) с сервера после завершения анализа. Это позволит экономить место на сервере и не чистить логи анализа вручную.
Мы добавили команду svace server admin create-defaults
для удобного создания конфигурации сервера Svace.
Этот сервер используется для удалённого анализа.
Исправления можно посмотреть в наших changelog-ах. Я здесь не буду дублировать эту информацию.