Релиз CLion 2017.3: улучшение поддержки C++, интеграция с Valgrind Memcheck и Boost.Test

Основные улучшения CLion 2017.3:

Можно прямо сейчас скачать бесплатную 30-дневную версию и попробовать новые возможности.

Поддержка языка C++

Глобальные улучшения

Версия CLion 2017.3 затронула list initialization и name lookup.

В случае list initialization, исправления, в основном, привели к тому, что CLion больше не показывает некорректные предупреждения вроде “too many arguments”, “too few arguments”, “no matching constructor”. И, напротив, показывает их теперь там, где это нужно
К тому же, CLion теперь умеет корректно понимать переменные в случае uniform initialization:

Другая область исправлений в этом релизе – name lookup. Правильное ассоциирование имени переменной с ее декларацией – одна из базовых задач языковой поддержки. Проблемы на этом этапе приводят к неправильным сообщениям анализатора кода, некорректной кодогенерации и т. д. Основные исправления были связаны с правильным порядком резолва и с резолвом переменных, которые передаются в область видимости через конструкцию using или с помощью наследования типов

Поддержка расширений MSVC

Если у вас на машине установлен Microsoft Visual C++ компилятор, то вы можете включить экспериментальную поддержку MSVC в CLion и использовать этот компилятор вместо GCC и Clang. Экспериментальной поддержка была названа по нескольким причинам:

  1. Изначально CLion не поддерживал никакие специальные расширения MSVC языка C++
  2. В случае MSVC в CLion не доступен отладчик

CLion 2017.3 включает исправления для первого пункта. Поддержаны такие расширения, как __uuidof, __unaligned/__alignof, __ptr32/64 и другие. Полный список доступен в нашем блоге.

К сожалению, на отладчик для MSVC никаких конкретных планов пока нет (зато есть интересная дискуссия на тему разнообразных отладчиков для MSVC и лицензий на них).

Другие полезные улучшения в поддержке C++

Команда, занимающаяся именно языковой поддержкой в CLion, растет! И потому мы постепенно покрываем все больше и больше значимых запросов из трекера. В этот релиз успели еще сделать:

 

Для разработчиков аудио приложений

Отдельно хочется рассказать про улучшения для тех, кто разрабатывает мультиплатформенные аудиоприложения. Для такой разработки существует очень известная библиотека на C++ – JUCE. В CLion 2017.3 мы исправили несколько проблем в языковой поддержке, которые возникали в случае использования JUCE.

Но главной новостью для пользователей JUCE стал выход JUCE 5.2, где в новой версии Projucer добавлена возможность экспортировать проект в CMake. А значит и открывать его для дальнейшей разработки в CLion!

Интеграция с Valgrind Memcheck

Одним из самых востребованных запросов в трекере является интеграция с инструментами профилирования, в частности с Valgrind. В этом релизе добавлена возможность профилирования памяти с помощью Valgrind Memcheck.

В отличие от Google Sanitizers, которые тоже часто используются для этой задачи, Valgrind Memcheck поддерживает множество платформ (но, к сожалению, как и Sanitizers, не доступен на Windows). Он не требует перекомпилирования программы и работает с исполняемым файлом, собранным с помощью как Clang, так и GCC. При этом инструмент позволяет идентифицировать целый спектр проблем в работе с памятью:

Теперь в CLion можно запустить конфигурацию с Valgrind Memcheck и в окне результатов запуска получить информацию о потенциальных проблемах, включая кусок стека, соответствующий проблеме, и предпросмотр места в коде, где случилась проблема. Настройки позволяют задать так называемые suppression файлы (для отключения анализа в библиотеках, например) и опции для запуска Valgrind Memcheck.

Улучшения в сфере модульного тестирования


Интеграция с фреймворками для модульного тестирования в CLion подразумевает запуск тестов во встроенном окне с выводом результатов (test runner). Если раньше поддерживались Google Test и Catch, то теперь еще добавили Boost.Test:

В левой боковой колонке (“гаттере”) можно заметить новые значки. Они работают для всех трех поддерживаемых фреймворков и служат для запуска тестов – нажав на них, можно выбрать запуск, отладку или запуск с Valgrind Memcheck. А после первого запуска тестов значок меняет вид и начинает отображать статус теста – пройден или упал. Довольно удобно, если хочется открыть файл с недавно запущенными тестами и быстро понять, что и как.

Аналогично, с помощью значка в левом гаттере можно запускать любую функцию main, для которой найдется CMake таргет (без таргета довольно тяжело понять, что именно и как запускать). А вот Run конфигурацию создавать не обязательно – CLion создает ее автоматически при нажатии на иконку.

Настройки тулчейнов, компилятора, CMake


Уже почти традиционные осенние изменения в области CMake и настройки тулчейнов и конфигураций не обошли стороной и этот релиз. Главное:

  1. Появилась возможность сконфигурировать в IDE несколько тулчейнов и выбирать нужный для каждого проекта, или даже использовать несколько разных для разных таргетов на одном проекте. Особенно это актуально будет пользователям на Windows, которые хотят легко и быстро переключаться между окружениями Cygwin/MinGW/MSVC:
  2. Появилась возможность легко переключать компилятор C и C++, а также Make. Теперь это можно сделать в настройках тулчейна, упомянутых выше.
  3. Появилась возможность создать несколько CMake профайлов с одним и тем же типом билда (Debug, Release, etc.), но разными опциями, настройками окружения, используемыми тулчейнами (например, компиляторами) и пр.:
  4. CMake-профайл теперь не связан напрямую с запускаемой run/debug конфигурацией, а выбирается независимо:

 

Новые версии отладчиков и CMake


В CLion 2017.3 включены в поставку обновленные версии следующих инструментов:

Стоит отметить, что GDB 8.0, который поставляется вместе с CLion, собран с поддержкой нескольких архитектур. А это означает, что при удаленной отладке между разными платформами (например, с Windows на Linux) не потребуется больше пересобирать GDB, а можно будет воспользоваться встроенным.

Kotlin/Native

JetBrains создала и активно разрабатывает новый язык программирования Kotlin, который в этом году на Google I/O был официально признан языком для разработки Android-приложений. У JetBrains есть проект Kotlin/Native, который позволяет компилировать Kotlin напрямую в машинный код таких платформ как iOS, Linux, Windows, macOS и WebAssembly.

Kotlin/Native интегрируется с такими технологиями из мира нативной разработки, как Clang и LLDB. А CLion, в свою очередь, рассматривается нами как IDE для нативной разработки, в которой уже есть поддержка C и С++ как основных языков, а также Python, Swift и Rust как дополнительных (все в рамках CMake пока что). Поэтому вполне естественно было выпустить плагин для разработки на Kotlin/Native именно для CLion. Больше подробностей можно найти в блоге Kotlin. А в будущем можно ожидать появления Kotlin/Native и в других инструментах JetBrains.


Опубликовано: 6 декабря 2017


Выбрать программное обеспечение


Напишите запрос на программное обеспечение нам в Viber
+380503703627


Контакты Ай Ти Про

info@itpro.ua
Телефон: +38 (044) 257-24-44