LINUX.ORG.RU

C++


344

17

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

ugrep-indexer 1.0.0

Группа Open Source

Состоялся выпуск 1.0.0 консольной утилиты ugrep-indexer, написанной на языке C++ и предназначенной для ускорения рекурсивного поиска утилитой ugrep (при использовании в ней ключа --index).

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

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

 , ugrep, , ,

dataman
()

StringZilla 3.8.1

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

StringZillaSIMD- и SWAR-оптимизированная библиотека для C++ (с биндингами для языков C, JavaScript (модуль Node.js), Python, Rust и Swift) для быстрых строковых операций: поиск подстрок и набора символов (прямой и обратный), сортировка, расстояние Левенштейна, расстояние Хэмминга и других. Однако, функциональность не одинакова для всех языков.
Проект распространяется по лицензии Apache-2.0.

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

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

 , , , ,

dataman
()

Organic Maps в Google Summer of Code 2024

Группа Open Source

Organic Maps призывает всех желающих принять участие в ежегодной программе Google Summer of Code 2024 (GSoC), в рамках которой контрибьюторы (не только студенты!) со всего мира участвуют в разработке программного обеспечения с открытым исходным кодом под руководством опытных наставников из различных организаций. Мы участвуем в программе третий год подряд.

Мы делаем открытые мобильные офлайн-карты для путешественников и любителей активного отдыха на основе данных OpenStreetMap. Приложение уже установили более миллиона пользователей из 186 стран мира. Приложение доступно в F-Droid, Google Play, AppStore и даже FlatHub (desktop версия для разработки). Про нас пишут в блогах и упоминают в ведущих СМИ. На GitHub проекте более 8k ⭐ и около 700 forks.

Мы призываем всех желающих попробовать силы для участия в проекте и программе GSoC в частности.

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

 , , , ,

rtsisyk
()

NotepadNext 0.7

Группа Open Source

После четырёх месяцев разработки состоялся выпуск 0.7 редактора текстов NotepadNext, написанного на языке C++ с использованием библиотек Qt, Scintilla и др., и распространяемого по лицензии GPL-3.0.

Изменения:

  • улучшения для Python: добавлены ключевые слова match и case; поддержка атрибутов декоратора;
  • в диалог настроек добавлена возможность выбора языка локализации;
  • добавлен визуальный индикатор уровня масштабирования;
  • добавлена возможность сохранения закладок между сеансами;
  • обновление заголовка окна при работе в режиме администратора;
  • другие изменения.

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

 , , ,

dataman
()

Thalassa CMS 0.1.20

Группа Open Source

Вышел очередной релиз Thalassa CMS, сочетающей генератор статического HTML и CGI-программу для поддержки пользовательских комментариев. Thalassa CMS написана на C++ и, по заявлению автора, не имеет внешних зависимостей, не использует СУБД и не генерирует страниц со скриптами.

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

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

 , ,

anonymous
()

GLM 1.0.0 — математическая библиотека для C++

GLM 1.0.0 — математическая библиотека для C++
Группа Разработка

24 января, после почти четырёхлетней паузы, состоялся выпуск 1.0.0 header-only SIMD-оптимизированной библиотеки для C++ GLM (OpenGL Mathematics), основанной на спецификациях GLSL (pdf) (OpenGL Shading Language).

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

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

 , , header-only, ,

dataman
()

SRELL 4.038 — библиотека ECMAScript-совместимых регулярных выражений

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

24 января состоялся выпуск 4.038 C++ библиотеки SRELL (Std::RegEx-Like Library), реализующей ECMAScript-совместимые регулярные выражения.
Список изменений:

  • исправлена ошибка, из-за которой по выражению /(?:ab)+|cd/ находилась строка «ababcd»;
  • небольшие улучшения.

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

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

Более подробное описание доступно на сайте автора.

История изменений: англ./яп..
Постоянная ссылка на актуальную версию: https://www.akenotsuki.com/misc/srell/srell-latest.

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

 , , ,

dataman
()

Дискуссия об использовании языка C++ для разработки ядра Linux

Группа Ядро Linux

В списке рассылки разработчиков ядра Linux возобновилось начатое шесть лет назад обсуждение перспектив использования современного кода на C++ в ядре Linux, помимо нынешнего применения языка Си с ассемблерными вставками и продвижения языка Rust. Изначально тема разработки ядра на C++ была поднята в 2018 году инженером из Red Hat, который первого апреля в качестве шутки опубликовал набор из 45 патчей для использования шаблонов, наследуемых классов и перегрузки функций C++ в коде ядра.

С инициативой продолжения обсуждения выступил Ганс Питер Анвин (Hans Peter Anvin), один из ключевых разработчиков ядра в компании Intel и создатель таких проектов как syslinux, klibc и LANANA, разработавший для ядра Linux систему автомонтирования, реализацию RAID 6, драйвер CPUID и x32 ABI. По мнению Анвина, который является автором многочисленных макросов и ассемблерных вставок в ядре, с 1999 года языки C и C++ значительно продвинулись вперёд в своём развитии и язык C++ стал лучше, чем С, подходить для разработки ядра операционных систем.

Возможности, для которых ещё недавно приходилось привлекать специфичные GCC-расширения, теперь легко реализовать на стандартном C++, и во многих случаях использование C++ позволит улучшить инфраструктуру без глобального изменения кода. В качестве минимальной упоминается использование спецификации C++14, которая включает необходимые средства метапрограммирования, а в качестве желаемой - использование спецификации C++20, в которой появилась поддержка концепций, способных исключить появление многих ошибок.

Анвин считает, что C++ более предпочтителен, чем Rust, так как последний существенно отличается от языка С по синтаксису, непривычен для текущих разработчиков ядра и не позволяет постепенно переписывать код (в случае языка С++ можно по частям переводить код с языка C, так как С-код можно компилировать как C++). В поддержку использования С++ в ядре также выступили Иржи Слаби (Jiri Slaby) из компании SUSE и Дэвид Хауэллс (David Howells) из Red Hat.

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

 ,

zx_gamer
()

CMake 3.28

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

6 декабря состоялся выпуск 3.28 кроссплатформенной системы сборки CMake, написанной на языке C++ и распространяемой по лицензии BSD-3.

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

>>> Полный список изменений

 , , , ,

dataman
()

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
()