LINUX.ORG.RU

C++


344

17

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

fish 3.6.2 и 3.6.3 с исправлением CVE-2023-49284

Группа Безопасность

Состоялся корректирующий выпуск 3.6.2 интерактивной командной оболочки fish с исправлением уязвимости CVE-2023-49284.


fish shell использует некоторые символы Unicode для внутренней маркировки подстановочных знаков и расширений. Этот неправильный подход позволял читать эти символы в выводе подстановки команд, вместо того чтобы преобразовать их в безопасное внутреннее представление.

Хотя это может вызвать неожиданное поведение при прямом вводе (например, echo \UFDD2HOME имеет тот же вывод, что и echo $HOME), это может стать незначительной проблемой безопасности, если вывод подается из внешней программы в подстановку команд, где такой вывод может не ожидаться.

Этот недостаток дизайна появился в самых ранних версиях fish, ещё до появления системы контроля версий, и, как считается, присутствует в каждой версии fish, выпущенной за последние 15 лет или более, хотя и с разными символами.

Выполнение кода не представляется возможным, но DoS-атака (через раскрытие большого количества скобок) или раскрытие информации (например, через расширение переменных) потенциально возможны при определенных обстоятельствах.

В версии 3.6.3 исправлены только тесты.

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

 , ,

dataman
()

TeXstudio 4.7.0

Группа Open Source

После более трёх месяцев разработки состоялся выпуск 4.7.0 редактора документов LaTeX TeXstudio, написанного на языке C++ с использованием фреймфорка Qt (поддерживаются версии 5 и 6).

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

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

 , , , ,

dataman
()

Первый выпуск мультимедийной библиотеки LDL c поддержкой старых систем

Группа Open Source

Представляю Вашему вниманию разработанную мной первую версию мультимедийной библиотеки Little DirectMedia Layer, сокращённо LDL.

Библиотека написана на С++ 98 стандарта, что позволяет компилировать ее начиная с Visual C++ 6.0. Код распространяется на условиях Boost Software License 1.0. Но библиотека не ограничивает программистов в выборе стандарта языка C++, программист может использовать любой современный стандарт языка. Я придерживаюсь философии downgrade — это использование старых устройств и софта в повседневной жизни, когда компании не поддерживают свои же «устаревшие» операционные системы или устройства, увеличивая с каждой новой версией своего продукта системные требования, или прекращают поддержку девайса. Миллиарды устройств по всему миру ежесекундно перемалывают миллиарды инструкций неоптимизированного кода.

В этом году я выступил на конференции С++ 2023 с докладом «Вперед в прошлое, или Разрабатываем фреймворк под Windows 95 в 2023 году».

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

В самом начале процесса разработки я и не предполагал, что данная библиотека вообще возможна. Но при практической реализации прототипа, добавляя строчку за строчкой в фундамент будущей библиотеки, убеждался в возможности ее создания и практическом применении.

Резюмируя вышесказанное, возможно писать быстрые программы, нужно просто воспользоваться знаниями древних.

Возможности библиотеки:

  • поддержка Linux Debian 3 и выше (обеспечена нативная сборка);
  • поддержка Windows 95 — Windows 11;
  • простое API для работы с 2D графикой;
  • загрузка множества графических форматов (bmp, png, tga, jpg);
  • кроссплатформенное API над окнами и событиями ОС;
  • для аппаратного ускорения графики используется OpenGL 1.2 и
  • OpenGL 3.3, присутствует поддержка обработки графики только на ЦПУ, если отсутствует аппаратное ускорение;
  • рендер может быть выбран динамически при загрузке приложения;
  • единое API для всех систем — напиши один раз и компилируй везде!
  • воспроизведение звука;
  • динамическая и статическая линковка.

Планы на будущее:

  • поточное воспроизведение звука;
  • вывод текста с поддержкой библиотеки freetype;
  • дополнительные рендеры Direct3D 9, 10, 11;
  • API для работы с потоками;
  • встроенная поддержка API для работы с сетью;
  • портирование фреймворка на другие платформы: Android, IOS, MacOs.

Ссылки:

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

 ,

JordanCpp
()

libzim 9.0.0

libzim 9.0.0
Группа Open Source

Состоялся выпуск 9.0.0 библиотеки libzim, написанной на языке C++ и предназначенной для работы с файлами в формате ZIM. Разработка библиотеки ведётся и спонсируется проектом Kiwix.

ZIM — формат файла, предназначенный для офлайн-хранения информации, полученной из Web, в виде одного файла. В ZIM-файле в сжатом виде находятся логически связанные между собой html-страницы (а иногда и образы сайтов целиком) с работающими гиперссылками, изображениями, звуком и видео.

Проектом Kiwix разрабатывается набор консольных утилит zim-tools, десктопный и мобильные клиенты, и скрипты для создания файлов ZIM из дампов проектов Wikimedia или из HTML.

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

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

 , kiwix, , ,

dataman
()

SAIL 0.9.0 — библиотека декодирования изображений

Группа Open Source

Сегодня, в день 20-летия SAIL — библиотеки декодирования изображений для C/C++ — вышел релиз 0.9.0.

Демонстрационный скриншот: https://sail.software/demo.webp

Ключевые особенности:

  1. Четыре уровня API для в зависимости от ваших нужд.

Самый неглубокий уровень погружения - junior, где возможно загрузить только один фрейм с помощью двух строчек кода:

struct sail_image *image;
    SAIL_TRY(sail_load_from_file(path, &image));

Самый глубокий уровень погружения — загрузка анимированных или многостраничных изображений из нестандартных источников (не файла или памяти).

  1. Загрузка из файла или памяти из коробки.
  2. Динамически подгружаемые кодеки. Возможность скомпилировать кодеки в одну библиотеку (-DSAIL_COMBINE_CODECS=ON) если динамическая загрузка по какой-то причине неудобна.
  3. Написана на C11 с биндингом на C++11.
  4. Доступна на Windows, Linux, macOS.
  5. Доступна в пакетных менеджерах Conan, vcpkg, brew (некоторые PR ожидают слияния).
  6. Поддерживает все современные форматы изображений: JPEG, PNG, TIFF, GIF, AVIF, WEBP, JPEG XL и другие.
  7. Быстрее почти всех своих конкурентов в лице STB или FreeImage.

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

 , , ,

anonymous
()

argparse 3.0

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

Состоялся выпуск 3.0 C++ (стандарт C++17) header-only библиотеки парсинга аргументов командной строки argparse, распространяемой по лицензии MIT.

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

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

 , , , ,

dataman
()

NotepadNext 0.6.*

Группа Open Source

После более пяти месяцев разработки состоялся выпуск 0.6.3 кроссплатформенного (Linux, MacOS, Windows) редактора текстов NotepadNext, разрабатываемого на языке C++ с использованием библиотек Qt (поддерживается версия 6), Scintilla, Lua и других, распространяемого по лицензии GPL-3.0 и называемого автором кроссплатформенной реализацией Notepad++.

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

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

 , , , ,

dataman
()

CTranslate2 3.14.0

Группа Open Source

26 мая состоялся выпуск 3.14.0 CTranslate2 — фреймворков, разрабатываемых под лицензией MIT проектом OpenNMT на языках C++ и Python, и предназначенных для эффективного использования (с использованием оптимизаций для CPU и GPU) натренированных моделей в системах машинного перевода.

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

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

 , , , ,

dataman
()

FTXUI 4.1.1 - библиотека в функциональном стиле для создания консольных приложений

FTXUI 4.1.1 - библиотека в функциональном стиле для создания консольных приложений
Группа Open Source

После более трёх месяцев разработки состоялся выпуск 4.1.1 кроссплатформенной библиотеки для C++ (стандарт C++17) FTXUI (Functional Terminal (X) User Interface), предназначенной для создания приложений с текстовым интерфейсом и распространяемой по лицензии MIT.

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

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

 , , , ,

dataman
()

FINAL CUT 0.9.0 - библиотека для создания консольных приложений

Группа Open Source

22 мая, после более полутора лет разработки, состоялся выпуск 0.9.0 C++ библиотеки FINAL CUT, предназначенной для создания приложений с текстовым интерфейсом, не зависящей от библиотек ncurses, termbox или подобных, и распространяемой по лицензии LGPL-3.0.

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

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

 , , , ,

dataman
()

libzim 8.2.0 - библиотека для работы с файлами формата ZIM

libzim 8.2.0 - библиотека для работы с файлами формата ZIM
Группа Open Source

3 мая состоялся выпуск 8.2.0 библиотеки libzim для C++, предназначенной для работы с файлами в формате ZIM. Разработка библиотеки ведётся и спонсируется проектом Kiwix.

Кроме этого, проект Kiwix предоставляет набор консольных утилит zim-tools, десктопный и мобильные клиенты, и скрипты для создания файлов ZIM из HTML многих популярных сайтов.

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

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

 , , , ,

dataman
()

fmt 10.0.0

Группа Open Source

После восьми месяцев разработки состоялся выпуск 10.0.0 библиотеки форматирования данных fmt — быстрой и безопасной альтернативы stdio и iostreams для C++.

#include <fmt/color.h>

int main() {
    fmt::print(fmt::emphasis::bold | fg(fmt::color::red),
           "Elapsed time: {0:.2f} seconds", 1.23);
}

Список изменений:

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

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

 , ,

dataman
()

OpenToonz 1.7.*

Группа Open Source

После более года разработки состоялись выпуски 1.7 и 1.7.1 программы создания двумерных анимаций OpenToonz.

Краткий список изменений:

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

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

 , , ,

dataman
()

uni-algo 0.8.0 - библиотека алгоритмов Unicode для C++

Группа Open Source

uni-algo - быстрая C++ (диалект C++17) header-only библиотека алгоритмов Unicode 15.0, лицензированная как MIT/Public Domain.


Изменения:

  • добавлена поддержка scripts и script extensions (UAX #24);
  • в реализацию сегментации текста добавлена поддержка курсора;
  • оптимизировано конвертирование строк ASCII в UTF;
  • в класс una::error добавлен una::error::code;
  • версии в una::version преобразованы в классы;
  • файл uni_algo/version.h больше не используется несколькими файлами;
  • переименование UNI_ALGO_DISABLE_SHRINK_TO_FIT в UNI_ALGO_NO_SHRINK_TO_FIT;
  • переименование UNI_ALGO_DISABLE_BREAK_GRAPHEME в UNI_ALGO_DISABLE_SEGMENT_GRAPHEME;
  • переименование UNI_ALGO_DISABLE_BREAK_WORD в UNI_ALGO_DISABLE_SEGMENT_WORD;
  • переименование функций поиска в find;
  • переименование класса una::search в una::found.

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

 , , ,

dataman
()

Ada 2.* - быстрая C++ библиотека для парсинга URL

Группа Open Source

31-го марта и 17-го апреля состоялись выпуски 2.0.0 и 2.1.0 быстрой библиотеки парсинга URL для языка C++ (стандарт C++17).

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

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

 , , ,

dataman
()

RapidFuzz 3.0.0 и rapidfuzz-cpp 1.11.2 - библиотеки для нечёткого сравнения строк

Группа Open Source

rapidfuzz-cpp - быстрая, SIMD-оптимизированная библиотека на языке C++, реализующая несколько алгоритмов нечёткого сравнения строк и вычисления метрик:

RapidFuzz - основанная на rapidfuzz-cpp библиотека для языка Python.

Лицензия: MIT.

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

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

 , , , ,

dataman
()

Boost 1.82

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

Вышла новая версия Boost, набора кроссплатформенных библиотек C++. Некоторые крупные изменения:

  • более 20 библиотек запланировали отказ от поддержки C++98 в течение двух следующих релизов; минимальным требованием станет компилятор с поддержкой C++11 (например, gcc 4.8 и выше);
  • некоторые библиотеки (Math, Multiprecision) повышают требования к стандарту до C++14 (gcc 5, clang 5);
  • Mysql: новая библиотека на основе Asio, клиент MySQL;
  • Unordered: unordered_node_map, unordered_node_set - новые контейнеры на основе открытой адресации.

А также множество улучшений и исправлений в Core, Asio, Filesystem, JSON, Math, URL и других библиотеках.

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

 ,

unsigned
()

Выпуск LLVM 16

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

Вышла новая версия LLVM. Проект LLVM включает в себя оптимизатор и кодогенератор с LLVM IR во многие процессорные архитектуры, который используется многими проектами для реализации своих языков программирования, а также:

  • компилятор C/C++/Objective-C (Clang);
  • компилятор Fortran (Flang);
  • cтандартную библиотеку для С++ (libc++);
  • отладчик LLDB;
  • линкер LLD;
  • среду исполнения (runtime) для OpenMP;
  • некоторые другие компоненты.

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

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

 , ,

fsb4000
()

SciTE 5.3.4, Scintilla 5.3.4, Lexilla 5.2.3

SciTE 5.3.4, Scintilla 5.3.4, Lexilla 5.2.3
Группа Open Source

Состоялся выпуск 5.3.4 редактора текста SciTE и сопутствующих библиотек парсинга и редактирования кода.

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

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

 ,

dataman
()

msgpack C/C++ 6.0.0

Группа Open Source

Вышла новая версия msgpack for C/C++ — библиотеки сериализации двоичных данных на основе формата MessagePack.

Важные изменения:

  • имя С пакета в CMake изменено на msgpack-c;
  • имя С++ пакета в CMake изменено на msgpack-cxx;
  • удалено обязательное требование использования С++, если не используются тесты.

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

 , , , ,

dataman
()