LINUX.ORG.RU

Избранные сообщения xgatron

Статьи — Разработка

Выделяй память как Линус: инструкция

Предположим, у нас есть библиотека на Си. А в этой библиотеке - какая-то структура, детали реализации которой мы хотим скрыть и поэтому удалили из публичных заголовочных файлов. Как правильно выделить память под экземпляр этой структуры? Данная статья пытается ответить на этот вопрос.

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

 , ,

Lrrr
()
Новости — Разработка

Утверждён стандарт C++26

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

Комитет ISO по стандартизации языка C++ утвердил финальный вариант спецификации, образующей международный стандарт «C++26». Представленные в спецификации возможности частично уже поддерживаются в компиляторах GCC (gnu.org), Clang и Microsoft Visual C++. Поддерживающие C++26 стандартные библиотеки реализованы в рамках проекта Boost.

В следующие два месяца утверждённая спецификация будет находиться на стадии подготовки документа к публикации, на которой будет проведена работа по редакторской правке орфографических ошибок и опечаток. В начале ноября результирующий вариант документа будет направлен в ISO для публикации под формальным именем ISO/IEC 14882:2026.

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

>>> Источник: OpenNET

 ,

dataman
()
Статьи — Desktop

pdflatex → lualatex: почти бесшовный переход

Простейшая шапка для документа, ориентированного на русскую типографику. Проверено на дистрибутиве TeX Live 2025. Кодировка по умолчанию юникодная.

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

 , , , ,

Evgueni
()
Статьи — Desktop

Пользовательские сервисы OpenRC: инструкция по применению

Как я уже писал раньше, в систему инициализации OpenRC недавно добавлена возможность запускать сервисы в пользовательской сессии. В этой статье я покажу, как этим пользоваться, на примере pipewire в Alpine Linux.

Что было раньше

Раньше в пакете с pipewire поставлялся (и до сих пор поставляется) скрипт /usr/libexec/pipewire-launcher, который предлагалось прописывать в конфиге sway. Особенность этого сетапа в том, что после остановки Sway все запущенные им в background процессы оставались висеть в памяти, и перед последующим запуском их предлагалось прибивать с помощью pkill. Не говоря уже про полное отсутствие логов, их не было.

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

 , , ,

Lrrr
()
Форум — Development

SObjectizer-5.8.0 и so5extra-1.6.0

Вышли очередные версии библиотек SObjectizer и so5extra.

Полный список изменений можно найти в Wiki:

https://github.com/Stiffstream/sobjectizer/wiki/v.5.8.0

https://github.com/Stiffstream/so5extra/wiki/v.1.6.0

Менее полный, но с большим погружением в отдельные моменты, обзор изменений сделан в свежей статье на Хабре.

Если же говорить в двух словах, то начата новая ветка 5.8, в которой пришлось пойти на слом совместимости с предыдущей веткой 5.7. Так что при переходе на SO-5.8 потребуется модифицировать исходники. Не получилось придумать способ внедрить новую функциональность не поломав совместимость :(

Для тех, кто не знает меня и не слышал про этот проект, вкратце:

SObjectizer – это один из «акторных фреймворков» для C++ (еще есть QP/C++, CAF: C++ Actor Framework и rotor). Краткий обзор SObjectizer-а можно найти в этой презентации или в этой статье. Кроме модели акторов SObjectizer поддерживает еще и такие модели как Publish-Subscribe и Communicating Sequential Processes. А so5extra – это набор дополнительных полезных прибамбасов для SObjectizer-а, которые не хотелось добавлять в сам SObjectizer.

В двух словах, SObjectizer, – это инструмент для упрощения разработки некоторых типов многопоточных приложений на C++.

Новая версия уже доступна через vcpkg, добавление в conan пока задерживается, но надеюсь, что скоро она появится и там.


Готов к тому, что в меня будут бросаться гнилыми помидорами за рекламу образцового нинужно, но как можно было обойтись без поста на LOR-е, по старой доброй традиции? ;)

 , , , ,

eao197
()
Новости — Open Source

lexbor 2.2.0 - библиотека парсинга HTML и CSS

Группа Open Source

6 апреля, после 20 месяцев разработки, состоялся выпуск 2.2.0 библиотеки парсинга HTML и CSS lexbor, написанной на языке C.

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

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

 , , , ,

dataman
()