LINUX.ORG.RU

Сообщения dataman

 

Раскол в Manjaro Linux: проект переходит под контроль сообщества

 , , ,

https://www.comss.ru/page.php?id=19901:

Разработка Manjaro парализована из-за конфликта с руководством. Мейнтейнеры опубликовали манифест о переходе на новую модель управления и приостановили поддержку дистрибутива.

Мейнтейнеры Manjaro инициировали масштабную реструктуризацию проекта с целью отделения от коммерческой структуры и создания независимого некоммерческого общества Manjaro Project e.V. За последнее десятилетие операционная система столкнулась с системным упадком, потерей контрибьюторов и финансовым кризисом. В настоящий момент объявлена забастовка, а часть процессов по поддержке дистрибутива полностью парализована.

Предпосылки к реорганизации
Несмотря на сохранение крупной пользовательской базы, разработка Manjaro стагнирует. Технические инциденты, включая несвоевременное продление TLS-сертификатов, остаются без внимания руководства, даже при наличии готовых инструментов автоматизации от энтузиастов.

Приоритеты текущего лидера радикально расходятся с интересами сообщества. Управление процессами осуществляется единолично, доступ к ключевой инфраструктуре закрыт для остальных специалистов, а попытки монетизации потерпели неудачу. Бренд эксплуатируется исключительно ради популярности, пользователи выполняют роль бесплатных тестировщиков, а средства команды Manjaro GmbH & Co KG не инвестируются в развитие. Бюджет полностью исчерпан, из-за чего единственный профильный разработчик, трудившийся на полную ставку, лишился источника дохода.

Новая модель управления
Для восстановления доверия и привлечения новых кадров проект выделяется в зарегистрированное некоммерческое общество (e.V.). Руководить организацией будут действующие участники, выразившие интерес к инициативе, с равными долями владения.

Прием новых лиц осуществляется по результатам голосования при наличии двух рекомендаций от действующего состава. Для узкопрофильных специалистов без истории участия в дистрибутиве требование снижается до одной рекомендации, а кандидатура оценивается исключительно по профессиональным навыкам. Любой участник может покинуть структуру по своему желанию. Принудительное исключение применяется только после 12 месяцев полного отсутствия связи. Допускается временная приостановка активности с заморозкой права голоса, что увеличивает допустимый период отсутствия до 36 месяцев.

Традиционная иерархия уступает место плоской структуре. Обязанности распределяются добровольно, однако финансовые операции требуют строгого одобрения казначея, а официальное представительство - согласования с комьюнити-менеджером. Решения принимаются общим голосованием продолжительностью от двух до четырех недель. Базовые вопросы утверждаются простым большинством, тогда как критические изменения требуют поддержки свыше 70% состава (минимум 5 из 7 человек).

Инфраструктура и активы
Коммерческая структура поэтапно перейдет в статус потребителя (downstream) решений некоммерческой организации. Бизнесу предоставляется исчерпывающая лицензия на торговую марку до конца 2029 года для выпуска неконфликтующих продуктов, после чего бренд будет выкуплен обществом за один евро.

Вся ключевая инфраструктура переходит под контроль некоммерческой организации. В перечень активов входят:

  • Организации на GitHub (Manjaro Linux, Manjaro-Kernels, Manjaro-ARM).
  • Собственный сервер GitLab и профильные Git-репозитории.
  • Домен manjaro.org и официальный форум.
  • Облачные ресурсы, включая хостинг Hetzner.
  • Сеть доставки контента (CDN).
  • Финансовые площадки уровня OpenCollective. Бизнес-подразделение сохранит доступ к мощностям при условии полной компенсации затрат на облако, пропускную способность и администрирование систем. Одновременно запускается процесс миграции коммерческих сервисов на независимые серверы.

Текущий статус и забастовка
При отсутствии компромиссных решений вступает в силу жесткий план действий. Нулевая стадия предусматривала ожидание ответа. На первой стадии публикуется манифест и начинается забастовка с остановкой второстепенных задач. Вторая стадия допускает форк дистрибутива или массовый уход мейнтейнеров.

Владелец бизнеса дважды проигнорировал запросы и увеличенные сроки на предоставление ответа. В результате активирована первая стадия, разделенная на три этапа. Сейчас идет начальный этап - публикация документа во внутренних каналах. Если игнорирование продлится еще 48 часов, запустится второй этап с переносом темы в раздел для участников. Спустя дополнительные 48 часов наступит третий этап: публикация в публичных анонсах и полная блокировка форума в режим чтения.

На данный момент администраторы, модераторы и помощники официально бастуют. Новые регистрации пользователей заморожены в очереди, обработка жалоб остановлена, перемещение и модерация тем прекращены. Инициативная группа также запросила поддержку у всех сотрудников с предложением подписать манифест реальными именами для переноса подписей в официальные PDF-копии.

Чтобы внести предельную ясность: цель состоит НЕ в том, чтобы кого-то отстранить, мы лишь надеемся на смену руководства и возвращение к формату здорового проекта сообщества. Разработка умирает, для спасения требуются радикальные перемены. Написанное выше не высечено в камне, если есть отзывы - делитесь. @philm получил копию этого документа 2 недели назад и до сих пор не ответил. Поэтому сейчас мы публикуем его во внутренних каналах.

dataman
()

SQLite 3.51.3 с исправлением возможного повреждения базы данных в режиме WAL

 , ,

SQLite 3.51.3 с исправлением возможного повреждения базы данных в режиме WAL
Группа Open Source

13-го марта состоялся корректирующий выпуск 3.51.3 компактной встраиваемой СУБД SQLite. Код проекта написан на языке C и распространяется как общественное достояние (public domain).

В связи с проблемами обратной совместимости, связанными с некоторыми новыми функциями, версия 3.52.0 (вышедшая 6-го марта) была отозвана.

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

>>> Страница загрузки

>>> Подробности на sqlite.org (sqlite.org)

dataman
()

smath 1.0.0 — библиотека линейной алгебры для языка C++ (стандарт C++23)

 , ,

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

Состоялся выпуск 1.0.0 библиотеки линейной алгебры для языка C++ (стандарт C++23) smath, распространяемой по лицензии Apache 2.0 в виде единственного небольшого заголовочного файла.

Возможности библиотеки:

  • дженерик-класс Vec<N, T> с полезными алиасами Vec2/Vec3/Vec4 и аксессорами (x/y/z/w, r/g/b/a). Векторы поддерживают приблизительное сравнение и кортежные/структурированные привязки;
  • тип Quaternion<T> на основе Vec4;
  • дженерик-класс Mat с полезными алиасами Mat2/Mat3/Mat4;
  • вспомогательные функции для углов rad/deg/turns с учётом настраиваемой базовой единицы измерения макросом SMATH_ANGLE_UNIT.
  • поддержка cвиззлинга во время компиляции (swizzle<"...">);
  • поддержка std::format;
  • опциональные неявные преобразования;
  • вспомогательные функции упаковки нормализованного RGBA (pack_unorm4x8, unpack_snorm4x8 и др.);
  • поддержка модулей C++20;
  • также предоставляются дополнительные адаптеры взаимодействия с библиотеками Eigen, GLM (OpenGL Mathematics), Handmade-Math, raylib и SFML.

>>> GitHub (github.com)

dataman
()

curl 8.19.0

 , , , ,

Группа Интернет

11-го марта, после более двух месяцев разработки и 538 коммитов, состоялся выпуск 8.19.0 (273-й) кроссплатформенной консольной утилиты и библиотеки curl, написанных на языке C и распространяемых по лицензии curl.

Основные изменения

Безопасность

  • Прекращена программа поощрений за обнаружение уязвимостей, но это не помешало людям находить уязвимости в curl:
    • CVE-2026-1965 – неправильное повторное использование соединения HTTP Negotiate;
    • CVE-2026-3783 – утечка токенов с перенаправлением и netrc;
    • CVE-2026-3784 – неправильное повторное использование прокси-соединения с учетными данными;
    • CVE-2026-3805 – использование памяти после освобождения в повторном использовании SMB-соединения.

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

>>> Полный список изменений на curl.se

>>> Видеопрезентация 8.19.0 на youtube

>>> Документация

>>> Страница загрузки

>>> Исходный код на GitHub

>>> Новость в блоге Даниэля Стенберга (haxx.se)

dataman
()

Glaze 7.2.0

 , , , ,

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

Состоялся выпуск 7.2.0 высокопроизводительной, SIMD-оптимизированной и многопоточной библиотеки Glaze, предназначенной для быстрой сериализации и десериализации данных с поддержкой форматов JSON RFC 8259, CSV, CBOR, BEVE, MessagePack, TOML, EETF (Erlang External Term Format) (опционально, для компиляции требуются библиотеки Erlang), YAML 1.2, Stencil и Mustache.

Библиотека написана на языке C++ (header-only, стандарт C++23 и выше) и распространяется по лицензии MIT.

Glaze также предоставляет поддержку REPE RPC и сервер и клиент HTTP, используя современные возможности C++, включая автоматическую генерацию REST API, поддержку WebSocket и шифрование SSL/TLS.

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

>>> Подробности на GitHub (github.com)

dataman
()

GCC 16 с C++26-рефлексией

 , ,

Тот редкий случай, когда обновление Devuan/Ceres сильно удивило. :)

https://gcc.gnu.org/gcc-16/changes.html#cxx:

clang 23.0 пока отстаёт. :)

dataman
()

ZXC 0.8.0 и 0.8.1

 , , , ,

Группа Open Source

Состоялся выпуск 0.8.0 библиотеки и кроссплатформенной консольной утилиты ZXC (github.com), реализующих высокопроизводительное многопоточное асимметричное сжатие без потерь и оптимизированное для игровых ресурсов, прошивок и пакетов приложений.

Декларируется на 40%+ более быстрая распаковка, чем LZ4 на ARM64, с лучшими коэффициентами сжатия.

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

>>> Подробности на GitHub (github.com)

dataman
()

Нейросети на C от создателя Redis

 ,

Salvatore Sanfilippo тоже увлёкся нейросетями.

https://github.com/antirez/iris.c:

Iris is an inference pipeline that generates images from text prompts using open weights diffusion transformer models. It is implemented entirely in C, with zero external dependencies beyond the C standard library. MPS and BLAS acceleration are optional but recommended. Under macOS, a BLAS API is part of the system, so nothing is required.

The name comes from the Greek goddess Iris, messenger of the gods and personification of the rainbow.

Supported model families:

  • FLUX.2 Klein (by Black Forest Labs):
    • 4B distilled (4 steps, auto guidance set to 1, very fast).
    • 4B base (50 steps for max quality, or less. Classifier-Free Diffusion Guidance, much slower but more generation variety).
    • 9B distilled (4 steps, larger model, higher quality. Non-commercial license).
    • 9B base (50 steps, CFG, highest quality. Non-commercial license).
  • Z-Image-Turbo (by Tongyi-MAI):
    • 6B (8 NFE / 9 scheduler steps, no CFG, fast).

https://github.com/antirez/qwen-asr:

This is a C implementation of the inference pipeline for Qwen3-ASR speech-to-text models (both 0.6B and 1.7B). It has zero external dependencies beyond the C standard library and a BLAS implementation (Accelerate on macOS, OpenBLAS on Linux). Tokens stream to stdout as they are generated. The implementation runs at speed multiple of the file length even in very modest hardware, like low end Intel or AMD processor.

Important: this implementation explicitly avoids implementing support for MPS. Transcription systems are very important pieces of infrastructure, and are often run on remote Linux servers. Adding the MPS target would focus the efforts too much on Apple hardware, so for now I’m skipping it. The code runs very well anyway on Apple hardware (NEON optimized). Please, don’t send pull requests about this feature, fork the code instead, in order to add MPS support. I’ll add it much later when the other optimizations are already mature.

Supported modes and models

Both normal (offline) and streaming (online) modes are supported. Normal mode defaults to full offline decode (-S 0), so the whole audio is encoded at once. Streaming mode processes audio in 2-second chunks with prefix rollback (it keeps the last few decoded tokens as context for the decoder/LLM when transcribing the next chunk).

Important practical note: in this implementation, interactive --stream prioritizes incremental token stability over throughput and can be much slower than normal mode when you process an already-recorded file end-to-end.

Audio can be piped from stdin (--stdin), making it easy to transcode and transcribe any format via ffmpeg. Language is usually auto-detected from audio, and can be forced with --language. A system prompt can bias the model toward specific terms or spellings.

Both the 0.6B and 1.7B parameters models are supported. While the 1.7B model is generally more powerful, the 0.6B model seems the sweet spot for CPU inference, however the speed difference is not huge, so you may want to try both and decide what to use depending on your use case.


https://github.com/antirez/voxtral.c:

This is a C implementation of the inference pipeline for the Mistral AI’s Voxtral Realtime 4B model. It has zero external dependencies beyond the C standard library. The MPS inference is decently fast, while the BLAS acceleration is usable but slow (it continuously convert the bf16 weights to fp32).

Audio processing uses a chunked encoder with overlapping windows, bounding memory usage regardless of input length. Audio can also be piped from stdin (--stdin), or captured live from the microphone (--from-mic, macOS), making it easy to transcode and transcribe any format via ffmpeg. A streaming C API (vox_stream_t) lets you feed audio incrementally and receive token strings as they become available.

More testing needed: please note that this project was mostly tested against few samples, and likely requires some more work to be production quality. However the hard part, to understand the model inference and reproduce the inference pipeline, is here, so the rest likely can be done easily. Testing it against very long transcriptions, able to stress the KV cache circular buffer, will be a useful task.

Motivations (and some rant)

Thank you to Mistral for releasing such a great model in an Open Weights fashion. However, the author of this project believes that limiting the inference to a partnership with vLLM, without providing a self-contained reference implementation in Python, limits the model’s actual reach and the potential good effects it could have. For this reason, this project was created: it provides both a pure C inference engine and a simple, self-contained Python reference implementation (python_simple_implementation.py) that anyone can read and understand without digging through the vLLM codebase.


https://github.com/antirez/gguf-tools:

This is a work in progress library to manipulate GGUF files. While the library aims to be useful, one of the main goals is to provide an accessible code base that as a side effect documents the GGUF files used by the awesome llama.cpp project: GGUF files are becoming increasingly more used and central in the local machine learning scene, so to have multiple implementations of parsers and files generators may be useful.

The program gguf-tools uses the library to implement both useful and useless stuff, to show the library usage in the real world. For now the utility implements the following subcommands:

gguf-tools show file.gguf

shows detailed info about the GGUF file. This will include all the key-value pairs, including arrays, and detailed tensors informations. Tensor offsets will be relative to the start of the file (so they are actually absolute offsets), not the start of the data section like in the GGUF format.

gguf-tools compare file1.gguf file2.gguf

This tool is useful to understand if two LLMs (or other models distributed as GGUF files) are related, for instance if one is the finetune of another, or if both are fine-tuned from the same parent model.

For each matching tensor (same name and parameters count), the command computes the average weights difference (in percentage, so that a random distribution in the interval -N, +N would be on average 100% different than another random distribution in the same interval). This is useful to see if a model is a finetune of another model, how much it was finetuned, which layers were frozen while finetuning and so forth. Note that because of quantization, even tensors that are functionally equivalent may have some small average difference.

gguf-tools inspect-tensor file.gguf tensor.name [count]

Show all (if count is not specified, otherwise only the first count) weights values of the specified tensor. This is useful for low level stuff, like checking if quantization is working as expected, see the introduced error, model fingerprinting and so forth.

gguf-tools split-mixtral 65230776370407150546470161412165 mixtral.gguf out.gguf

Extracts a 7B model out.gguf from Mixtral 7B MoE using the specified MoE ID for each layer (there are 32 digits in the sequence 652…).

Note that split-mixtral is quite useless as models obtained in this way will not perform any useful work. This is just an experiment and a non trivial task to show how to use the library. Likely it will be removed soon, once I have more interesting and useful examples to show, like models merging.

dataman
()

GoldenDict-ng 26.3.0

 , , , ,

Группа Open Source

26 февраля состоялся выпуск 26.3.0 кроссплатформенного мультиформатного электронного словаря GoldenDict-ng – форка словаря GoldenDict.

Возможности словаря:

  • Поддержка локальных словарей в форматах: MDict, StarDict, ABBYY Lingvo DSL и .lsa/.dat, XDXF, Zim, Aard и Aard 2 (Slob), DictD, Epwing, SDictionary, Babylon и Babylon glossary builder, файлов со звуками в директориях и объединённых в архив zip.
  • Поддержка сетевых источников: Wikipedia и Wiktionary, протокол DICT, LinguaLibre и Forvo, любые сайты, поддерживающие поиск слов, заданных в адресной строке.
  • Поддержка других источников: из других приложений, текст-в-речь, словари морфологии, транслитерация.
  • Поиск сразу по нескольким источникам.
  • Полнотекстовый поиск в локальных словарях с использованием библиотеки Xapian.
  • Интеграция с Anki.
  • И многое другое.

Словарь написан на языке C++ с использованием фреймворка Qt 6 и распространяется по лицензии GNU GPL 3.

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

>>> Подробности на GitHub (github.com)

dataman
()

KaOS 2026.02

 , , , ,

Группа KDE

15 февраля, после трёх месяцев разработки, состоялся выпуск 2026.02 дистрибутива KaOS – независимого, созданного с нуля дистрибутива Linux и ориентированного на использование технологий Wayland, Qt и KDE.

В KaOS используется «плавающее» обновление пакетов (их более 2000) и pacman из проекта Arch Linux для управления пакетами.

До этой версии в качестве среды рабочего стола в KaOS использовалась KDE Plasma.

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

>>> Подробности на kaosx.us (kaosx.us)

dataman
()

35 лет назад Гвидо ван Россум написал в сети Usenet: «This is Python»...

 

Python 0.9.1 part 01/21:

Guido van Rossum guido at cwi.nl
Wed Feb 20 04:35:26 AEST 1991
Previous message (by thread): unbatcher out of sync?
Next message (by thread): Python 0.9.1 part 03/21
Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

: This is a shell archive.
: Extract with 'sh this_file'.
: Extract this part first since it makes all directories
echo 'Start of pack.out, part 01 out of 21:'
echo -n 'Making directories ... '
err="no"
test -d 'demo' || mkdir 'demo' || err="yes"
test -d 'demo/scripts' || mkdir 'demo/scripts' || err="yes"
test -d 'demo/sgi' || mkdir 'demo/sgi' || err="yes"
test -d 'demo/sgi/audio' || mkdir 'demo/sgi/audio' || err="yes"
test -d 'demo/sgi/audio_stdwin' || mkdir 'demo/sgi/audio_stdwin' || err="yes"
test -d 'demo/sgi/gl' || mkdir 'demo/sgi/gl' || err="yes"
test -d 'demo/sgi/gl_panel' || mkdir 'demo/sgi/gl_panel' || err="yes"
test -d 'demo/sgi/gl_panel/apanel' || mkdir 'demo/sgi/gl_panel/apanel' || err="yes"
test -d 'demo/sgi/gl_panel/flying' || mkdir 'demo/sgi/gl_panel/flying' || err="yes"
test -d 'demo/sgi/gl_panel/nurbs' || mkdir 'demo/sgi/gl_panel/nurbs' || err="yes"
test -d 'demo/sgi/gl_panel/twoview' || mkdir 'demo/sgi/gl_panel/twoview' || err="yes"
test -d 'demo/stdwin' || mkdir 'demo/stdwin' || err="yes"
test -d 'doc' || mkdir 'doc' || err="yes"
test -d 'lib' || mkdir 'lib' || err="yes"
test -d 'src' || mkdir 'src' || err="yes"
echo 'done'
if test "$err" = "yes"
then echo "didn't make it."
fi
if test -s 'README'
then echo '*** I will not over-write existing file README'
else
echo 'x - README'
sed 's/^X//' > 'README' << 'EOF'
This is Python, an extensible interpreted programming language that
combines remarkable power with very clear syntax.

This is version 0.9 (the first beta release), patchlevel 1.

Python can be used instead of shell, Awk or Perl scripts, to write
prototypes of real applications, or as an extension language of large
systems, you name it.  There are built-in modules that interface to
the operating system and to various window systems: X11, the Mac
window system (you need STDWIN for these two), and Silicon Graphics'
GL library.  It runs on most modern versions of UNIX, on the Mac, and
I wouldn't be surprised if it ran on MS-DOS unchanged.  I developed it
mostly on an SGI IRIS workstation (using IRIX 3.1 and 3.2) and on the
Mac, but have tested it also on SunOS (4.1) and BSD 4.3 (tahoe).

Building and installing Python is easy (but do read the Makefile).
A UNIX style manual page and extensive documentation (in LaTeX format)
are provided.  (In the beta release, the documentation is still under
development.)

Please try it out and send me your comments (on anything -- the
language design, implementation, portability, installation,
documentation) and the modules you wrote for it, to make the first
real release better.  If you needed to hack the source to get it to
compile and run on a particular machine, send me the fixes -- I'll try
to incorporate them into the next patch.  If you can't get it to work
at all, send me a *detailed* description of the problem and I may look
into it.

If you want to profit of the X11 or Mac window interface, you'll need
STDWIN.  This is a portable window system interface by the same
author.  The versions of STDWIN floating around on some archives are
not sufficiently up-to-date for use with Python.  I will distribute
the latest and greatest STDWIN version at about the same time as Python.

I am the author of Python:

	Guido van Rossum
	CWI, dept. CST
	Kruislaan 413
	1098 SJ  Amsterdam
	The Netherlands

	E-mail: guido at cwi.nl

The Python source is copyrighted, but you can freely use and copy it
as long as you don't change or remove the copyright:

/***********************************************************
Copyright 1991 by Stichting Mathematisch Centrum, Amsterdam, The
Netherlands.
# Fancy NURBS demo.  Require Z buffer and Panel Library.

from gl import *
from GL import *
from DEVICE import *
from nurbsdata import *
import panel

#
# flags = trim_f, invis_f, cpvis_f, tpvis_f, axvis_f, freeze_f
#
TRIM	= 0
VIS	= 1
CPVIS	= 2
TPVIS	= 3
AXVIS	= 4
FREEZE	= 5
flags = [0, 1, 0, 0, 0, 0]

def draw_axis () :
	cpack (0x0)
	zero = (0.0, 0.0, 0.0)
	#
	one = (1.0, 0.0, 0.0)
	smallline (zero, one)
	cmov (1.0, 0.0, 0.0)
	charstr ('x')
	#
	one = (0.0, 1.0, 0.0)
	smallline (zero, one)
	cmov (0.0, 1.0, 0.0)
	charstr ('y')
	#
	one = (0.0, 0.0, 1.0)
	smallline (zero, one)
	cmov (0.0, 0.0, 1.0)
	charstr ('z')

DELTA = 0.1

def cross (p) :
	p0 = [p[0], p[1], p[2]]
	p1 = [p[0], p[1], p[2]]
	for i in range (0, 3) :
		p0[i] = p0[i] + DELTA
		p1[i] = p1[i] - DELTA
		smallline (p0, p1)
		p0[i] = p0[i] - DELTA
		p1[i] = p1[i] + DELTA

def smallline (p0, p1) :
	bgnline ()
	v3f (p0)
	v3f (p1)
	endline ()

def draw_pts (pnts, color) :
	linewidth (2)
	cpack (color)
	for i in pnts :
		cross (i)

def init_windows():
	foreground()
	wid = winopen('nurbs')
	wintitle('NURBS Surface')
	doublebuffer()
	RGBmode()
	gconfig()
	lsetdepth(0x000, 0x7fffff)
	zbuffer( TRUE )

def init_view():
	mmode(MPROJECTION)
	ortho( -5., 5., -5., 5., -5., 5. )
	#
	mmode(MVIEWING)
	loadmatrix(idmat)
	#
	lmbind(MATERIAL, 1)

def set_scene(flags):
	#
	lmbind(MATERIAL, 0)
	RGBcolor(150,150,150)
	lmbind(MATERIAL, 1)
	clear()
	zclear()
	#
	if not flags[FREEZE] :
		rotate( 100, 'y' )
		rotate( 100, 'z' )

def draw_trim_surface(flags):
	pnts = ctlpoints
	if flags[VIS] :
		bgnsurface()
		nurbssurface(surfknots,surfknots,pnts,ORDER,ORDER,N_XYZ)
		if flags[TRIM]:
			bgntrim()
			nurbscurve(trimknots,trimpoints,ORDER-1,N_STW)
			endtrim()
		endsurface()
	#
	if flags[CPVIS] :
		for i in pnts :
			draw_pts (i, RED)
	#
	if flags[TPVIS] :
		tpts = trimpoints
		draw_pts (tpts, YELLOW)
	#
	if flags[AXVIS] :
		draw_axis ()
	#
	swapbuffers()

def make_lights():
	lmdef(DEFLMODEL,1,[])
	lmdef(DEFLIGHT,1,[])
	#
	# define material #1
	#
	a = []
	a = a + [EMISSION, 0.0, 0.0, 0.0]
	a = a + [AMBIENT,  0.1, 0.1, 0.1]
	a = a + [DIFFUSE,  0.6, 0.3, 0.3]
	a = a + [SPECULAR,  0.0, 0.6, 0.0]
	a = a + [SHININESS, 2.0]
	a = a + [LMNULL]
	lmdef(DEFMATERIAL, 1, a)
	#
	# turn on lighting
	#
	lmbind(LIGHT0, 1)
	lmbind(LMODEL, 1)

def main():
	init_windows()
	make_lights()
	init_view()
	#
	panel.needredraw()
	panels = panel.defpanellist('nurbs.s')
	p = panels[0]
	#
	def cbtrim (a) :
		flags[TRIM:TRIM+1] = [int (a.val)]
	p.trim.upfunc = cbtrim
	#
	def cbquit (a) :
		import sys
		sys.exit (1)
	p.quit.upfunc = cbquit
	#
	def cbmotion (a) :
		flags[FREEZE:FREEZE+1] = [int (a.val)]
	p.motion.upfunc = cbmotion
	#
	def cbxyzaxis (a) :
		flags[AXVIS:AXVIS+1] = [int (a.val)]
	p.xyzaxis.upfunc = cbxyzaxis
	#
	def cbtrimpnts (a) :
		flags[TPVIS:TPVIS+1] = [int (a.val)]
	p.trimpnts.upfunc = cbtrimpnts
	#
	def cbcntlpnts (a) :
		flags[CPVIS:CPVIS+1] = [int (a.val)]
	p.cntlpnts.upfunc = cbcntlpnts
	#
	def cbnurb (a) :
		flags[VIS:VIS+1] = [int (a.val)]
	p.nurb.upfunc = cbnurb
	#
	set_scene(flags)
	setnurbsproperty( N_ERRORCHECKING, 1.0 )
	setnurbsproperty( N_PIXEL_TOLERANCE, 50.0 )
	draw_trim_surface(flags)
	#
	while 1:
		act = panel.dopanel()
		#
		wid =  panel.userredraw ()
		if wid :
			winset (wid)
			reshapeviewport()
			set_scene(flags)
			draw_trim_surface(flags)
		#
		set_scene(flags)
		draw_trim_surface(flags)

main()
dataman
()

kew — простой консольный аудиоплеер

 , , termbox2,

kew (codeberg.org) (kjuː) – минималистичный консольный аудиоплеер со следующими возможностями:

  • поиск в музыкальной библиотеке по части названия, из командной строки и в TUI;
  • автоматическое создание плейлиста на основе совпадений песни, альбома или исполнителя;
  • безопасность — kew не собирает¹ никаких данных;
  • Музыка без отвлекающих факторов и алгоритмических манипуляций;
  • полноцветные обложки треков в эмуляторах терминала, поддерживающих sixel;
  • встроенный визуализатор с настройками внешнего вида. Также поддерживается внешний консольный визуализатор Chroma;
  • воспроизведение без пауз (gapless playback);
  • добавление файлов и директорий в очередь воспроизведения;
  • поддержка аудиоформатов MP3, FLAC, MPEG-4/M4A (AAC), OPUS, OGG, Webm и WAV;
  • поддержка событий рабочего стола через MPRIS;
  • поддержка показа текстов песен из файлов .lrc, встроенных в тег SYLT (MP3) или комментариев Vorbis (FLAC, Ogg, Opus);
  • темы или цвета, основанные на обложках треков.

¹. По умолчанию kew отображает свой статус в Discord, но эту функцию можно отключить как в Discord, так и в конфигурационном файле ~/.config/kew/kewrc (discordRPCEnabled=0).

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

dataman
()

Zen C — очередной улучшенный Си

 , zen c, , ,

https://www.zenc-lang.org
https://github.com/z-libs/Zen-C
https://github.com/z-libs/Zen-C/blob/main/translations/README_RU.md:

Современная эргономика. Никаких накладных расходов. Чистый Си.
Пишите как на высокоуровневом языке, запускайте как Си.
Zen C — это современный язык системного программирования, который компилируется в человекочитаемом GNU C/C11. Он предоставляет богатый набор возможностей, включая вывод типов, сопоставление с паттернами, генерику, трейты, async/await и ручное управление памятью с возможностями RAII, при этом поддерживая 100% совместимость с ABI Си.

Портативная сборка (APE)
Zen C можно скомпилировать как Actually Portable Executable (APE) с помощью Cosmopolitan Libc. Это создаёт один исполняемый файл (.com), работающий нативно на Linux, macOS, Windows, FreeBSD, OpenBSD и NetBSD на архитектурах x86_64 и aarch64.

https://github.com/z-libs/Zen-C/blob/main/examples/features/comptime_fib.zc:

fn main() {
    comptime {
        let N = 20;
        let fib: long[20];
        fib[0] = (long)0;
        fib[1] = (long)1;
        for let i=2; i<N; i+=1 {
            fib[i] = fib[i-1] + fib[i-2];
        }

        printf("// Generated Fibonacci Sequence\n");
        printf("let fibs: int[%d] = [", N);
        for let i=0; i<N; i+=1 {
            printf("%ld", fib[i]);
            if (i < N-1) printf(", ");
        }
        printf("];\n");
    }

    print "Compile-time generated Fibonacci sequence:\n";
    for i in 0..20 {
        print f"fib[{i}] = {fibs[i]}\n";
    }
}
dataman
()

Shotcut 26.1 и 26.2 BETA

 , , , ,

Группа Мультимедиа

30 января состоялся выпуск 26.1 кроссплатформенного видеоредактора Shotcut с поддержкой большого количества аудио- и видеоформатов благодаря использованию библиотек FFmpeg.

Проект написан на языке С++ с использованием фреймворков MLT (mltframework.org) и Qt, и распространяется по лицензии GPL 3.0.

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

>>> Список изменений версии 26.2 BETA на GitHub – там же можно скачать сборки в различных форматах.

>>> Список изменений версии 26.1 на shotcut.org (shotcut.org)

dataman
()

libunicode 0.8.0

 , , ,

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

17 февраля состоялся выпуск 0.8.0 библиотеки для языка C++ (стандарт C++20) libunicode. Проект разрабатывается командой разработчиков эмулятора терминала Contour и распространяется по лицензии Apache 2.0.

Возможности библиотеки:

  • поддержка стандартов Unicode 17.0:
  • API для получения свойств Юникод;
  • SIMD-оптимизация некоторых функций (с использованием std::simd или std::experimental::simd при их наличии);
  • оптимизированное конвертирование UTF8 <-> UTF32;
  • эквивалент функции wcwidth (int unicode::width(char32_t));
  • сегментирование текста по графемам, символам, эмодзи и письменностям;
  • преобразование регистра и сравнение строк;
  • высокоуровневый API сегментирования текста, подходящий для реализации шейпинга текста.
  • покрытие тестами большинства возможностей библиотеки (ширина символа и сегментирование).

В комплект поставки также входит консольная утилита unicode-query для получения подробной информации о строках.

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

>>> Подробности на GitHub (github.com)

dataman
()

krep 2.0.0

 , krep, , ,

Группа Open Source

11 февраля состоялся выпуск 2.0.0 krep — высокопроизводительной, многопоточной, SIMD-оптимизированной консольной утилиты для поиска строк.

Основные особенности:

  • В зависимости от типа шаблонов для оптимальной производительности используются алгоритмы Бойера—Мура—Хорспула, Кнута—Морриса—Пратта или Ахо—Корасик.
  • Использование отображаемого на память файла при обработке больших файлов.
  • Автоматическое распределение поиска по доступным ядрам процессора.
  • SIMD-оптимизация с поддержкой SSE4.2, AVX2 и NEON.

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

>>> Подробности на GitHub (github.com)

dataman
()

7-Zip 26.00

 , , , ,

Группа Open Source

12 февраля, после полугода разработки, состоялся выпуск 26.00 библиотеки и консольной утилиты 7-Zip, предназначенных для работы с архивами в формате 7z, XZ, BZIP2, GZIP, TAR, ZIP, WIM и многих других.

Проект написан на языках C и C++ и распространяется по лицензии GNU LGPL.

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

  • улучшен код для ZIP, CPIO, RAR, UFD, QCOW и Compound;
  • исправлена ошибка извлечения из архивов TAR, содержащих разрежённые файлы;
  • в 7-Zip File Manager улучшена сортировка списка файлов с использованием имени файла как второго ключа сортировки;
  • в 7-Zip File Manager улучшен тест производительности для систем с более чем 64-мя потоками CPU;
  • исправлены некоторые ошибки.

>>> Подробности на GitHub (github.com)

dataman
()

FocusWriter 1.9.0

 , , focuswriter, ,

Группа Open Source

Состоялся выпуск 1.9.0 FocusWriter — простого текстового процессора без отвлекающего внимание интерфейса, который становится доступен при перемещении «мыши» к краям экрана.

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

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

Поддерживаются форматы OpenDocument, XML, Office Open XML, Rich Text Format и TXT.

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

>>> Подробности на GitHub (github.com)

dataman
()

Linux 6.19

 , , ,

Linux 6.19
Группа Ядро Linux

После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 6.19. Среди наиболее заметных изменений: подсистема Live Update Orchestrator, поддержка PCIe Link Encryption, системный вызов listns, режим Zero-Copy Receive в io_uring, поддержка ARM-расширения MPAM, klp-build для генерации live-патчей, поддержка архитектуры LoongArch32, QoS для s2idle, оптимизация подсистемы аудита, Intel LASS для защиты от Spectre, поддержка хэшей SHA-3 и BLAKE2b, механизм Confidential VMBus, TX-оптимизации в сетевой подсистеме, протокол CAN XL, API для аппаратного ускорения HDR-вывода.

В анонсе новой версии Линус сообщил, что следующему выпуску ядра будет присвоен номер 7.0, так как в ветке 6.x накопилось достаточного выпусков для смены первого числа в номере версии (в своё время выпуск 6.0 был сформирован следом за 5.19). Смена нумерации осуществляется из эстетических соображений и является формальным шагом, снимающим дискомфорт из-за накопления большого числа выпусков в серии. Линус пошутил, что его сбивают с толку большие числа для которых не хватает пальцев на руках и ногах. При этом формально повод для значительного изменения номера версии есть, так как начиная со следующего выпуска поддержку Rust решено перевести из экспериментальных в основные возможности ядра.

В новую версию принято 15657 исправлений от 2237 разработчиков, размер патча – 52 МБ (изменения затронули 13682 файла, добавлено 794649 строк кода, удалено 335498 строк). В прошлом выпуске было 15035 исправлений от 2217 разработчиков, размер патча – 45 МБ. Около 40% всех представленных в 6.19 изменений связаны с драйверами устройств, примерно 13% изменений имеют отношение к обновлению кода, специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 5% – с файловыми системами и 3% c внутренними подсистемами ядра.

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

>>> Подробности на OpenNET (opennet.ru)

dataman
()

Сопровождающий 16 модулей GNOME ограничит своё участие в проекте

 , ,

https://www.opennet.ru/opennews/art.shtml?num=64759:

Кристиан Хергерт (Christian Hergert), автор интегрированной среды разработки GNOME Builder, эмулятора терминала Ptyxis и текстового редактора GNOME Text Editor, объявил, что в связи с переездом из США во Францию и изменением приоритетов в жизни, больше не сможет уделять должное внимание разработке GNOME. Кристиан являлся почти единственным активеным сопровождающим 16 модулей GNOME и более сорока часов в неделю уделял поддержке и развитию стека GNOME. Отмечается, что после переезда его возможности по участию в разработке будут сильно ограничены и основное время он будет уделять семье, новой деятельности и налаживанию быта на новом месте.

В качестве причины переезда упоминается новая эммиграционная политика США (у Криса жена родом из Тибета). Крис был трудоустроен в Red Hat, но данная компания отклонила его просьбу сохранить должность после переезда во Францию, несмотря на предоставление доказательства наличия рисков для его семьи.

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

  • GtkSourceView - библиотека для встраивания в приложения виджета многострочного редактирования текста, применяется во многих редакторах на базе GTK.
  • Text Editor - основной текстовый редактор GNOME.
  • Ptyxis - эмулятор терминала, по умолчанию используется в Fedora, Debian, Ubuntu, RHEL/CentOS/Alma/Rocky.
  • libspelling - библиотека для использования в GTK-приложениях проверки правописания на базе пакета enchant2.
  • Sysprof - система профилирования, интегрируемая с Linux perf, Mesa, GTK, Pango, GLib, WebKit, Mutter.
  • Builder - интегрированная среда разработки.
  • template-glib - шаблонизатор для GObject.
  • jsonrpc-glib - библиотека для взаимодействия через JSON-RPC.
  • libpeas - движок для создания плагинов на C, C++, Rust, Lua, Python и JavaScript.
  • libdex - библиотека для отложенного выполнения задач и интеграции с io_uring.
  • GOM (gnome.org) - маппинг объектов GObject в SQLite.
  • Manuals - просмотрщик документации.
  • Foundry - реализация функциональности GNOME Builder для использования из командной строки и в форме библиотеки.
  • d-spy - утилита для анализа соединений D-Bus.
  • libpanel - виджеты для создания сложных IDE-подобных приложений на базе GTK и libadwaita.
  • libmks - GTK-компоненты для отображения экрана и передачи событий мыши/клавиатуры при взаимодействии с виртуальными машинами на базе QEMU.
dataman
()

RSS подписка на новые темы