LINUX.ORG.RU

C++


355

17

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

RTranslator 2.0.0 и 2.0.1

Группа Android

После почти трёхлетней паузы состоялись выпуски 2.0.0 и 2.0.1 оффлайн-переводчика для Android RTranslator, написанного на языках C++ и Java и распространяемого по лицензии Apache 2.0.
Для работы приложению необходим достаточно быстрый смартфон с, как минимум, 6GB памяти.
Поддерживаемые языки: арабский, болгарский, каталонский, китайский, чешский, датский, немецкий, греческий, английский, испанский, финский, французский, хорватский, итальянский, японский, корейский, голландский, польский, португальский, румынский, русский, словацкий, шведский, тамильский, тайский, турецкий, украинский, урду и вьетнамский.

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

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

 , , ,

dataman
()

7-Zip 24.05

7-Zip 24.05
Группа Open Source

После пяти месяцев разработки состоялся выпуск 24.05 библиотеки и консольной утилиты 7-Zip, написанных на языках C и C++ и предназначенных для работы с архивами в формате 7z и многих других.

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

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

 , , , ,

dataman
()

whisper.cpp 1.6.0

whisper.cpp 1.6.0
Группа Разработка

15 мая состоялся выпуск 1.6.0 высокопроизводительной системы автоматического распознавания речи whisper.cpp, реализующей модель Whisper от OpenAI на языках C и C++, и распространяемой по лицензии MIT.

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

  • добавлена опция --flash-attn для ускорения обработки данных на устройствах с CUDA и Metal;
  • более высокая производительность на архитектуре ppc64;
  • исправлена ошибка обработки регулярного выражения в консольной утилите-примере main.

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

 , , , ,

dataman
()

Qalculate! 5.1 и 5.1.1

Группа Open Source

6 и 7 мая состоялись выпуски 5.1 и 5.1.1 C++ библиотеки, консольного и GUI-калькуляторов Qalculate!, написанных на языке C++ и распространяемых по лицензии GPL 2.0.

Изменения в библиотеке и консольном калькуляторе:

  • поддержка решения уравнений, содержащих функцию if();
  • поддержка решения root(a, x)=b (требуется рациональное значение для ln(a)/ln(b));
  • новые функции: powertower() и multiples();
  • новые единицы измерения солнечного радиуса, массы и светимости;
  • запрос желаемой интерпретации при первом использовании процентного сложения (например, 100 + 10% равно 110 или 100.1);
  • использование круглых скобок для экспоненты в научной системе счисления (со степенью 10);
  • поддержка целочисленной факторизации чисел в матрице или векторе, а также числителя и знаменателя в рациональном числе;
  • ослаблены условия для (x^a)^b = x^(a × b) и x^a × x^b = x^(a + b) при отключении комплексных чисел (исправлено падение);
  • исправление: если (ax + n)^2 > 1, где n чётно и a не равно 1, возвращается false;
  • исправления в функции setbits();
  • исправление Number::equals(0, ..., true), когда число бесконечно (влияет на функцию replace());
  • исправление a^(f(x))=a^(b*g(x)), где b=2 или b=3 (в версии 5.1.1).
  • другие исправления мелких ошибок и расширение возможностей.

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

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

 , , qalculate, ,

dataman
()

Pluto 0.9.2

Pluto 0.9.2
Группа Open Source

Состоялся корректирующий выпуск 0.9.2 консольного интерпретатора и встраиваемой библиотеки языка Pluto – альтернативной реализации языка Lua 5.4 со множеством изменений и улучшений в синтаксисе, стандартной библиотеке и интерпретаторе.

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

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

 , , , ,

dataman
()

ugrep-indexer 1.0.0

Группа Open Source

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

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

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

 , , , ,

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

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

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

 , , , ,

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.

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

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

 , , , ,

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