LINUX.ORG.RU

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

constixel.hpp

Галерея — Скриншоты

constixel.hpp – минималистичная (262K) С++20 constexpr-библиотека для рендеринга двумерной графики на основе палитр с возможностью вывода изображений в форматах Sixel, Kitty terminal graphics protocol и iTerm2 images protocol в эмуляторах терминала.

На скриншотах – вывод в WezTerm большинства примеров использования.

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

  • Полностью constexpr. Весь рендеринг графики, включая генерацию Sixel, может происходить во время компиляции.
  • Никаких динамических выделений памяти. Буфер и очень немногие внутренние структуры данных могут быть глобальными статическими переменными.
  • Минималистичный интерфейс и реализация с единственным заголовочным файлом.
  • Буферы на основе 1-, 2-, 4- и 8-разрядных палитр для минимального использования памяти. Предоставляются разумные стандартные палитры. Также предусмотрены 24- и 32-битные буферы, если целью является что-то другое, а не Sixel.
  • Простые функции рисования fill_rect(), fill_round_rect(), draw_line(), fill_circle() и другие.
  • Рендеринг пропорционального текста, опционально с кернингом, с использованием предварительно отрендеренных текстур шрифтов в формате BMFont, генерируемых пользовательской версией fontbm. Репозиторий включает набор готовых шрифтов (с открытым исходным кодом), которые легко использовать. Поддерживается UTF-8.
  • Для уменьшения количества зависимостей предоставляется кодировщик PNG без сжатия.
  • Блиттинг необработанных 32-битных RGBA-буферов изображений в буфер на основе палитры (с дизерингом или без него). При необходимости возможна обратная конвертация в RGBA-буфер.
  • Различные другие простые операции с изображениями.

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

 , , , двумерная графика,

dataman
()

Герб Саттер — отчёт о встрече по стандартам ISO C++ в июне 2025 года

Форум — Development

https://herbsutter.com/2025/06/21/trip-report-june-2025-iso-c-standards-meeting-sofia-bulgaria/

Уникальная веха: «Совершенно новый язык»

Сегодняшний день знаменует собой поворотный момент в развитии C++: несколько минут назад комитет C++ проголосовал за включение первых семи (7) документов по рефлексии во время компиляции в C++26 под несколько продолжительных аплодисментов в зале. Я думаю, что Хана «Мисс Constexpr» Дусикова лучше всего описала влияние этой функции несколько дней назад, в своей спокойной бесстрастной манере… Когда ей сказали, что документ об рефлексии попадёт на субботнее голосование по принятию, она слегка пожала плечами и тихо сказала: «Совершенно новый язык».

Микрофон упал.

До сегодняшнего дня, возможно, самым значимым опросом за всю историю C++ был опрос в Торонто в июле 2007 года о принятии первого документа «constexpr» Бьярне Струструпа и Габриэля Дос Рейса в проект C++11. Оглядываясь назад, мы можем видеть, какой тектонический сдвиг начался для C++.


Даниэль Лемир (Daniel Lemire) попробовал:


Экспериментальный форк clang от Bloomberg с поддержкой P2996 («Reflection for C++26»):

Есть в godbolt.org.

 ,

dataman
()

Ещё парочка компиляторов C

Форум — Development

Обнаружил в Alpine/edge.

https://github.com/fuhsnn/slimcc:

This is a fork of Rui Ueyama’s chibicc with fixes and improvements, including:

  • C99 features: VLA parameters, VLA de-allocation, K&R old-style functions.
  • C11 features: _Static_assert(), over-aligned locals, _Generic with qualifiers.
  • C23 features: constexpr, enum:T{}, #embed, auto type-inference, etc.
  • C2y features: labeled loop/switch, if/switch declaration
  • TS features: defer(enable with -fdefer-ts), VA_TAIL
  • GNU features: inline assembly, symbol attributes, cleanup, cons/destructor
  • Basic codegen optimizations: const folding, reg-alloc for temporaries, instruction selection.

https://kefir.protopopov.lv

This web page is dedicated to Kefir C compiler project, developed by Jevgenij Protopopov.

Work on the project has been going on and off since November 2020, and the main goal of this project is producing a reasonably standard-compliant, independent compiler for modern C language (currently targeting C17 standard) for x86_64-based systems following System-V AMD64 ABI. The project is is licensed under GNU GPLv3 terms for the compiler and 3-Clause BSD for compiler-specific include files (see below). More detailed description is available in the README, whereas this page focuses on providing a high-level overview of the project and its purpose.

Disclaimer: Kefir is experimental hobby project which is not meant for production purposes. No guarantees are being made for correctness, completeness, stability and fitness for any particular purpose.

 , ,

dataman
()

Skribidi — шустрая библиотека рендеринга текста

Форум — Development

Mikko Mononen пишет на Си библиотеку Skribidi:

Skribidi is nimble bidirectional text stack for building UIs.

Features

  • bidirectional text layout
  • bidirectional text editing
  • font collections with CSS inspired font selection
  • color emojis
  • line breaking
  • text attributes
    • size, weight, style, streatch, letter spacing, word spacing, line spacing, baseling align, horizontal aling)
  • icons
  • glyph, emoji and icon rasterization
    • color, SDF and alpha
  • render cache with image atlas for glyphs and icons
  • layout cache for immediate mode use
  • lean dependencies

Status
Skribidi just got started. There are bugs and the API is very likely to change.

 , , ,

dataman
()

Разработчики Gnome удалят из С++ лишние фичи

Новости — Open Source
Группа Open Source

Как всем известно, язык программирования С++, пожалуй, самый большой по объему из ЯП. Даже программисты, которые пишут на нем десятки лет не могут похвастаться, что знают его полностью. В связи с чем комитет по стандартизации С++ принял нелегкое решение: чтобы язык оставался конкурентоспособным перед напирающими новыми ЯП, например rust, нужно удалить из него все легаси фичи, написаные непонятно какими гоблинами в мохнатые восьмидесятые. В этом помогут хорошо известные на этом форуме разработчики Gnome, которые в свое время удалили все лишние фичи из своей DE, тем самым сделав ее вне конкуренции. Они будут удалять все фичи, пока не удалят все «плюсы» и не дойдут до С, из которого и вылез C++, но на этом не остановятся, оставят от языка только минимальный C--.

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

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

 , , ,

goingUp
()

Обнаружены самые серьёзные на данный момент намёки на существование внеземной жизни

Форум — Science & Engineering

Астрономы обнаружили наиболее перспективные признаки возможного биосигнала за пределами Солнечной системы, хотя остаются осторожными

Используя данные с космического телескопа Джеймса Уэбба (JWST), астрономы под руководством Кембриджского университета обнаружили химические отпечатки диметилсульфида и/или диметилдисульфида в атмосфере экзопланеты K2-18b, которая вращается вокруг своей звезды в зоне обитаемости.

На Земле диметилсульфид и диметилдисульфид производятся только живыми организмами, в основном морским фитопланктоном. Хотя неизвестный химический процесс может быть источником этих молекул в атмосфере K2-18b, результаты являются наиболее сильным доказательством того, что жизнь может существовать на планете за пределами нашей Солнечной системы.

Наблюдения достигли уровня статистической значимости «три сигма», что означает, что вероятность случайного возникновения составляет 0.3%. Чтобы достичь принятой классификации научного открытия, наблюдения должны пересечь порог в пять сигма, что означает, что вероятность случайного возникновения будет ниже 0.00006%.

Исследователи утверждают, что от 16 до 24 часов последующих наблюдений с JWST могут помочь им достичь важного уровня значимости в пять сигма. Их результаты опубликованы в журнале The Astrophysical Journal Letters (DOI: 10.3847/2041-8213/adc1c8).

Важно отметить, что делать громкие заявления пока рано:

Важно, чтобы мы были глубоко скептичны к собственным результатам, потому что только проверяя и перепроверяя их, мы сможем достичь той точки, когда будем уверены в них. Так должна работать наука.

>>> Более подробная новость на английском

 jwst, биомаркеры, внеземная жизнь

CrX
()

Какой диск взять SDD или HDD?

Форум — Linux-hardware

Я проверил, на моем netac nv7000 2tb начала повреждатся информация. Решил заменить этот диск. Я погуглил и увидел что в общем плюс-минус сводится к двум вариантам: Старая модель интеловского SATA SSD серверного(2Tb) с большим ресурсом неиспользованная со склада магазина или обычный новый HDD терабайт на 8. Бюджет 20 000- 30 000 рублей. Подскажите пожалуйста есть ли варианты лучше в пределах этого бюджета?

P.S. Использоватся будет для:

1)системы и программ( то есть весь /),

2)также там будут хранится словари для программы словаря, книжки для библиотеки(локальной с myrulib), и несколько сайтов в zim

 ,

vbcnthfkmnth123
()

100 Гб литературы для частотного анализа русского языка

Форум — Talks

Здравствуйте!
Взбрела мне тут в голову идея произвести по словный частотный анализ русского языка.
К счастью для этого имелся образ библиотеки Мошкова (4 Гб текстов).
Написал скрипт, который заносит информацию о частоте встреч пяти-словных фраз..
При этом оказалось, что ни одна пятисловная фраза вовсе не повторилась. Куда более интересный результат дал анализ 4-х словных фраз. 10 самых часто встречающихся 4-х словных выражений это:

1) В то время как
2) Дело в том что
3) Несмотря на то что
4) С тех пор как
5) В то же время
6) До тех пор пока
7) И в самом деле
8) До сих пор не
9) В том числе и
10) Одно и то же

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

Однако, для получения более интересных результатов материала для анализа явно маловато. Слов, которые встретились в базе данных более 100 раз оказалось всего лишь 3362. Таким образом число встреч даже двусловных сочетаний не самых распространённых слов при таком раскладе в базе данных чаще всего окажется равным 1-2 штуки.
Надо проанализировать эдак раз в 100 поболее материала.

Вопрос в том где можно было бы набрать столько литературы на русском языке? И желательно в zip-архивах. Потому что 100 Гб мне явно не в жизни не выкачать.. А 10 Гб архивов мне кажется будет вполне достаточно..

>>>

unDEFER
()

Как безопасно перенести /home на другой диск?

Форум — General

Прошлый раз от этого грохнулся гном, но мне было пох, т.к. система была свежая и всё равно поставил kde.

Вроде должно хватить загрузиться в режиме восстановления и там из-под рута смувить файлы на соседний диск, а потом сменить точку монтирования /home. Но хватит ли этого, например, стиму (он фс не запоминает)?

 , , ,

next_time
()

smartctl как его понимать?

Форум — General

Приветствую коллеги!

Хотелось бы понимать сколько данных уже было записано на SSD Disk, но понимание не приходит.

Есть Device Model: Netac SSD 128GB, Serial Number: AA20220921128G455025.

smartctl -a /dev/sda | grep 'Sector Size'
Sector Size:      512 bytes logical/physical

smartctl -A /dev/sda
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.10.82-std-def-alt1] (ALT Sisyphus 7.2-alt1)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x0032   100   100   050    Old_age   Always       -       0
  5 Reallocated_Sector_Ct   0x0032   100   100   050    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   100   100   050    Old_age   Always       -       1923
 12 Power_Cycle_Count       0x0032   100   100   050    Old_age   Always       -       15
160 Unknown_Attribute       0x0032   100   100   050    Old_age   Always       -       0
161 Unknown_Attribute       0x0033   100   100   050    Pre-fail  Always       -       100
163 Unknown_Attribute       0x0032   100   100   050    Old_age   Always       -       13
164 Unknown_Attribute       0x0032   100   100   050    Old_age   Always       -       844471
165 Unknown_Attribute       0x0032   100   100   050    Old_age   Always       -       1991
166 Unknown_Attribute       0x0032   100   100   050    Old_age   Always       -       1890
167 Unknown_Attribute       0x0032   100   100   050    Old_age   Always       -       1923
168 Unknown_Attribute       0x0032   100   100   050    Old_age   Always       -       5050
169 Unknown_Attribute       0x0032   100   100   050    Old_age   Always       -       62
175 Program_Fail_Count_Chip 0x0032   100   100   050    Old_age   Always       -       0
176 Erase_Fail_Count_Chip   0x0032   100   100   050    Old_age   Always       -       0
177 Wear_Leveling_Count     0x0032   100   100   050    Old_age   Always       -       0
178 Used_Rsvd_Blk_Cnt_Chip  0x0032   100   100   050    Old_age   Always       -       0
181 Program_Fail_Cnt_Total  0x0032   100   100   050    Old_age   Always       -       0
182 Erase_Fail_Count_Total  0x0032   100   100   050    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   050    Old_age   Always       -       13
194 Temperature_Celsius     0x0022   100   100   050    Old_age   Always       -       54
195 Hardware_ECC_Recovered  0x0032   100   100   050    Old_age   Always       -       0
196 Reallocated_Event_Count 0x0032   100   100   050    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   100   100   050    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0032   100   100   050    Old_age   Always       -       0
199 UDMA_CRC_Error_Count    0x0032   100   100   050    Old_age   Always       -       0
232 Available_Reservd_Space 0x0032   100   100   050    Old_age   Always       -       100
241 Total_LBAs_Written      0x0030   100   100   050    Old_age   Offline      -       5228137
242 Total_LBAs_Read         0x0030   100   100   050    Old_age   Offline      -       561
245 Unknown_Attribute       0x0032   100   100   050    Old_age   Always       -       7002196

Залез на https://www.virten.net/2016/12/ssd-total-bytes-written-calculator/ ресурс, который, якобы переводит LBA в удобоваримые значения и что я там вижу? А вижу я, что на диск было всего записано 2Gb!

Не плохо, правда?

Свежо питание, да серится с трудом. Дело в том, что этот несчастный Netac жестко убивался в течении более чем 2х месяцев постоянной перезаписью

while true; do
dd if=/dev/random of=/root/fordel.bak bs=4M
rm -fr /root/fordel.bak
done

Примерное число записанных блоков (1 блок около 100Gb) около 8000. Т.е. ну ни как не 2Gb.

Тогда полез эксперементировать и подбирать размер записи, что бы Total_LBAs_Written изменился на 1. И примерно такой размер удалось вычислить!

dd if=/dev/zero of=/fordel.bak bs=32M count=1

Т.е. после записи блока 32Mb Total_LBAs_Written возрастает на 1. Вот это уже более похоже на правду.

echo "$((5228137 * 32 /1024/1024))"
159

Примерно 159Tb. Ресурс превзойден всего в 2 раза. Диск стал ощутимо тормозить.

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

 ,

HighMan
()

Celestia и четыре планеты

Галерея — Скриншоты

В тендере на лучший тест новой возможности загрузки нескольких изображений, победила астрономия. :)
Celestia из репозитория, скомпилирована с Qt 6.

 , , , ,

dataman
()

Bforartists 4.3

Новости — Open Source
Группа Open Source

Состоялся выпуск 4.3 малопопулярной (580 ☆ на GitHub) программы Bforartists – значительно модифицированного форка Blender.

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

>>> Подробности выпуска 4.3

 , , , ,

dataman
()

Шрифты Iosevka 28.0.0

Форум — Talks

https://github.com/be5invis/Iosevka/releases

Там столько изменений, что написать новость я не осилю. :)

 

dataman
()

Qlibs++ — header-only библиотеки для C++20

Форум — Development

Kris Jusiak создал проект Qlibs++ с header-only библиотеками для С++20, без сторонних зависимостей. Часть из них – облегчённые версии библиотек из boost-ext.

На данный момент есть:

Приятного чтения! :)

 , ,

dataman
()

Ncdu 1.21 и 2.7

Новости — Open Source
Ncdu 1.21 и 2.7
Группа Open Source

19 ноября состоялись выпуски 1.21 и 2.7 утилиты ncdu (NCurses Disk Usage) для анализа использования диска с текстовым пользовательским интерфейсом.
Утилита написана на языках C (версия LTS) и Zig (версии 2.*) с использованием библиотеки ncurses и распространяется по лицензии MIT.
Zig-версия отличается добавлением многопоточного сканирования и новым двоичным форматом (со встроенным сжатием) экспорта результатов сканирования.

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

  • развёртывание ~ и ~user в файле конфигурации;
  • исправлен импорт из JSON с экранированными суррогатными парами в формате UTF-16.

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

  • исправлены отображение и экспорт нулевых значений, когда расширенная информация недоступна;
  • исправлены экспорт и импорт JSON для флага «другая файловая система».

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

  • для компиляции по-прежнему требуется Zig 0.12 или 0.13;
  • добавлена поддержка прозрачного чтения и записи JSON, сжатого алгоритмом zstandard;
  • добавлены опции --compress и --export-block-size;
  • исправлено некорректное поле в корневом элементе при экспорте в двоичный формат;
  • добавлена опция сборки -Dstrip.

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

 , , , ,

dataman
()

lexbor 2.4.0

Новости — Разработка
Группа Разработка

13 ноября, после более года разработки, состоялся выпуск 2.4.0 высокопроизводительной библиотеки парсинга HTML5 и CSS lexbor, написанной на языке C без сторонних зависимостей, и распространяемой по лицензии Apache 2.0.

Библиотека разделена на модули (Core, CSS, DOM, Encoding, HTML, NS, Punycode, Selectors, Tag, Unicode, URL, Utils), которые могут быть скомпилированы и использованы раздельно (с опцией CMake LEXBOR_BUILD_SEPARATELY=ON).
Для библиотеки есть сторонние биндинги и врапперы для языков Elixir, Crystal, Python, D, Ruby и PHP.

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

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

 , , , ,

dataman
()

re2c 4.0

Новости — Разработка
Группа Разработка

Во вторник, 19 ноября, представлен релиз re2c – генератора лексических анализаторов (он же компилятор регулярных выражений в код на целевом языке программирования). re2c специализируется на генерации быстрых и легко встраиваемых лексеров. Он отличается от более известного аналога flex гибким интерфейсом, генерацией оптимизированных нетабличных лексеров и поддержкой захватов (submatch extraction) на основе детерминированных конечных автоматов с тэгами (TDFA). re2c используется в проектах, где важна скорость работы лексера, например в Ninja и в PHP.

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

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

 , , , ,

skvadrik
()

«Перспективные» и малоизвестные проекты ЯП

Форум — Development

А накидайте, какие есть малоизвестные проекты языков программирования, которые пилятся или пилились энтузиастами в последние годы? Интересуют компилируемые ЯП, ориентированные на компиляцию в нативный код. (Еще лучше, если у реализации есть собственный бэк, а не просто фронт для LLVM.)

Из того, что я мог вспомнить:

  • Nim
  • Zig
  • Seed7
  • VLang
  • Crystal
  • OOC

 , , ,

wandrien
()

Ситуация с Wayland: факты о X и Wayland.

Новости — Open Source
Группа Open Source

Это вольный перевод статьи, намедни размещённой на phoronix. Оринальная статья — обзор недостатков, их исправлений и преимуществ между X и Wayland. Её написал Eric Griffith, при участии Daniel Stone, специально для ресурса phoronix. Работа собрана по кусочкам из презентаций Keith Packard, David Airlie, Kristian Høgsberg, из страниц про X11, X12, Wayland в вики и на freedesktop.org, из прямых интервью с разработчиками.

Оригинал выпущен под Creative Commons версия 3, с указанием авторства; перевод доступен на тех же условиях (с указанием на авторов оригинала, как мне кажется).

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

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

 ,

quiet_readonly
()

Обсуждение редактора контактов DoubleContact

Форум — Desktop

Тема создана для обсуждения DoubleContact — кроссплатформенного редактора/менеджера контактов для ПК. Программа написана на языке C++ с применением фреймворка Qt (минимальная версия Qt — 4.8, рекомендуемая — 5.10 и выше) и распространяется по лицензии GPLv3+.

Автор также планирует помещать здесь анонсы минорных версий DoubleContact, не заслуживающих новостей на главной.

На данный момент актуальная версия программы имеет номер 0.2.4 и работает с локальными адресными книгами. К ветке 0.4 планируется добавление работы с телефонами (ADB и др.), к ветке 0.5 — работа с сетевыми протоколами.

Github

Русский сайт автора

Архив новостей и форумных тем на ЛОРе

 , , , ,

hobbit
()