LINUX.ORG.RU

C++


365

17

Всего сообщений: 251

Библиотека ReSGP4

Группа Open Source

Спустя совсем немного времени после Дня космонавтики состоялся релиз библиотеки ReSGP4.

Библиотека представляет собой расширение для Python 3, которое позволяет симулировать движение космических объектов по орбитам вокруг Земли.

( читать дальше... )

>>> Подробности

 , , ,

shkolnick-kun
()

Wolfire Games опубликовала исходники Overgrowth

Wolfire Games опубликовала исходники Overgrowth
Группа Игры

Разработчики Overgrowth опубликовали на Github исходники игры под лицензией Apache 2.0.

При этом в опубликованные исходники не входят ассеты игры. Для доступа к ассетам необходимо купить оригинальную игру в Humble Bundle или Steam.

>>> Исходники на Github

 , ,

WatchCat
()

Вышла новая версия C++-драйвера для PostgreSQL

Группа Open Source

Pgfe (PostGres FrontEnd) - продвинутый и многофункциональный драйвер для PostgreSQL, написанный на C++. Разработка нацелена на простоту использования и надёжность, учитывая производительность.

Pgfe можно скачать на странице Github.

Достоинства

  • быстрый и надёжный;
  • может использоваться как header-only библиотека, так и как статическая или разделяемая библиотека;
  • работает с подключениями к базе данных как в блокирующем, так и в неблокирующем режимах ввода-вывода;
  • поддерживает prepared statements как с позиционными, так и с именованными параметрами;
  • обеспечивает первоклассную поддержку для вызова функций и процедур;
  • поддерживает продвинутые функции PostgreSQL, такие как конвейер, COPY и большие объекты;
  • поддерживает обработку ошибок с помощью исключений и условий ошибок: предоставляет запись enum для каждого предопределенного SQLSTATE;
  • обеспечивает продвинутую поддержку преобразования данных: даже многомерные массивы PostgreSQL в/из любых комбинаций контейнеров STL могут быть выполнены с лёгкостью;
  • обеспечивает поддержку динамического построения SQL-запросов;
  • позволяет разделить SQL-запросы и код C++ на стороне клиента;
  • обеспечивает простой, надежный и потоко-безопасный пул соединений;
  • многие другие функции для удобства и безопасности.

Требования

  • компилятор C++17 (протестировано на GCC и MSVC);
  • libpq;
  • CMake 3.16+ (необязательно, только если требуется сборка).

>>> Оригинал

 ,

anonymous
()

SRELL 2.930 — библиотека для С++, реализующая работу ECMAScript-совместимых регулярных выражений

Группа Разработка

SRELL – это std::regex-like library.

Особенности:

  • header-only;
  • ECMAScript-совместимые регулярные выражения;
  • дизайн а-ля std::regex;
  • поддержка типов char8_t, char16_t и char32_t для C++11 и более поздних версий стандарта.

( читать дальше... )

>>> Подробности

 , , , ,

dataman
()

TheXTech: кроссплатформенный порт Super Mario Bros. X

TheXTech: кроссплатформенный порт Super Mario Bros. X
Группа Игры

Кроссплатформенный порт Super Mario Bros. X, фанатской игры по мотивам вселенной Марио, созданной в 2009 году американцем Эндрю Спинксом, полностью написанный на С++. Проект получил название TheXTech по принципу: «The Super Mario Bros. X Tech». Он полностью воспроизводит старый движок SMBX 1.3 (кроме редактора), исправлены критические ошибки, приводящие к сбою или зависанию игры.

Об оригинальном движке SMBX

Несмотря на полное прекращение разработки игры в 2011 году, она была востребована и продолжала широко использоваться сообществом. Игра привлекла внимание разработчиков-энтузиастов, которые создавали для неё вспомогательные инструменты, а также делали попытки модифицировать и расширить игру. Самыми известными из них являются набор разработки из тулкита Moondust Project (изначально называвшимся PGE Project) и библиотека LunaLua (изначально известная как LunaDll), расширяющая функционал игры посредством dll-инъекции. Исходный код игры долгое время был закрытым. Однако всё изменилось, когда 2 февраля 2020 года на форуме были опубликованы исходные коды игры.

Геймплей

В игре возможно играть за одного из 5-и персонажей: Марио, Пич, Луиджи, Линк и Тоад. Присутствуют три режима игры: одиночный, вдвоем в кооперативном режиме и режим битвы, в котором игроки должны побить друг друга, пользуясь различными подручными средствами.

Сама игра является неким подобием песочницы для сообщества, в которой игроки могут создавать свои уровни и целые эпизоды. Есть возможность добавления в игру собственных ресурсов.

Подробности технической реализации TheXTech (habr.com)

>>> GitHub автора порта

 , ,

atiradeon
()

cppcheck 2.6

Группа Разработка

Вышла новая версия cppcheck — статического анализатора исходного кода для языков C и C++.

В этом выпуске представлены новые проверки:

  • пропущенный return в функции;
  • запись перекрывающихся (overlapping) данных, обнаружение UB;
  • сравнение с значением вне допустимого диапазона типов;
  • отключение copy elision из-за использования return std::move(local);
  • открытие файла на чтение и запись в разных потоках (streams).

( читать дальше... )

Помимо этого, была завершена проверка соответствия исходного кода стандарту MISRA C 2012: реализованы все правила MISRA C 2012, кроме 1.1, 1.2 (должны обеспечиваться компилятором) и 17.3 (может обеспечиваться компилятором), включая правила в поправках 1 и 2.

Исходный код анализатора распространяется по лицензии GPLv3.

>>> Подробности

 , , ,

Siborgium
()

Cppcheck 2.5

Группа Разработка

Вышла новая версия статического анализатора для С и С++.

В новой версии:

В парсере:

  • различные исправления;
  • теперь поддерживаются все возможности c++11, c++14, c++17;
  • частичная поддержка с++20.

Также анализатор теперь:

  • знает больше об API;
  • показывает меньше ненужных предупреждений;
  • находит больше багов;
  • исправлены вылеты и ложные срабатывания в Misra.

Добавлены новые проверки:

  • подозрительное присваивание контейнера/итератора в условии;
  • повторное пробрасывание текущего исключения с помощью throw;.

Примеры кода, которые демонстрируют новые проверки:

void f(std::string s) {
  if (s = "123") {
  }
}
Assignment in condition should probably be comparison
void func1(const bool flag) { try{ if(!flag) throw; } catch (int&) { ; } }
Rethrowing current exception with 'throw;', it seems there is no current exception to rethrow.
If there is no current exception this calls std::terminate(). More: https://isocpp.org/wiki/faq/exceptions#throw-without-an-object

>>> Подробности

 , , ,

fsb4000
()

Zig 0.8

Группа Разработка

После 7 месяцев работы и 2711 коммитов вышла новая версия Zig: 0.8

Zig это:

  • Современный компилятор С

  • Современный компилятор С++

  • Компилятор языка Zig

  • Сборочная система для C, C++, языка Zig

  • (Планируется) Пакетный менеджер для С, C++, языка Zig

Zig разрабатывается под лицензией MIT: https://github.com/ziglang/zig/blob/master/LICENSE

Язык Zig – это язык общего назначения, который старается быть простым. Нет макросов, скрытых аллокаций, скрытого потока управления.

( читать дальше... )

Полный список изменений: https://ziglang.org/download/0.8.0/release-notes.html

>>> Официальный сайт

 , ,

fsb4000
()

QtProtobuf 0.6.0

Группа Разработка

Выпущена новая версия библиотеки QtProtobuf.

QtProtobuf — свободная библиотека, выпускаемая под лицензией MIT. С ее помощью вы можете с легкостью использовать Google Protocol Buffers и gRPC в вашем Qt проекте.

Ключевые изменения:

  • Генератор и библиотека QtProtobuf разделены на два отдельных модуля.
  • Изменены пути установки файлов .pri и модулей QML (для случая если установочный префикс не соответствует установочному префиксу фрэеймворка Qt).
  • Базовая поддерка кросскомпиляции (документация прилагается).
  • Исправлена поддержка вложенных типов со взаимозависимостями.
  • Исправлена проблема в буфере чтения для подписок gRPC.
  • Добавлена сигнатура вызова gRPC метода с возвращаемым значением в виде параметра функции.
  • Добавлен gRPC канал на основе нативной C++ имлементации gRPC.
  • Добавлены дополнительные gRPC методы для обработки ошибок и таймаутов канала.
  • Добавлена возможность генерировать дополнительное пространство имен (aka namespace) для protobuf сообщений. (ЭКСПЕРИМЕНТАЛЬНО)
  • Добавлена явная рефлексия protobuf сообщений, для более корректной json сериализации.
  • Изменено имя QML свойств. Теперь для QML двойников используется оригинальное имя protobuf сообщений.
  • Добавлена возможность генерация enum содержащего список полей protobuf сообщений.

Незначительные изменения:

  • Добавлена возможность отдельной сборки тестов.
  • Изменен механизм поиска сторонних зависимостей.
  • microjson статически линкуется к библиотеке QtProtobuf и больше не является зависимостью.
  • Добавлены бинарные пакеты для Windows.

>>> Подробности

 , , ,

semlanik
()

Сайт mingw.org недоступен более месяца

Группа Разработка

Сайт проекта недоступен более месяца, на главной висит заглушка.

Цель данного проекта – сборка нативных программ для Windows с помощью свободного программного обеспечения, в частности порта gcc, binutils и gdb, а также порта bash. Эту нелегкую ношу свободного ПО во мраке проприетарщины они несли свыше десяти лет. Новый проект, который взял на себя их задачи – Mingw-w64. По какой-то причине на сайте Mingw-w64 кривой сертификат.

>>> Подробности

 , ,

zanac1
()

Компания JFrog объявила о скором закрытии сервисов Bintray, JCenter, GoCenter и ChartCenter

Группа Разработка

Закрытие этих сервисов будет поэтапным:

  • Прямо сейчас - никаких изменений
  • 28 февраля - прекратится приём новых данных, вебсайты GoCenter и ChartCenter перестанут работать, однако их сервисы ещё будут доступны
  • с 12 по 26 апреля - подготовка к выключению
  • 1 мая - Bintray, JCenter, GoCenter и ChartCenter полностью перестанут быть доступными

В качестве альтернатив предлагаются:

Совсем недавно (13 января этого года) созданный сервис ConanCenter, предоставляющий репозиторий пакетов Conan для разработчиков на C/C++, продолжит работать. Он получил дополнительное финансирование.

>>> Подробности

 , , , ,

hummer
()

AviSynth+ 3.7.0

Группа Мультимедиа

Состоялся релиз кроссплатформенного фреймсервера для обработки видео AviSynth+ 3.7.0, написанного на C++ и использующего собственный язык скриптов. Готовые пакеты, включая плагины, предоставлены в репозитории Arch Linux. Инструкция для создания собственной сборки доступна здесь.

( читать дальше... )

>>> Подробности

 , ,

antianon
()

NVIDIA CUDA Toolkit 11 и драйверы 450+

Группа Hardware and Drivers

Бинарные сборки CUDA Toolkit 11+ и Драйверов 450+ доступны для загрузки с репозитория nvidia для Fedora 32, Ubuntu 20.04 и др.

Официальной новости я не смог найти, но те кто использует адаптированные версии от negativo17 или ручной сборки, смогут обновиться и начать использовать таки C++17 в начале перехода мира на C++20

>>> Адрес репозитория

 , , ,

sparks
()

ZenMake 0.10.0

Группа Разработка

ZenMake — ещё одна система сборки для C/C++ и ряда других языков программирования с декларативными конфигурационными файлами.

ZenMake написан на python с использованием Waf в качестве фреймворка. Основная цель проекта — быть простым в использовании насколько это возможно, но оставаться достаточно гибким.

Зачем еще одна система сборки? Подробности (на английском): https://zenmake.readthedocs.io/en/latest/why.html

Основной репозиторий: https://gitlab.com/pustotnik/zenmake

Документация: https://zenmake.readthedocs.io/

Примеры использования: https://gitlab.com/pustotnik/zenmake/tree/master/demos

Способы использования:

  1. Установить в систему через pip install zenmake и использовать на манер CMake, Meson и др., вызывая zenmake в корне проекта.
  2. Скачать zipapp-форму zenmake.pyz отсюда или сгенерировать самостоятельно через команду zipapp и использовать как встроенную систему сборки.

>>> Подробности

 , ,

Vark
()

QtProtobuf 0.5.0

Группа Разработка

Выпущена новая версия библиотеки QtProtobuf.

QtProtobuf — свободная библиотека, выпускаемая под лицензией MIT. С ее помощью вы можете с легкостью использовать Google Protocol Buffers и gRPC в вашем Qt проекте.

Ключевые изменения:

  • Добавлена библиотека поддержки Qt-типов. Теперь можно использовать часть Qt типов в описании protobuf сообщений.
  • Добавлена поддержка Conan, спасибо @GamePad64 за помощь!
  • Вызов методов call и subscription в QtGrpc теперь потокобезопасны.
  • Добавлено поле returnValue для QQuickGrpcSubscription. Теперь можно делать QML биндинг на сообщения созданные в QML контексте без промежуточных обработчиков.
  • Для согласования с концепциями protobuf, все поля в сообщениях выставляются в значения по умолчанию перед началом десериализации.

Незначительные изменения:

  • Переработан поиск qmake в процедуре простройки проекта. Приоритет отдается qmake из CMAKE_PREFIX_PATH.
  • Переработана статическая простройка проекта, исправлены некоторые ошибки.
  • Исправлена ошибка «зависшей» подписки при работе с QQuickGrpcSubscription и QML контекста.
  • Добавлена конвертация для типа google.protobuf.Timestamp из/в QDateTime.

>>> Подробности

 , , , ,

semlanik
()

Доступна предварительная сборка Qt 6.0

Группа Разработка

Qt Company сообщила в своём блоге о доступности первой предварительной сборки Qt 6.0.

Компания сообщает, что первая предварительная сборка содержит бинарные файлы только для настольных платформ, а для тестирования на мобильных и встроенных платформах необходимо воспользоваться сборкой из исходных текстов, при этом Qt 6.0 требует поддержки C++17 от компилятора, поэтому разработка фокусируется на сравнительно недавно выпущенных компиляторах.

Первая предварительная сборка содержит следующие модули:

  • Qt Core
  • Qt GUI
  • Qt Widgets
  • Qt Network
  • Qt QML
  • Qt Quick
  • Qt Quick Controls
  • Qt SVG
  • Qt Network Authorization
  • Qt SQL
  • Qt Test
  • …и несколько других модулей

Qt Company и далее собирается предоставлять регулярные предварительные сборки Qt 6.0, получить же их можно воспользовавшись установщиком Qt в категории Preview.

Выпуск Qt 6 намечен на 1 декабря, а 31 августа предполагается заморозка добавления функциональности.

>>> Блог Qt

 , , ,

c0deum
()

U++ Framework 2020.1

Группа Разработка

В мае этого года (точная дата не сообщается) вышла новая, 2020.1, версия U++ Framework (Он же Ultimate++ Framework). U++ — кроссплатформенный фреймворк для создания GUI приложений.

Нововведения в текущей версии:

  • Linux бэкенд по умолчанию теперь использует gtk3 вместо gtk2.
  • «look&feel» в Linux and MacOS переработан и лучше поддерживает тёмные темы.
  • У ConditionVariable и Semaphore появились варианты метода Wait с параметром timeout.
  • Добавлена функция IsDoubleWidth для определения глифов UNICODE двойной ширины.
  • U++ теперь использует директории ~/.config and ~/.cache для хранения разного.
  • Добавлена функция GaussianBlur.
  • Модернизирован внешний вид виджетов в дизайнере слоёв.
  • Поддержка нескольких мониторов в MacOS и другие исправления.
  • В дизайнер добавлено несколько часто используемых виджетов, таких как ColorPusher, TreeCtrl, ColumnList.
  • Нативный диалог выбора файлов, FileSelector, переименован в FileSelNative и добавлен в MacOS (в дополнение к Win32 и gtk3).
  • Рефракторинг GLCtrl в OpenGL/X11.
  • Добавлена функция GetSVGPathBoundingBox.
  • PGSQL теперь может экранировать ? через ?? или использовать метод NoQuestionParams в целях избежания использования ? как символа подстановки параметров.

>>> Подробности

 , , ,

next_time
()

Релиз кроссплатформенного UI фреймворка MauiKit 1.1.0

Релиз кроссплатформенного UI фреймворка MauiKit 1.1.0
Группа Разработка

Проект Maui – это свободное программное обеспечение с открытым исходным кодом, поддерживаемое сообществом KDE и разработанное Nitrux Latinoamericana.

MauiKit – набор элементов управления и инструментов, основанных на QQC2 и Kirigami, совместно используемых в наборе приложений Maui. MauiKit помогает быстро создавать пользовательские интерфейсы, которые соответствуют Maui HIG. Основан на Qt, QML, и C++. Содержит компоненты, готовые к использованию и работающие на Android, Linux, Windows, Mac OS и iOS.

Версия 1.1.0 содержит обновления, новые функции, исправления ошибок. Для этого первого полного релиза пакеты распространяются непосредственно с официальной веб-страницы MauiKit. Это первый официальный стабильный релиз.

( читать дальше... )

>>> Подробности

 , , ,

cocucka
()

LLVM 10.0

Группа Разработка

LLVM – платформа для разработки компиляторов и тулчейнов под лицензией Apache 2.0 с исключениями.

Некоторые изменения в clang:

  • Теперь по умолчанию компиляция не запускается в новом процессе как раньше.

  • Поддерживаются концепты C++20.

  • Арифметика указателей в C и C++ разрешается только в пределах массивов, в соответствии со стандартами. Добавлены соответствующие проверки в Undefined Behavior Sanitizer.

  • Улучшена поддержка OpenCL и OpemMP 5.0.

  • Поведение в ряде случаев приближено к поведению GCC.

Некоторые общие изменения в LLVM:

  • Новые intrinsics для генерации оптимизированных векторных инструкций.

  • Значительно расширены возможности межпроцедурной оптимизации в экспериментальном фреймворке Attractor.

  • Множество улучшений в поддержке различных архитектур (AArch64, ARM, MIPS, PowerPC, SystemZ, X86, WebAssembly, RISC-V).

А также различные улучшения в libclang, clangd, clang-format, clang-tidy, Static Analyzer, LLDB.

>>> Подробности

 , , ,

anonymous
()

C++ Siberia 2020

C++ Siberia 2020
Группа Конференции и встречи

28-29 февраля мы отпразднуем конец зимы, прогрев мозги до максимально возможной температуры.

На очередной C++ Siberia обсудим конкурентность, функциональщину, рефлексию, новые стандарты и эпик фейлы комитета стандартизации. Выступят Тимур Думлер, Антон Полухин, Виталий Брагилевский и другие.

Конференция пройдет в лекторий-баре ПОТОК, что по адресу Новосибирск, Депутатская, 46.

До встречи на конференции!

>>> Подробности

 , ,

sermp
()