Профиль: Аноним (вход | регистрация) неRU opennet.me  
OpenNET

[ новости /+++ | форум | теги |    ]

·28.09.2026 В 2025 году выручка компании Canonical достигла 345 млн долларов (71 +2)
  Компания Canonical раскрыла финансовые показатели за 2025 год. Выручка за 2025 год составила 345 млн долларов, а чистая прибыль - 22.8 млн долларов при валовой маржинальности 89%. Для сравнения в 2024 году размер выручки был 292 млн долларов, а чистая прибыль - 18.1 млн долларов. Что касается затрат, то 27% полученных средств было потрачено на организацию продаж и маркетинг, 11% (в 2024 году 13%) на исследования и разработку, а 47% на общие расходы и административные нужды. Среднее число сотрудников за год увеличилось с 596 до 607 человек.

Обсуждение (71 +2) | Тип: К сведению |
·28.09.2026 Выпуск видеоредактора Shotcut 26.9 (19 +11)
  Опубликован релиз видеоредактора Shotcut 26.9, развиваемого автором проекта MLT и использующего данный фреймворк для редактирования видео. Поддержка форматов видео и звука реализована через FFmpeg. Возможно использование плагинов с реализацией видео и аудио эффектов, совместимых с Frei0r и LADSPA. Из особенностей Shotcut можно отметить возможность многотрекового редактирования с компоновкой видео из фрагментов в различных исходных форматах, без необходимости их предварительного импортирования или перекодирования. Имеются встроенные средства для создания скринкастов, обработки изображения с web-камеры и приёма потокового видео. Код написан на C++ с использованием фреймворка Qt и распространяется под лицензией GPLv3. Готовые сборки доступны для Linux (AppImage и snap), macOS и Windows.

Среди изменений в новом выпуске:

  • Представлен новый логотип проекта.
  • Модернизировано оформление интерфейса пользователя, скруглены углы многих элементов.
  • В свойства звуковых дорожек на временной шкале добавлена опция для автоматического приглушения звука (Automatic Audio Ducking), например, для уменьшения громкости фоновой музыки во время речи. В заголовки дорожек на временной шкале добавлены регулятор громкости и индикатор уровня звука, позволяющие микшировать звук без открытия отдельных панелей. Для повышения качества звука прекращено его преобразование в 16-разрядное целочисленное представление (все операции теперь производятся с использованием 32-разрядного формата с плавающей запятой).

  • Во временной шкале реализована возможность добавления корректирующих клипов (Timeline > Generate > Adjustment Clip) - пустых клипов, применяемых для наложения фильтров на все клипы в низлежащих видеодорожках.
  • Повышена производительность временной шкалы при перемещении клипов между дорожками, масштабировании и отмене выполнения операций.
  • Для решения проблем с зависанием из-за плагинов VST2 в настройках опция выхода из безопасного режима (Leave Safe Mode) заменена на выключенный по умолчанию флаг разрешения загрузки сторонних плагинов ("Allow External Plugins"). Также реализовано определение зависания при запуске из-за плагинов с автоматическим отключением внешних плагинов при следующем запуске.
  • В диалог "Missing Files" и в меню "View > Resources" добавлено контекстное меню с кнопкой Copy для копирования файловых путей.
  • Пакет FFmpeg обновлён до ветки 9.0.
  • Устранены уязвимости, такие как откат на HTTP без шифрования в случае сбоя проверки обновления по HTTPS, игнорирование ошибок в сертификатах, возможность подмены URL с обновлением, отсутствие проверки целостности загруженных данных и получение описаний расширений в форме QML-файлов.

  1. OpenNews: Выпуск видеоредактора Shotcut 26.8
  2. OpenNews: Доступен видеоредактор Flowblade 2.22
  3. OpenNews: Релиз программы для редактирования видео LosslessCut 3.66
  4. OpenNews: Выпуск свободного видеоредактора OpenShot 4.0
  5. OpenNews: Выпуск видеоредактора KeyCut 1.0
Обсуждение (19 +11) | Тип: Программы |
·28.09.2026 Выпуск Wifibox 0.17, окружения для использования WiFi-драйверов Linux во FreeBSD (33 +4)
  Доступен выпуск проекта Wifibox 0.17, нацеленного на решение проблемы с использованием во FreeBSD беспроводных адаптеров, для которых отсутствуют необходимые драйверы. Работа проблемных для FreeBSD адаптеров в Wifibox обеспечивается через запуск гостевой системы с Linux, в которой загружаются родные для Linux драйверы беспроводных устройств. Окружение потенциально может применяться для любых WiFi-карт, поддерживаемых в Linux, и протестировано на чипах Intel, AMD/MediaTek, Realtek, Qualcomm и Broadcom.

Установка гостевой системы с драйверами автоматизирована, а все необходимые компоненты оформлены в виде готового пакета wifibox, который запускается при загрузке при помощи поставляемого в комплекте rc-сервиса. Гостевая система запускается при помощи гипервизора Bhyve, в котором организуется проброс доступа к беспроводной карте. Для работы требуется система с поддержкой аппаратной виртуализации (AMD-Vi или Intel VT-d). Начинка гостевой системы основана на дистрибутиве Alpine Linux, построенного на базе системной библиотеки Musl и набора утилит BusyBox.

Для подключения к беспроводной сети используется пакет wpa_supplicant, файлы конфигурации для которого синхронизируются с настройками из основного окружения FreeBSD. Создаваемый для wpa_supplicant управляющий Unix-сокет пробрасывается в хост-окружение, что позволяет использовать штатные утилиты FreeBSD для подключения и работы с беспроводной сетью, такие как wpa_cli и wpa_gui (net/wpa_supplicant_gui).

В новом выпуске прекращено использование для загрузки grub-bhyve, оставлена только возможность запуска гостевых систем с поддержкой UEFI. Прекращено использование сетевых мостов (для корректной работы во FreeBSD 15 сетевой интерфейс tap теперь используется напрямую без заворачивания через интерфейс bridge). Прекращена поддержка ветки FreeBSD 13. Обеспечено завершение управляющего процесса в случае завершения выполнения гостевой системы.

  1. OpenNews: Для FreeBSD развивают новый системный менеджер rcd
  2. OpenNews: Отчёт о развитии FreeBSD за второй квартал 2026 года
  3. OpenNews: Порты FreeBSD временно заморожены из-за добавления слишком большого файла
  4. OpenNews: Возобновлена работа над ОС NextBSD, сочетающей технологии FreeBSD и macOS
  5. OpenNews: Базовая система FreeBSD-CURRENT избавлена от компонентов под лицензией GPL
Обсуждение (33 +4) | Тип: Программы |
·28.09.2026 Выпуск программы для ведения заметок OutWiker 4.1 (25 +5)
  Опубликован выпуск программы для хранения заметок OutWiker 4.1. Программа хранит заметки в виде каталогов с текстовыми файлами, к каждой заметке можно прикреплять произвольное количество файлов. Заметки можно создавать с использованием разметки HTML, вики и Markdown (если установлен соответствующий плагин). С помощью плагинов можно добавить возможность размещения на викистраницах формул в формате LaTeX и вставки блоков кода с подсветкой синтаксиса различных языков программирования. Программа написана на языке Python (интерфейс на wxPython), распространяется под лицензией GPLv3 и доступна в сборках для Linux (snap и flatpak) и Windows.

Изменения в версии 4.1:

  • Появилась возможность создания заметки на основе выделенного текста в открытой заметке.
  • Добавлена поддержка открытия заметки в новой вкладке сразу после её создания.
  • Реализована сортировка заметок по дате создания или изменения.
  • Добавлена настройка цветов облака тегов.
  • Обеспечено сохранение положения прокрутки в режиме просмотра.
  • Продолжена работа по перерисовке значков для заметок из растрового в векторный формат.
  • Решены проблемы с работой приложения в оконных менеджерах, использующих Wayland в Linux.

Началась работа над следующей версией OutWiker 5.0, в которой для Windows задействован более новый HTML-движок Edge, но прекращена поддержка Windows 7.

  1. OpenNews: Выпуск программы для ведения заметок OutWiker 4.0
  2. OpenNews: Открыт код платформы для ведения заметок Notesnook, конкурирующей с Evernote
  3. OpenNews: Первый выпуск программы для ведения заметок KleverNotes
Обсуждение (25 +5) | Автор: Jenyay | Тип: Программы |
·27.09.2026 Первый выпуск osu!cpp, неофициального клиента для игры osu! на C++23 и Skia (34 +9)
  Опубликован первый выпуск osu-cpp, неофициального клиента ритм-игры osu!, написанного на C++23 в виде модулей и использующего для отрисовки библиотеку Skia. Код распространяется под лицензией AGPLv3. Клиент собирается для Linux (обычная сборка, Flatpak, Nix, Guix), для браузера (WebAssembly), для Android и для Ubuntu Touch. Браузерную версию можно запустить без установки. Вместе с клиентом под лицензией AGPLv3 развиваются библиотеки для построения графического интерфейса skiff и skiff-widgets.

Основные возможности:

  • Режим osu!standard;
  • pp (Performance Points), которые считаются прямо во время игры;
  • Запись и воспроизведение реплеев, экспорт реплея в видео MP4;
  • Загрузка карт через зеркала osu.direct и catboy.best, импорт архивов .osz;
  • Отрисовка через OpenGL, через Vulkan или программно;
  • Поддержка частичной локализованной отрисовки в меню;
  • Отсутствие отрисовки, когда на экране ничего не меняется.

Выпуск собирается дважды, второй раз без кеша компилятора, и результаты сравниваются для проверки воспроизводимости сборок: у 0.1.0 все сборки полностью совпали. Для Android используется сборка минимального Android NDK посредством minimal-android-ndk.cpp (AGPLv3), так как официальные бинарные сборки Android NDK распространяются под проприетарной лицензией. Весь код распространяется под AGPLv3, но при первом запуске опционально скачивается несвободный скин под лицензией CC-BY-NC-4.0. Приложение может работать и без него.

Обсуждение (34 +9) | Автор: j4niwzis | Тип: Программы |
·25.09.2026 Опубликован менеджер установки приложений F-Droid 2.0 (140 +49)
  Проект F-Droid, развивающий каталог открытых приложений для Android, опубликовал официальное мобильное приложение F-Droid 2.0, в котором задействовано современное оформление в стиле Material Design, переписаны ключевые компоненты, переработана система разделения приложений на категории, упрощены процессы поиска и установки приложений, но при этом сохранены привычные методы работы. Код проекта распространяется под лицензией GPLv3.

По умолчанию осуществляется навигация по каталогу свободных программ f-droid.org, но поддерживается подключение к любому другому совместимому с F-Droid репозиторию. Программа выполняет такие задачи, как уведомление о появлении обновлений, автоматическая загрузка и установка обновлений, отсеивание программ, несовместимых с установленной версией Android, поиск нужных программ, проверка целостности по цифровой подписи.

Среди изменений:

  • Приложение полностью переписано на Kotlin и Jetpack Compose, что упростило сопровождение и снизило порог вхождения новых разработчиков.
  • Оформление переделано в соответствие с концепцией Material Design при сохранении фирменного стиля.
  • Навигация сведена к трём разделам: "Обзор", "Поиск" и "Мои приложения", а настройки и функция передачи приложений на другие устройства (Nearby Swap) перенесены в верхнюю панель.
  • Обеспечен поиск не только по названиям, но и по описаниям и категориям. Реализовано сохранение истории прошлых поисковых запросов.
  • Расширены категории приложений. Добавлены мета-категории, например, раздел "Игры" разделен на 17 подразделов в соответствии с жанрами игр.
  • Добавлена поддержка фильтрации вывода по категории, совместимости с устройством и отсутствию нежелательных функций.
  • Задействован актуальный API для установки сторонних приложений.
  • По умолчанию включена фоновая проверка и установка обновлений. Ручная проверка перенесена в меню "Мои приложения".
  • Упрощена настройка работы через сеть Tor.
  • Прекращена поддержка платформы Android 6 (требуется как минимум Android 7).
  • Временно отключена функция Nearby для прямого обмена приложениями между устройствами, но она будет возвращена в одном из следующих выпусков.

  1. OpenNews: Угроза существованию F-Droid после введения регистрации разработчиков Android-приложений
  2. OpenNews: Проекты F-Droid и Android Rebuilds ввели в строй репозиторий с пересобранным Android SDK
  3. OpenNews: Выпуск менеджера установки свободных приложений F-Droid 1.0
  4. OpenNews: Представлен новый интерфейс к каталогу свободных Android-приложений F-Droid
Обсуждение (140 +49) | Тип: Программы |
·24.09.2026 Выпуск среды рабочего стола COSMIC 1.9.0 (78 +23)
  Компания System76, разрабатывающая Linux-дистрибутив Pop!_OS, опубликовала выпуск среды рабочего стола COSMIC 1.9.0. Пакеты с COSMIC 1.9.0 доступны в дистрибутиве Pop!_OS 24.04 и в ближайшее время ожидаются в Fedora, NixOS, Arch Linux, openSUSE, Aeyrin OS, Redox и CachyOS. Код написан на языке Rust и распространяется под лицензиями GPLv3 (приложения) и MPL-2.0 (библиотеки).

COSMIC развивается как универсальный проект, не привязанный к конкретному дистрибутиву и соответствующий спецификациям Freedesktop. Для построения интерфейса в COSMIC задействована библиотека Iced, которая использует безопасные типы, модульную архитектуру и модель реактивного программирования, а также предлагает архитектуру, привычную для разработчиков, знакомых с языком декларативного построения интерфейсов Elm. Предоставляется несколько движков отрисовки, поддерживающих Vulkan, Metal, DX12, OpenGL 2.1+ и OpenGL ES 2.0+. Разработчикам предлагается готовый набор виджетов, возможность создавать асинхронные обработчики и использовать адаптивную компоновку элементов интерфейса в зависимости от размера окна и экрана.

Помимо использования языка Rust из особенностей COSMIC выделяются режимы гибридной мозаичной компоновки окон и стекового закрепления окон (группировка окон по аналогии со вкладками в браузере), которые могут включаться в привязке к виртуальным рабочим столам. Проектом также разрабатывается композитный сервер cosmic-comp на базе Wayland.

Среди изменений:

  • Реализован просмотрщик изображений COSMIC Viewer, предоставляющий встроенные инструменты редактирования (кадрировние, поворот) с возможностью отмены изменений.
  • Опубликован релиз экранной клавиатуры COSMIC OSK, поддерживающей набор с сенсорного экрана или геймпада.
  • Переработано оформление менеджера приложений COSMIC Store, добавлено отображение имени разработчика.
  • Добавлен апплет для адаптивного показа экранной клавиатуры.
  • В композитном менеджере cosmic-comp реализована возможность показа обоев рабочего стола и экранной клавиатуры на экране блокировки системы.
  • В файловом менеджере cosmic-files в диалог сохранения файла добавлены настройки сортировки.
  • В экран входа в систему cosmic-greeter добавлена опциональная поддержка systemd-homed.
  • Реализовано скрытие всех видимых уведомлений в случае включения режима "не беспокоить".
  • В панели предоставлена настройка толщины рамок.
  • В конфигуратор добавлены настройки экранной клавиатуры и реализована опция для показа дня недели.
  • В cosmic-settings-daemon обеспечена синхронизация настроек шрифтов для приложений GNOME.

  1. OpenNews: Выпуск среды рабочего стола COSMIC 1.8.0
  2. OpenNews: Выпуск дистрибутива Pop!_OS 24.04, поставляемого с рабочим столом COSMIC
  3. OpenNews: Первый стабильный релиз среды рабочего стола COSMIC
Обсуждение (78 +23) | Тип: Программы |
·23.09.2026 Дистрибутив Peppermint OS переходит с X.Org Server на XLibre (73 +19)
  Разработчики Linux-дистрибутива Peppermint OS, построенного на пакетной базе Debian GNU/Linux и предлагающего пользовательское окружение на основе рабочего стола Xfce и файлового менеджера Thunar, анонсировали переход на использование по умолчанию XLibre, форка X.Org Server. XLibre будет задействован в следующем обновлении iso-образов PeppermintOS, до публикации которых для тестирования предложены экспериментальные сборки.

В обозримом будущем Peppermint OS планирует оставаться на стеке X11, так как в среде рабочего стола Xfce намерены продолжать полноценную поддержку X11. По мнению разработчиков Peppermint OS, проект XLibre отлично подходит для пользователей, предпочитающих использовать X11 вместо Wayland, так как в нём продолжена работа по исправлению ошибок, сопровождению, чистке и модернизации оригинальной кодовой базы X.Org Server.

  1. OpenNews: Дистрибутив Artix вернулся с XLibre на X.Org Server
  2. OpenNews: Выпуск проекта XLibre XServer 25.2.0, развивающего форк X.Org Server
  3. OpenNews: Представлен GTK2-NG, форк библиотеки GTK2
  4. OpenNews: Проекты Artix Linux и GhostBSD переходят с X.Org Server на XLibre
  5. OpenNews: Сформирован выпуск Linux-дистрибутива Peppermint OS на базе Debian
Обсуждение (73 +19) | Тип: Программы |
·23.09.2026 Выпуск музыкального проигрывателя Fooyin 0.13 (181 +15)
  Состоялся выпуск музыкального проигрывателя Fooyin 0.13, нацеленного на предоставление расширенных возможностей по настройке и адаптации программы под свои предпочтения. В Fooyin предложен набор виджетов с реализацией различных режимов управления музыкальной коллекцией и воспроизведения музыки. Дополнительные возможности могут подключаться в форме плагинов. Для настройки интерфейса предлагается конфигуратор раскладки элементов на экране. Проект написан на языке С++ с использованием библиотеки Qt и распространяется под лицензией GPLv3. Готовые пакеты сформированы для Fedora, Debian и Ubuntu, а также в формате flatpak.

Поддерживается воспроизведение файлов в формате FLAC, MP3, MP4, Vorbis, Opus, WavPack, WAV, AIFF, Musepack, Monkey's Audio, VGM и различных трекерных форматов. Среди возможностей Fooyin: извлечение сведений о порядке и длительности звуковых треков из CUE-файлов, воспроизведение без пауз (gapless), создание, импорт и экспорт списков воспроизведения в форматах M3U/M3U8, фильтрация содержимого музыкальной библиотеки по любым полям, древовидное представление коллекции, редактирование тегов, визуализации при помощи спектрограмм, навигация на уровне каталогов в файловой системе с возможностью прямого воспроизведения выбранных файлов. Для внешнего управления проигрывателем может использоваться D-Bus-интерфейс MPRIS (Media Player Remote Interfacing Specification).

Наиболее заметные улучшения:

  • Добавлена поддержка воспроизведения и риппинга звуковых CD. Реализована проверка целостности файлов и верификация точности оцифровки всего диска. Предложены два режима воспроизведения CD - с использованием плейлистов и очереди треков.
  • В музыкальной библиотеке появилась поддержка сохраняемых фильтров и реализован вывод статистки популярности композиций с возможностью синхронизации с Last.fm. Реализован поиск метаданных MusicBrainz.
  • Добавлена поддержка глобальных комбинаций клавиш.
  • Добавлены настраиваемые пользователем команды "Run Services" для запуска внешних приложений.
  • Предоставлена возможность управления громкостью, зацикливанием и повторным воспроизведением через интерфейс командной строки.
  • Добавлена настройка для блокировки перевода экрана в спящий режим.

  1. OpenNews: Выпуск музыкального проигрывателя Qmmp 2.4
  2. OpenNews: Выпуск музыкального проигрывателя Rhythmbox 3.5
  3. OpenNews: Выпуск музыкального проигрывателя Audacious 4.6
  4. OpenNews: Опубликован музыкальный проигрыватель Nocturne 1.0
  5. OpenNews: Новая версия музыкального проигрывателя DeaDBeeF 1.10.1
Обсуждение (181 +15) |
·23.09.2026 Первый выпуск scan, библиотеки разбора текста для C++ с построением конечного автомата при компиляции (96 +14)
  Опубликован первый выпуск библиотеки scan (0.1.0), разбирающей текст в значения по шаблону, известному на этапе компиляции. Шаблон или формат записывается как аргумент шаблона C++ и превращается при компиляции в размеченный детерминированный конечный автомат (tagged deterministic finite automaton, TDFA), обход которого разворачивается по состояниям в код на этапе компиляции с использованием шаблонов C++. Результатом выполнения является значение запрошенного типа. Код проекта написан на C++23 и распространяется под лицензией GPLv3.

   import scan;

   // Совпадает ли вся строка. Каждая точка входа - ещё и адаптор диапазона.
   scan::match<"[a-z]+@[a-z.]+">(address);
   address | scan::match<"[a-z]+@[a-z.]+">;

   // С группами.
   const auto found = scan::match<"([0-9]+)-([a-z]+)">("42-abc");
   found.get<1>().to_view();            // "42"

   // Начало строки, занятое шаблоном, и первое совпадение где угодно.
   scan::starts_with<"[a-z]+">("abc123").whole().to_view();   // "abc"
   scan::search<"[0-9]+">("id=4210x").to_view();              // "4210"

   // Все совпадения и куски между ними - ленивые представления.
   for (const auto& one : text | scan::search_all<"[a-z]+">) { ... }
   const auto fields = "a,bb,,ccc" | scan::split<","> | std::ranges::to<std::vector>();

   // Значения, а не текст.
   struct row { int id; std::string_view name; };
   const row one = scan::scan<"{},{[a-z]+}">(line);

   // Список, сумма типов, вложенная форма.
   struct all { std::vector<int> values; std::variant<int, std::string_view> tail; };
   const all got = scan::scan<"{{}{*,?}} {{[0-9]+}|{[a-z]+}}">("1,2,3 abc");

   // Начало ввода и то, что от него осталось.
   const auto [value, rest] = scan::scan_prefix<"{},{}">(line).take<point>();

   // По записи за раз, из чего угодно.
   for (const row& one : scan::each<"{},{[a-z]+}\\n">(text).of<row>()) { ... }

Диапазон, который можно прочитать лишь однажды, читается без буферизации, поля собираются по мере поступления символов. Сколько символов придётся удержать, шаблон задаёт при компиляции; там, где такого числа нет, чтение отклоняется при компиляции.


   std::istringstream source("set speed 42\\nset gain 7\\n");
   source > std::noskipws;
   struct command { scan::held<16> name; int value; };
   for (const command& one :
        scan::each<"set {[a-z]+} {[0-9]+}\\n">(std::views::istream<char>(source))
            .of<command>()) { ... }
Производительность.

Замеры проведены на Ryzen 9 9950X, clang 22.1.8 с libc++, -O3 -march=native,LTO. Тридцать две записи за проход, медиана семи проходов.


   "([a-z]+),([a-z]+),([a-z]+),([a-z]+),([a-z]+)"    "alpha,bravo,charlie,delta,echo"

     scan::scan<f>.sentinel()      477 нс
     re2c                          554 нс
     scan::scan<f>                 659 нс
     CTRE                          717 нс
     RE2                         15986 нс

   те же пять полей, по двести букв каждое

     scan::scan<f>.sentinel()     57.8 нс
     re2c                          637 нс
     CTRE                          692 нс
     RE2                         11751 нс

   "[email protected]"   распознавание, ничего не извлекается

     scan::match<p>.sentinel().scalar()   436 нс
     scan::match<p>.scalar()              545 нс
     re2c                                1186 нс
     RE2                                 2616 нс
     CTRE                               14339 нс

Свёртка групп по ходу разбора

Типу сообщается, к какой из его групп относится очередной символ, и вычисление выполняется на месте: ни одна итерация цикла не сохраняется, ни одной подстроки не создаётся.


   struct tally { unsigned long value = 0; };
   struct reading { tally number; std::string_view tail; };

   template <>
   struct scan::scanner<tally> {
     static constexpr std::string_view pattern() { return R"(\\(((_+)(X|Y)*)*\\))"; }
     struct state_type { unsigned long total = 0; unsigned place = 0, marks = 0; };
     static constexpr state_type begin_groups() { return {}; }
     static constexpr void opened_group(state_type& one, scan::group_at<0>) {
       one.place = 0; one.marks = 0;
     }
     static constexpr void closed_group(state_type& one, scan::group_at<0>) {
       unsigned long weight = 1;
       for (unsigned step = 1; step < one.place; ++step) weight *= 10;
       one.total += weight * one.marks;
     }
     static constexpr void push_group(state_type& one, scan::group_at<1>, char) {
       ++one.place;
     }
     static constexpr void push_group(state_type& one, scan::group_at<2>, char letter) {
       one.marks += letter == 'Y' ? 2u : 1u;
     }
     static constexpr tally finish_groups(state_type one) { return {one.total}; }
   };

   const reading got =
       scan::scan<"value={}{[a-z]*}">("value=(__X_XX)abcdefgh").of<reading>();
   // got.number.value == 12, got.tail == "abcdefgh"
heap scan::scan<f>.scalar() написанное вручную scan::scan<f>
10 141 ns 41.4 ns 42.5 ns 170 ns
100 439 ns 341 ns 392 ns 1176 ns
1000 3314 ns 3170 ns 3797 ns 11887 ns


Контексты и аллокаторы

Любой объект вызывающей стороны - аллокатор, пул, арену, что угодно ещё - можно передать в тот вызов, который создаёт значение. Тип контекста при этом не теряется: состояние сканера и каждый его хук могут быть шаблонами по нему, так что в сканере не упомянут ни один тип вызывающей стороны.


   struct arena {
     std::pmr::memory_resource* where = nullptr;
     std::pmr::memory_resource* resource() const { return where; }
   };

   struct numbers { std::pmr::vector<int> values; };
   struct both { numbers left; numbers right; };

   template <>
   struct scan::scanner<numbers> {
     static constexpr std::string_view pattern() { return "([0-9]+)(?:,([0-9]+))*"; }

     template <class Told>
     struct state { std::pmr::vector<int> values; int running = 0; };

     static state<scan::default_context_t> begin_groups() { return {}; }

     template <class Told>
       requires requires(const Told& one) { one.resource(); }
     static state<Told> begin_groups(const Told& told) {
       return {std::pmr::vector<int>(told.resource()), 0};
     }

     template <class Told, std::size_t Which>
     static void push_group(state<Told>& one, scan::group_at<Which>, char digit) {
       one.running = one.running * 10 + (digit - '0');
     }
     template <class Told, std::size_t Which>
     static void closed_group(state<Told>& one, scan::group_at<Which>) {
       one.values.push_back(one.running);
       one.running = 0;
     }
     template <class Told>
       static numbers finish_groups(state<Told> one) { return {std::move(one.values)}; }
   };

   std::pmr::monotonic_buffer_resource bytes;
   const arena mine{&bytes};

   scan::scan<"{} {}">(text).of<both>(mine);                            // один на оба места
   scan::scan<"{} {}">(text).of<both>(mine, scan::default_context);     // по одному на место
   scan::scan<"{} {}">(text).of<both>({mine, scan::default_context});   // то же в скобках
   const both got = scan::scan<"{} {}">(text).with(mine);

   // Контексту не обязательно быть своим типом: аллокатор доходит до того,
   // что строит чтение.
   struct two { std::pmr::string name; std::pmr::string tail; };
   const two kept = scan::scan<"{[a-z]+} {[a-z]+}">(text).of<(
       std::pmr::polymorphic_allocator<>(&bytes));

Хук получает сам объект вызывающей стороны, а не копию, поэтому состояние может хранить его адрес: контекст живёт столько же, сколько вызов, а всё чтение происходит внутри этого вызова.

Прочие особенности

  • Два слоя: слой шаблонов (match, starts_with, search, search_all, split) и слой форматов, где "{}" - поле, а значение места определяют поля самого типа.
  • Правило разрешения неоднозначности - leftmost-first, как в Perl, RE2 и CTRE.
  • Всё перечисленное работает и в константных выражениях.
  • Нет lookaround, обратных ссылок и свойств Unicode; шаблоны работают с байтами.
  • Не поддерживаются шаблоны, известные только во время выполнения.
Сборка

Собирается в clang и GCC. Модули C++ не обязательны: доступны заголовочные файлы (include/), которые генерирует из тех же модулей утилита demodulizer - каждый push в main пересобирает, линкует и коммитит их обратно. Единственная зависимость, Boost.PFR, не нужна при включённых binding packs из C++26.


   FetchContent_Declare(scan
     GIT_REPOSITORY https://github.com/j4niwzis/scan.git
     GIT_TAG        v0.1.0)
   FetchContent_MakeAvailable(scan)
   target_link_libraries(mine PRIVATE scan::scan)

Обсуждение (96 +14) | Автор: j4niwzis | Тип: Программы |
·22.09.2026 Релиз операционной системы NetBSD 10.2 (47 +18)
  Опубликован релиз операционной системы NetBSD 10.2, который отнесён к категории корректирующих обновлений и включает в основном исправления проблем и уявзимостей, выявленных с момента публикации NetBSD 10.1 в декабре 2024 года. Ветка NetBSD 10 будет поддерживаться до релиза NetBSD 12.0. Для загрузки подготовлены установочные образы размером 639 МБ, доступные в сборках для 57 системных архитектур и 16 различных семейств CPU. Для новых установок рекомендуется использовать недавно опубликованный релиз NetBSD 11.0.

Из не связанных с исправлением ошибок изменений отмечается поддержка новых версий компиляторов, повышение стабильности работы WiFi-драйвера iwm, решение проблем при работе на системах Olimex A64 и MIPS R5000SC, реализация возможности загрузки ядра для amd64 при вызове qemu с опцией "-kernel". Добавлена поддержка устройств ASIX AX88179A USB Ethernet, Asus USB-N10 Nano B1 Wi-Fi, Realtek RTL8126 5Gbps Ethernet, RTL8125D (rev 0x6890000), RIoTboard i.MX6S IOMUX, VMware PV SCSI. Устранены уязвимости в ipfilter, telnet, TCP-стеке ядра, OpenSSL, Unbound и X.Org. Обновлены версии openssl 3.0.21, tmux 3.6a и xkbcomp 1.5.0.

  1. OpenNews: Доступен NetBSD 9.5, финальный выпуск в ветке 9.x
  2. OpenNews: Релиз операционной системы NetBSD 11.0
  3. OpenNews: ОС NetBSD портирована на системы с процессорами Motorola 68000
  4. OpenNews: Представлен Netbase, порт утилит NetBSD для других Unix-подобных систем
  5. OpenNews: Релиз операционной системы NetBSD 10.1
Обсуждение (47 +18) | Тип: Программы |
·22.09.2026 Выпуск операционной системы Solaris 11.4 SRU95 (48 +10)
  Компания Oracle опубликовала выпуск операционной системы Solaris 11.4 SRU 95 (Support Repository Update), в котором предложена серия значительных изменений и улучшений для ветки Solaris 11.4. Для установки предложенных в обновлении исправлений достаточно выполнить команду 'pkg update'. Пользователи также могут воспользоваться бесплатной редакцией Solaris 11.4 CBE (Common Build Environment), развиваемой с использованием модели непрерывной публикации новых версий.

Среди изменений в новой версии:

Обсуждение (48 +10) | Тип: Программы |
·22.09.2026 Выпуск медиаплеера VLC 3.0.24 с устранением 130 уязвимостей (74 +28)
  Представлен выпуск мультимедийного проигрывателя VLC 3.0.24. Код написан на языке Си и распространяется под лицензией LGPLv2.1. В VLC и во встроенных библиотеках устранено более 130 проблем с безопасностью, вызванных переполнениями буфера, обращением к памяти после её освобождения, целочисленными переполнениями и двойным освобождением памяти (детали пока не раскрываются). Некоторые из уязвимостей могут эксплуатироваться при обработке специально оформленного контента.

Среди изменений, не связанных с уязвимостями и исправлением ошибок:

  • Добавлена поддержка декодирования звуковых форматов Atrac3 и Atrac9 (Adaptive Transform Acoustic Coding).
  • Добавлен декодировщик для формата APV (Advanced Professional Video).
  • Реализована поддержка субтитров CEA-708 в мультимедийном контейнере MP4.
  • В распаковщик медиаконтейнеров MPEG добавлена поддержка метаданных ID3v2.
  • На платформе Windows реализована возможность захвата видео в формате NV12, используя API DirectShow.
  • В реализации протокола SRT (Secure Reliable Transport) появилась поддержка режима приёма запросов на соединение (listener).
  • Улучшена логика определения языка субтитров по именам файлов и метаданным SSA/ASS.
  • Добавлена поддержка обращения к контенту по протоколу SFTP, используя аутентификацию по открытым ключам.
  • Улучшено определения сетевых разделов SMB2.
  • Добавлена поддержка сборки пакета в формате Flatpak.
  • Удалены плагины NPAPI и youtube.lua. Отключена по умолчанию сборка плагина RealRTSP.
  • Осуществлён переход на использование нового ключа RSA-4096 для верификации обновлений.
  • Обновлено 49 сторонних библиотек. Пакет FFmpeg обновлён с версии 4.4 до 8.1.2.

  1. OpenNews: Зафиксировано существенное замедление запуска VLC после обновления Windows 11
  2. OpenNews: На выставке CES 2026 продемонстрирован прототип VLC 4.0 с поддержкой видеокодека AV2
  3. OpenNews: Выпуск медиаплеера VLC 3.0.23
  4. OpenNews: Лидер VLC стал лауреатом премии European SFS Award 2025
  5. OpenNews: VLC достиг 6 миллиардов загрузок и реализовал автоматическую генерацию субтитров
Обсуждение (74 +28) | Тип: Программы |
·21.09.2026 Проект Convey развивает форк почтового клиента Geary (72 +3)
  Опубликован почтовый клиент Convey, продолжающий развитие проекта Geary, новые версии которого не публиковались с мая 2024 года. Наиболее заметным отличием от Geary является переход на использование библиотек GTK4 и libadwaita. Код написан на языке Vala и распространяется под лицензией LGPL.

Среди изменений:

  • Добавлен бэкенд Microsoft Graph для работы с учётными записями Outlook и Microsoft 365.
  • Предоставлена возможность создания, переименования и удаления папок из боковой панели, а также создания вложенных папок через контекстное меню.
  • Переработан код автодополнения вводимых адресов.
  • Плагины переведены на использование libpeas-2, gcr-4 и gck-2.
  • Библиотеки libcanberra и gsound звменены на GStreamer для воспроизведения звуков уведомлений.
  • Возможность навигации по панелям при помощи клавиатуры.
  • Обновлены пиктограммы.
  • Добавлен режим "All Inboxes" для показа входящих сообщений для всех учётных записей.

  1. OpenNews: Выпуск почтового клиента Geary 46.0
Обсуждение (72 +3) | Тип: Программы |
·21.09.2026 Выпуск дистрибутива MX Linux 25.3 (49 +15)
  Опубликован релиз легковесного дистрибутива MX Linux 25.3, созданного в результате совместной работы сообществ, образовавшихся вокруг проектов antiX и MEPIS. Выпуск основан на пакетной базе Debian с улучшениями от проекта antiX и пакетами из собственного репозитория. В дистрибутиве на выбор можно использовать системы инициализации sysVinit и systemd. Поставляются собственные инструменты для настройки и развёртывания системы. Для загрузки доступны 64-разрядные сборки (x86_64) с рабочим столом Xfce (2.7 ГБ), а также сборки с рабочим столом KDE (3.4 ГБ) и сборки (2.3 ГБ) с оконным менеджером Fluxbox.

В новом выпуске:

  • Осуществлена синхронизация с пакетной базой Debian 13.7. Ядро Linux обновлено до версии 6.12.107.
  • Обновлены сборки с расширенной поддержкой оборудования (AHS), которые поставляются с Xfce, ядром 7.2 c патчами от проекта liquorix и Мesa 26.1.4.
  • Обновлён интерфейс утилит MX-Welcome, MX-Tools и custom-toolbox.
  • Добавлена утилита Verify-iso-sig для проверки iso-образов по цифровой подписи.
  • Добавлена утилита MX-Theme-Colors, для создания собственных цветовых тем на основе существующих тем оформления GTK.

  1. OpenNews: Выпуск дистрибутива MX Linux 25.2
  2. OpenNews: Опубликован AV Linux MX 25, дистрибутив для создания аудио- и видеоконтента
  3. OpenNews: Выпуск легковесных дистрибутивов antiX 23.2 и MX Linux 23.4
Обсуждение (49 +15) | Тип: Программы |
Следующая страница (раньше) >>



XSQUARE
Inferno Solutions
Hosting by Hoster.ru
Хоcтинг:

Закладки на сайте
Проследить за страницей
Created 1996-2026 by Maxim Chirkov
Добавить новость, Поддержать