The OpenNET Project / Index page

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

·05.05 Лидер проекта NixOS вышел из управляющего совета после угрозы создания форка (219 –13)
  Элко Долстра (Eelco Dolstra), автор пакетного менеджера Nix, объявил об уходе с поста главы управляющего совета некоммерческой организации NixOS Foundation, обеспечивающей поддержку инфраструктуры, управляющей финансовыми потоками и решающей юридические вопросы проекта NixOS. Решение принято после публикации коллективного открытого письма с критикой действий Элко и опасениями за будущее Nix и NixOS. Изначально письмо опубликовано анонимными авторами, но после его размещения под ним подписалось 160 человек.

В опубликованном открытом письме упоминается кризис лидерства в проекте и неспособность текущего руководства должным образом реагировать на проблемы сообщества, что приводит к тому, что эти проблемы в течение многих лет остаются нерешёнными. В частности, отмечается неспособность руководства сформировать и отстаивать ценности, которых должно придерживаться сообщество, а также привлекать к ответственности участников за недостойное поведение. По мнению авторов открытого письма, в сообществе сложилась токсичная культура и руководство NixOS Foundation бездействует и ничего не делает для её искоренения.

Утверждается, что возникновение подобной токсичной культуры, которая угрожает жизнеспособности проекта, является следствием модели поведения Элко Долстра как лидера, который подрывает авторитет других участников, отказывается делегировать другим полномочия, игнорирует проблемы сообщества и поддерживает конфликты интересов (например, недовольство касается недостаточной поддержки представителей маргинальных групп, а также подозрений в продвижении интересов компании Determinate Systems, в которой он является соучредителем). В письме говорится, что проект достиг переломного момента, после которого дальнейшее бездействие может привести к потере доверия, прекращению корпоративной поддержки, уходу части участников, а также к распаду наиболее активного ядра сообщества и развалу команды модераторов. Подписавшие письмо выразили готовность поддержать форк проекта, в случае если Элко Долстра не сложит с себя полномочия.

Элко вменяется оказание давления на остальных членов управляющего совета и управляющие разработкой команды с целью отмены определённых решений. Например, после выработки консенсуса относительно возможности сообщества накладывать вето на спонсоров конференции NixCon, Элко Долстра, будучи единственным несогласным, инициировал повторное рассмотрение этого вопроса (активисты из сообщества пытались недопустить участие компании Anduril, использующей NixOS, из-за выполнения военных заказов). Из примеров злоупотребления имеющейся властью для отмены решений, которые должны приниматься совместно, также упоминаются отказы Долстра предоставить права на рецензирование кода для давних участников и блокирование внесения изменения в систему сборки, согласованного в рамках RFC. Также упоминается, что из-за нерегламентируемой правилами власти команда модераторов чувствует себя бессильной и опасается, что её авторитет может быть подорван действиями Элко Долстра.

В ответ на письмо Элко Долстра опубликовал заявление, в котором пояснил, что в последние годы он почти не участвует в управлении Nixpkgs и NixOS и передал управление другим членам сообщества, на которых у него теперь не больше влияния, чем у любого другого активного участника. Формально он обладает полномочиями, не большими, чем у других членов управляющего совета NixOS Foundation, а с января не входит в комитет, принимающий RFC. Дополнительно подчёркивается, что сообщество самоорганизовано и организация NixOS Foundation никаким образом не контролирует его и не управляет им.

Что касается вопроса о спонсорах и участниках NixCon, то Элко отстаивает недопустимость дискриминации и считает вредным отказ от поддержки тех, кто приносит пользу проекту - у каждого свой взгляд на этику и свои ценности, кто-то одобряет деятельность Anduril, а кто-то осуждает, и не разработчикам судить о том, чьи взгляды верны, а чьи нет, кому разрешать, а кому запрещать участие в проекте и конференциях. Элко также отверг обвинения в ущемлении меньшинств, указав на то, что изначально старался сформировать инклюзивную среду, открытую для всех людей, независимо от их происхождения и особенностей.

После рассмотрения открытого письма управляющий совет NixOS Foundation заявил о проведении в течение 14 дней собрания, на котором будет сформирована новая структура управления проектом, подчинённая сообществу и нацеленная на удовлетворение потребностей сообщества. После создания нового органа управления, члены текущего управляющего совета, в который помимо Элко входят ещё четыре участника, передадут новой структуре свои полномочия. Процесс трансформации управления в проекте будет проходить публично и каждый участник сможет проконтролировать его.

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

  1. Главная ссылка к новости
  2. OpenNews: Проект NixBSD развивает вариант NixOS с ядром из FreeBSD
  3. OpenNews: Выпуск дистрибутива NixOS 23.11, использующего пакетный менеджер Nix
  4. OpenNews: Основатель Void Linux поменял лицензию на своё ответвление XBPS
  5. OpenNews: Продолжение конфликта Software Freedom Conservancy и Software Freedom Law Center
  6. OpenNews: Создатель форка Audacity покинул проект после конфликта при выборе нового имени
Обсуждение (219 –13) | Тип: Тема для размышления | Интересно


·05.05 Выпуск Chrome OS 124 (62 –5)
  Представлен релиз операционной системы Chrome OS 124, основанной на ядре Linux, системном менеджере upstart, сборочном инструментарии ebuild/portage, открытых компонентах и web-браузере Chrome 124. Пользовательское окружение Chrome OS ограничивается web-браузером, а вместо стандартных программ задействованы web-приложения, тем не менее, Chrome OS включает в себя полноценный многооконный интерфейс, рабочий стол и панель задач. Вывод на экран осуществляется при помощи графического стека Freon (ведётся работа по переходу на использование Wayland) и оконного менеджера Aura. Исходные тексты распространяются под свободной лицензией Apache 2.0. Сборка Chrome OS 124 доступна для большинства актуальных моделей Chromebook. Для использования на обычных компьютерах предлагается редакция Chrome OS Flex.

Основные изменения в Chrome OS 124:

  • Предложен более быстрый способ настройки раскладки окон при использовании режима разделения содержимого экрана на части, в котором можно разместить бок о бок окна двух разных приложений. После выбора режима разделения экрана в свойствах определённого окна, в правой половине экрана теперь сразу выводится обзор остальных открытых окон, которые можно выбрать для показа на второй половине.
  • Добавлен режим приоритизации трафика (QoS, Quality of Service) при использовании беспроводных соединений, позволяющий предоставить больше пропускной способности видеоконференциям и игровым приложениям.
  • Увеличен максимальный размер указателей мыши. Желаемый размер указателя можно выбрать в конфигураторе в секции "Accessibility>Сursor and touchpad". Большие указатели могут потребоваться не только для людей с проблемами со зрением, но и для акцентирования внимания при обучении и показе презентаций.
  • Реализована необходимость получения отдельных полномочий при доступе приложений к API WebHID, предназначенному для низкоуровневого доступа к HID-устройствам (Human interface device, клавиатуры, мыши, геймпады, сенсорные панели) и организации работы без наличия в системе специфичных драйверов.
  • Для уменьшения размера загружаемых обновлений драйверы к сканерам теперь загружаются непосредственно после подсоединения сканера, которому требуется драйвер, при активном сеансе пользователя. Загрузка производится автоматически без вывода запроса подтверждения операции у пользователя, но с показом уведомления после установки драйвера.
  • Для манипуляторов мышь с интерфейсом Bluetooth включено использование режима быстрого сопряжения (Fast Pair). После включения новой мыши или её приближения к компьютеру система автоматически определит новое устройство и отобразит приглашение подключить её одним нажатием.
  • Добавлена поддержка механизма "carrier lock", позволяющего мобильному оператору связи поставлять устройства, работающие только с SIM-картами этого оператора (например, когда устройств продаётся по сильно заниженной стоимости, а затраты покрываются за счёт тарифов на связь). Возможно прекращение привязки после истечения указанного в договоре времени. На устройствах с привязкой к оператору вход в режим разработчика запрещён.

  1. Главная ссылка к новости
  2. OpenNews: Выпуск web-браузера Chrome 124
  3. OpenNews: Выпуск Chrome OS 123
  4. OpenNews: Google отключил поддержку io_uring в ChromeOS и Android из-за плачевного состояния безопасности
  5. OpenNews: В ChromeOS намечено разделение браузера и системного интерфейса
  6. OpenNews: Google продлил до 10 лет время поддержки устройств на базе ChromeOS
Обсуждение (62 –5) | Тип: Программы |


·05.05 Выпуск загрузочных прошивок Libreboot 20240504 и Canoeboot 20240504 (53 +15)
  Представлен выпуск свободной загрузочной прошивки Libreboot 20240504, который получил статус стабильной версии (прошлый стабильный релиз был опубликован в июне 2023 года). Проект развивает готовую сборку проекта Coreboot, предоставляющую замену проприетарным прошивкам UEFI и BIOS, отвечающим за инициализации CPU, памяти, периферийных устройств и других компонентов оборудования, с минимизацией бинарных вставок.

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

В новом выпуске добавлена поддержка ноутбука Dell Latitude E5420 и решены проблемы с выходом из спящего режима S3 других поддерживаемых ноутбуков Dell Latitude. Для ноутбуков HP EliteBook 8560w решены проблемы с WiFi. Проведена работа по повышению стабильности и исправлению ошибок при работе с ранее поддерживаемыми платами. Включены изменения, накопленные за год в тестовых ветках Libreboot.

Загрузчик GRUB обновлён до версии 2.12 и расширен патчами для поддержки USB 3.0 и для использования хэшей argon2 при формировании ключей к шифрованным разделам LUKS2 (вместо PBKDF2). В SeaBIOS предоставлена возможность загрузки с накопителей NVMe SSD. В сборочной системе проведена оптимизация, нацеленная на снижение размера кода. Для прошивки образов Libreboot в материнские платы вместо утилиты flashrom задействован инструментарий flashprog.


Оборудование, поддерживаемое в Libreboot:

  • Серверные материнские платы:
    • ASUS KFSN4-DRE
    • ASUS KGPE-D16
  • Десктоп-системы:
    • Gigabyte GA-G41M-ES2L;
    • Acer G43T-AM3;
    • Intel D510MO / D410PT;
    • Apple iMac 5,2;
    • HP Elite 8200 SFF/MT;
    • HP Elite 8300 USDT;
    • ASUS KCMA-D8;
    • Dell Precision T1650.
    • Intel D945GCLF
    • Dell OptiPlex 7020 и 9020 серии SFF, XE2 SFF, MT и XE2 MT;
  • Ноутбуки:
    • ThinkPad X60 / X60S / X60 Tablet;
    • ThinkPad T60;
    • Lenovo ThinkPad X200 / X200S / X200 / X220 / X220 eDP / X230 Tablet;
    • Lenovo ThinkPad X301;
    • Lenovo ThinkPad R400;
    • Lenovo ThinkPad T400 / T400S / T420 / T420S / T430 / T440;
    • Lenovo ThinkPad T500 / T530;
    • Lenovo ThinkPad W530 / W541;
    • Lenovo ThinkPad R500;
    • HP EliteBook 2560p / 2570p / 2170p / 8470p / Folio 9470m;
    • HP EliteBook 820 G2;
    • HP Compaq Elite 8300 CMT;
    • HP EliteBook 8460p;
    • HP EliteBook 8560w;
    • Dell Latitute E6400 / E6430;
    • Dell Latitude E5420/E5520/E5530/E6520/E6530/E6420;
    • Apple MacBook1 и MacBook2;
    • ASUS Chromebook Flip C101 (ARM);
    • Samsung Chromebook Plus (ARM).

В дополнение к Libreboot сформирован выпуск проекта Canoeboot 20240504, который позиционируется как полностью свободная сборка Libreboot, соответствующая требованиям Фонда СПО к полностью свободным дистрибутивам. Выпуск Canoeboot основан на версии Libreboot 20240504, из которой удалены компоненты и изменения, не соответствующие критериям Фонда СПО.

Необходимость в создании отдельной сборки Libreboot объясняется тем, что сформированные Фондом СПО требования к свободным дистрибутивам не допускают поставку бинарных прошивок (firmware) и любых бинарных компонентов драйверов. При этом начиная с 2022 года проект Libreboot перешёл на более прагматичные правила использования бинарных компонентов, позволившие заметно расширить спектр поддерживаемого аппаратного обеспечения. Новой целью проекта Libreboot стала поддержка всего оборудования, поддерживаемого в coreboot, за исключением бинарных компонентов, влияющих на безопасность и надёжность (например, в Libreboot используется me_cleaner для отключения Intel ME). При таком подходе Libreboot потерял статус полностью свободного дистрибутива с позиции Фонда Свободного ПО.

Устройства, поддерживаемые в Canoeboot:

  1. Главная ссылка к новости
  2. OpenNews: Доступны загрузочные прошивки Coreboot 24.02 и Libreboot 20240225
  3. OpenNews: Выпуск загрузочной прошивки Libreboot 20240126
  4. OpenNews: Выпуск Coreboot 4.22
  5. OpenNews: Удалённая уязвимость в прослойке Shim, позволяющая обойти UEFI Secure Boot
  6. OpenNews: Опубликован Canoeboot, вариант дистрибутива Libreboot, отвечающий требованиям Фонда СПО
Обсуждение (53 +15) | Тип: Программы |


·05.05 После многолетнего забвения опубликован минималистичный web-браузер Dillo 3.1 (152 +41)
  Опубликован релиз минималистичного web-браузера Dillo 3.1, написанного на языке С/C++ с использованием библиотеки FLTK. Браузер отличается небольшим размером (исполняемый файл около мегабайта при статической сборке) и минимальным потреблением памяти, при наличии графического интерфейса с поддержкой вкладок и закладок, поддержке HTTPS и базового набора web-стандартов (есть поддержка HTML 4.01 и CSS, но нет JavaScript). Функциональность Dillo может расширяться через плагины, например, имеются плагины для протоколов IPFS и Gemini. Код проекта распространяется в рамках лицензии GPLv3.

Прошлый значительный выпуск Dillo 3.0.0 был опубликован в 2011 году, а последнее корректирующее обновление 3.0.5 в 2015 году. В 2016 году умер один из ключевых разработчиков проекта, после чего в 2017 году разработка Dillo полностью остановилась, а в 2022 истёк срок оплаты за домен проекта и сайт dillo.org прекратил существование. В январе 2024 года предпринята попытка возрождения проекта, результаты которой представлены в составе Dillo 3.1. В 2023 году также было создано ответвление Dillo+ (Dillo-Plus), в которое были включены накопившиеся исправления (последнее изменение в Dillo-Plus было добавлено два месяца назад).

Основные изменения в Dillo 3.1:

  • Добавлена поддержка плавающих HTML-элементов и CSS-свойства "float".
  • Значительно улучшена и включена по умолчанию поддержка HTTPS. Для работы HTTPS могут использоваться библиотеки OpenSSL, LibreSSL и mbed TLS. Добавлена настройка "http_force_https" для принудительного проброса с HTTP на HTTPS.
  • Расширена поддержка CSS: для всех элементов добавлена поддержка атрибутов 'width' и 'height', реализованы свойства 'min-width', 'max-width', 'min-height' и 'max-height', добавлена поддержка 'display: inline-block'.
  • Добавлена поддержка HTML-тега "<main>" и расширена поддержка тега "<button>".
  • Переработаны виджеты.
  • Обеспечено сохранение коэффициента соотношения сторон для изображений, параметры разрешения которых заданы в процентах.
  • Добавлены настройки 'adjust_min_width' и 'adjust_table_min_width'.
  • Обеспечена приоритизация загрузки ресурсов (изображения загружаются с меньшим приоритетом).
  • Добавлена настройка http_persistent_conns и предоставлена возможность повторного использования установленных соединений HTTP.
  • Добавлена поддержка HTTP-заголовка Strict-Transport-Security, которую можно отключить при помощи настройки http_strict_transport_security в dillorc.
  • Добавлена настройка ui_tab_height для задания высоты кнопок вкладок.
  • Включена возможность переключения вкладок колесом мыши.
  • Улучшено определение документов XHTML.
  • Внедрена система непрерывной интеграции для тестирования сборок для Ubuntu, MacOS, FreeBSD и Windows (cygwin).
  • Добавлены автоматизированные тесты для проверки корректности отрисовки HTML.

  1. Главная ссылка к новости
  2. OpenNews: Релиз минималистичного web-браузера Dillo 3.0
  3. OpenNews: Новая версия браузера NetSurf 3.11
  4. OpenNews: Доступен web-браузер qutebrowser 3.0
  5. OpenNews: Представлен Fifth, минималистичный web-браузер с интерфейсом на основе FLTK
  6. OpenNews: Выпуск минималистичного web-браузера links 2.26
Обсуждение (152 +41) | Тип: Программы |


·04.05 Корректирующие обновления некоторых компонентов LXQt (27 +15)
  Разработчики среды рабочего стола LXQt опубликовали корректирующие обновления некоторых компонентов, в основном связанные с устранением проблем, всплывших после обновления Qt до версии 6.7.
  • xdg-desktop-portal-lxqt 1.0.2 - решена проблема с файловыми путями, строка с которыми содержит нулевой символ. Проблема проявляется с недавнего времени при использовании Firefox.
  • Image-Qt 2.0.1 - устранено аварийное завершение при использовании Qt ≥ 6.7, а также исправлена утечка памяти.
  • libfm-qt 2.0.1 - устранено аварийное завершение при использовании Qt ≥ 6.7.
  • lxqt-notificationd 2.0.1 - устранены крахи при завершении процессов, использующих Qt ≥ 6.7.

  1. Главная ссылка к новости
  2. OpenNews: Доступна среда рабочего стола LXQt 2.0.0
  3. OpenNews: Рабочий стол LXQt признан полностью готовым для использования Wayland
  4. OpenNews: Релиз фреймворка Qt 6.7 и среды разработки Qt Creator 13
Обсуждение (27 +15) | Тип: Программы |


·04.05 Для FreeBSD развивается новый графический инсталлятор. Отчёт FreeBSD за 1 квартал (259 +12)
  Организация FreeBSD Foundation ведёт разработку нового графического инсталлятора для FreeBSD, который призван сделать более удобным для новичков процесс установки и начальной настройки системы. Отмечается, что новый инсталлятор повысит привлекательность системы для пользователей, привыкших к графическим инсталляторам и воспринимающих текстовые интерфейсы как анахронизм. Кроме того, графический режим установки позволит сформировать более целостное окружение в сборках, использующих FreeBSD в качестве основы для запуска пользовательских окружений.

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

Подобный подход позволяет реализовать возможность установки в графическом режиме, используя имеющуюся инфраструктуру инсталлятора bsdinstall и сохранив в нём возможность консольного режима установки. Аналогичная замена может быть произведена и для конфигуратора bsdconfig, который уже поддерживает опцию "-X" для создания простого графического интерфейса через вызов Xdialog (на базе GTK2) вместо bsddialog. Использование gbsddialog вместо Xdialog позволит получить более современное оформление интерфейса.

Рабочая реализация нового инсталлятора уже готова для тестирования, а необходимые для его интеграции в основной состав патчи предложены для рецензирования. Для включения в bsdinstall предложены переведённые на bsddialog интерфейсы для добавления пользователя, установки пароля администратора и выбора часового пояса, а также компоненты для выбора реализации утилиты dialog на основе значения переменной окружения $DIALOG и поддержки активации графического режима.

Примечательно, что проект GhostBSD (редакция FreeBSD с рабочим столом MATE) уже использует собственный графический инсталлятор, написанный на Python и PyGTK, но его перенос во FreeBSD не рассматривается, так как он потребует включения Python в качестве дополнительной зависимости, что приведёт к заметному увеличению размера установочного носителя. Несколько лет назад при поддержке FreeBSD Foundation также развивался прототип графического инсталлятора, написанного на языке Lua и реализованного в форме http-сервера, предоставляющего web-интерфейс, который открывается в однооконном режиме при помощи web-браузера.

Из других событий, упомянутых в отчёте FreeBSD за первый квартал 2024 года, можно отметить:

  • Ведётся работа по улучшению звукового стека. Реализована возможность отсоединения звуковых устройств в асинхронном режиме, что необходимо, например, для горячего отключения звуковых карт с интерфейсом USB. В планах реализация библиотеки oss, утилиты audio и утилиты для управления устройствами Bluetooth, а также расширение возможностей утилиты и библиотеки mixer.
  • Для Bhyve реализован фоновый процесс vmstated для управления виртуальными машинами и настройки связанных с ними сетевых подсистем и хранилищ. Добавлена утилита vmstatedctl для управления (запуска/остановки/проверки состояния) виртуальными машинами в стиле команды jail.
  • Инициатива по выносу в отдельную библиотеку libsys.so кода для обращения к системным вызовам, ранее присутствовавшего в libc.so и libpthread.so. Создание libsys.so позволит ограничить прямое обращение к системным вызовам только для заслуживающего доверия кода, абстрагировать доступ к системным вызовам для runtime языков программирования и улучшить поддержку инструментариев для ведения лога системных вызовов и повторного воспроизведения операций.
  • Для PackageKit развивается бэкенд для пакетного менеджера pkg, который позволит использовать для управления пакетам во FreeBSD типовые интерфейсы управления приложениями, использующими PackageKit, например, KDE Discover и GNOME Software Center.
  • Версия набора компиляторов GCC в портах обновлена до GCC 13.
  • Запущен совместный с AMD проект по созданию драйвера IOMMU для FreeBSD.
  • Ведётся портирование сетевого стека VPP (Vector Packet Processor) для FreeBSD.
  • Стартовал проект по реализации настраиваемых ограничений пропускной способности (rate limit) в OpenZFS, работающий по аналогии с дисковыми квотами, но в контексте ограничения числа операций чтения/записи и пропускной способности при чтении/записи.
  • Ведётся работа по стабилизации поддержки unionfs во FreeBSD.
  • План прекращения поддержки 32-разрядных платформ.
  • В порты добавлен KDE 6.

  1. Главная ссылка к новости
  2. OpenNews: Для FreeBSD развивается новый инсталлятор
  3. OpenNews: Во FreeBSD-CURRENT завершён переход на bsdinstall в качестве инсталлятора по умолчанию
  4. OpenNews: В дерево исходных текстов FreeBSD принят код альтернативного инсталлятора
  5. OpenNews: GUI альтернативного инсталлятора FreeBSD может быть переписан на Java
  6. OpenNews: Завершена первая стадия разработки нового инсталлятора FreeBSD
Обсуждение (259 +12) | Тип: К сведению |


·04.05 Основатель QEMU и FFmpeg опубликовал звуковой кодек TSAC (128 +47)
  Французский математик Фабрис Беллар (Fabrice Bellard), основавший в своё время проекты QEMU, FFmpeg, BPG, QuickJS, TinyGL и TinyCC, опубликовал формат кодирования звука TSAC и связанный с ним инструментарий для сжатия и распаковки звуковых файлов. Формат ориентирован на передачу данных с очень низким битрейтом, например, 5.5 kb/s для моно и 7.5 kb/s для стерео, при сохранении приемлемого качества музыки и речи. Использование TSAC позволяет упаковать музыкальную композицию, длительностью 3.5 минут и с частотой дискретизации 44.1 kHz (стерео), в файл размером 192 КБ, который будет почти неотличим от оригинала на слух неискушённого обывателя. Заявлено, что наработки проекта распространяются под лицензией MIT, но исходный код на данный момент не предложен для загрузки.

В качестве основы при создании TSAC использован звуковой кодек Descript, который расширен для поддержки стереозвука и переведён на использование другой модели машинного обучения на базе нейронной сети с архитектурой "трансформер", позволившей увеличить степень сжатия за счёт реконструкции утерянных деталей с учётом модели человеческого слухового восприятия. Модель занимает около 200 МБ в сжатом виде и оформлена в детерминированном представлении, которое гарантирует получение одинакового результата независимо от используемых CPU/GPU и числа задействованных при вычислениях потоков.

Кодировщик может работать с использованием для вычислений только CPU (для ускорения поддерживаются инструкции AVX2), но для достижения высокой производительности рекомендуется задействовать GPU. В текущем виде может применяться API CUDA для ускорения с использованием GPU NVIDIA на базе микроархитектур Ampere, ADA и Hopper (RTX 3090, RTX 4090, RTX A6000, A100 и H100), имеющих как минимум 4 ГБ видеопамяти. Для преобразования звуковых файлов перед кодированием применяется FFmpeg.

original
stereo 6.21 kb/s
mono 4.71 kb/s
stereo 2.57 kb/s

Дополнительно можно отметить обновление развиваемой Белларом утилиты ts_zip, предназначенной для эффективного сжатия текстовых данных, используя механизм предсказания токенов на основе системы машинного обучения и большой языковой модели RWKV 169M v4. При сжатии архива Википедии утилита ts_zip позволила сжать данные в 7.3 раза, а при сжатии кода ядра Linux 1.2 - в 7.8 раз. Для сравнения уровни сжатия при использовании утилиты xz составили 4.7 и 5.5 раз, соответственно. Ценой высокой эффективности сжатия является низкая скорость сжатия и большие требования к ресурсам (минимум 4 ГБ ОЗУ). На системе с GPU RTX 4090 производительность сжатия составляет примерно 1 MB/s.

  1. Главная ссылка к новости
  2. OpenNews: Facebook опубликовал звуковой кодек EnCodec, использующий машинное обучение
  3. OpenNews: Создатель QEMU и FFmpeg предложил новый формат изображений BPG
  4. OpenNews: Google опубликовал аудиокодек Lyra для передачи речи при плохом качестве связи
  5. OpenNews: Звуковому кодеку FLAC присвоен статус предложенного стандарта
  6. OpenNews: Доступен аудиокодек Opus 1.5
Обсуждение (128 +47) | Тип: К сведению |


·04.05 В KDE убрана возможность установки тем пиктограмм GNOME. Недавние изменения в KDE 6.1 (155 +36)
  Нейт Грэм (Nate Graham), разработчик, занимающийся контролем качества в проекте KDE, опубликовал отчёт о подготовке к релизу KDE Plasma 6.1, запланированному на 18 июня, а также к корректирующему выпуску 6.0.5, намеченному на 21 мая. Среди изменений, добавленных за последнюю неделю в кодовую базу, на основе которой будет сформировано обновление 6.0.5:
  • В конфигураторе запрещён выбор набора пиктограмм Adwaita и High Contrast от проекта GNOME в качестве системных тем, так как, несмотря на заявленное соответствие требованиям FreeDesktop, они не рассчитаны на использование в других окружениях и при установке в KDE приводят к проблемам из-за отсутствия необходимых пиктограмм (многие пиктограммы после выбора в KDE темы пиктограмм GNOME не отображаются или заменяются пиктограммой о повреждённом файле).
  • Ограничен максимальный размер размещаемых на панели пиктограмм виджетов Kickoff (Application Launcher) и Kicker (Application Menu).
  • Устранён крах KWin в окружении на базе Wayland, проявляющийся при невозможности открыть сокет к XWayland.
  • Устранён крах Plasma при попытке изменения набора избранных приложений через Kickoff (Application Launcher), Kicker (Application Menu) и другие реализации меню.

Недавние изменения, добавленные в ветку KDE Plasma 6.1:

  • В композитном менеджере KWin изменён метод определения активного экрана, на котором будут открываться новые окна. Активным теперь признаётся экран, с которым было последнее взаимодействие пользователя, например, перемещение мыши или установка фокуса ввода клавиатурой.
  • В текстовом редакторе Kate изменена логика составления списка недавно использованных файлов. Для попадания в список теперь необходимо чтобы была выполнена операция записи или закрытия файла, что исключает появление в списке открытых в текущий момент файлов, над которыми продолжается работа.
  • Интерфейс выбора обоев для рабочего стола избавлен от рамок и приведён к соответствию новому стилю страниц конфигуратора:
  • В системе вывода уведомлений задействована новая пиктограмма на кнопке отмены работ и обеспечена обрезка длинных заголовков по содержимому в центре, а не в левой части.
  • Обновлён интерфейс, показываемый при изменении глобальных тем оформления.

  • При изменении профиля потребления энергии через утилиту powerprofilesctl, новая информация теперь сразу отображается в виджете "Power and Battery".
  • В тему Breeze добавлены символьные версии пиктограмм, связанных с шифрованием каталогов и размещением музыки.
  • Обеспечен показ более корректных пиктограмм для звуковых и видео файлов, распространяемых в форматах, для которых отсутствуют отдельные пиктограммы.
  • В Gwenview решена проблема с аварийным завершением при попытке открытия больших изображений.

  1. Главная ссылка к новости
  2. OpenNews: Выпуск KDE Frameworks 6.1.0. Реализация Explicit Sync для KDE
  3. OpenNews: Финальная оптимизация производительности и полировка интерфейса в KDE 6
  4. OpenNews: Релиз KDE 6.0
  5. OpenNews: Инцидент с темой оформления KDE, удаляющей пользовательские файлы
Обсуждение (155 +36) | Тип: Обобщение |


·04.05 Компания Nintendo добилась блокировки 8535 репозиториев с форками эмулятора Yuzu (60 –14)
  Компания Nintendo отправила в GitHub требование о блокировке 8535 репозиториев с форками эмулятора Yuzu. Требование отправлено на основании действующего в США Закона об авторском праве в цифровую эпоху (DMCA). Проекты обвиняются в обходе технологий защиты, применяемых в приставках Nintendo Switch. В настоящее время GitHub уже выполнил требования Nintendo и заблокировал репозитории с форками Yuzu.

В приставках Nintendo для предотвращения запуска пиратских копий игр и защиты от копирования игр применяется шифрование содержимого прошивки и файлов с играми, используя криптографические ключи. Компания Nintendo владеет или управляет авторским правом на игры для своих приставок и отвечает за предоставление лицензий на распространение игр для своих устройств. Условия использования разрешают запуск игр исключительно только на своей игровой консоли и запрещают использование неавторизированных устройств.

Утверждается, что эмулятор Yuzu и ответвлённые от него репозитории нарушают права Nintendo, так как специально созданы для обхода методов технической защиты и используют в процессе работы незаконно полученные копии криптографических ключей для расшифровки игр и прошивок. Несмотря на то, что извлечение ключей для расшифровки игр ложится на пользователей и производится с использованием сторонних инструментов, сам факт расшифровки на стороне эмулятора воспринимается Nintendo как незаконный обход технических мер защиты, даже если пользователь использует ключи, извлечённые из собственной купленной копии (в условиях использования запрещено создание копий для запуска на других платформах).

Эмулятор Yuzu преподносился компанией Nintendo как инструмент для превращения персональных компьютеров в средство для массового нарушения интеллектуальной собственности. В своё время авторы эмулятора Yuzu имели неосторожность публично упоминать о том, что большинство пользователей эмулятора используют пиратские ключи, на сайте Yuzu имелись инструкции по извлечению ключей и говорилось о необходимости переноса некоторых файлов со взломанной приставки, что использовалось Nintendo как повод для обвинения проекта в потворстве пиратству и несанкционированному копированию игр. После подачи судебного иска разработчики Yuzu согласились на мировое соглашение, подразумевающее закрытие проекта и выплату Nintendo компенсации в 2.4 млн долларов.

  1. Главная ссылка к новости
  2. OpenNews: GitLab заблокировал репозиторий эмулятора Suyu
  3. OpenNews: Разработчики Yuzu согласились закрыть проект и выплатить Nintendo компенсацию в 2.4 млн долларов
  4. OpenNews: Компания Nintendo подала в суд иск против разработчиков эмулятора Yuzu
  5. OpenNews: Nintendo добилась удаления эмулятора Dolphin из каталога Steam
  6. OpenNews: Nintendo потребовала заблокировать проект Lockpick, что остановило разработку эмулятора Skyline Switch
Обсуждение (60 –14) | Тип: Тема для размышления |


·04.05 Выпуск Wine 9.8 и Wine staging 9.8 (51 +15)
  Состоялся экспериментальный выпуск открытой реализации Win32 API - Wine 9.8. С момента выпуска 9.7 было закрыто 22 отчёта об ошибках и внесено 209 изменений.

Наиболее важные изменения:

  • Движок Wine Mono с реализацией платформы .NET обновлён до выпуска 9.1.0.
  • В файлах, генерируемых с использованием языка описания интерфейса IDL (Interface Definition Language), задействованы компоненты, полностью поддерживающие выполнение в режиме интерпретации.
  • На платформах ARM улучшена поддержка RPC/COM.
  • Закрыты отчёты об ошибках, связанные с работой приложений: Solid Edge, Microsoft Office 97 installer, Lotus Approach, gldriverquery.exe, Radiosure, SimSig, iZotope Product Portal, VTFEdit, Across Lite, Falcon BMS, Corsair iCUE 4, HWMonitor 1.53, vcrun2008.
  • Закрыты отчёты об ошибках, связанные с работой игр: Battle.net launcher, Recettear.

Кроме того, сформирован выпуск проекта Wine Staging 9.8, предоставляющего расширенные сборки Wine, включающие не полностью готовые или рискованные патчи, пока непригодные для принятия в основную ветку Wine. По сравнению с Wine в Wine Staging предоставляется 430 дополнительных патчей. В новом выпуске Wine Staging осуществлена синхронизация с кодовой базой Wine 9.8 и vkd3d. Добавлен патч с реализацией метода ID3DXEffect::SetRawValue в Direct3D 9. Обновлены патчи vkd3d-latest, odbc-remove-unixodbc и ddraw-GetPickRecords.

В основной состав Wine перенесены 6 патчей, 5 из которых связаны с наращиванием функциональности реализации языка описания интерфейса WIDL (Wine Interface Definition Language), а один с обеспечением возможности сборки библиотеки stdole32.tlb с флагом "--oldtlb". Удалены патчи ntdll-CriticalSection, Pipelight и winex11-XEMBED, которые потеряли актуальность.

  1. Главная ссылка к новости
  2. OpenNews: Выпуск Wine 9.7
  3. OpenNews: В Arch Linux улучшили совместимость c Windows-играми, запускаемыми в Wine и Steam
  4. OpenNews: Проект Wine опубликовал Vkd3d 1.11 с реализацией Direct3D 12
  5. OpenNews: Компания Valve выпустила Proton 9.0, пакет для запуска Windows-игр в Linux
  6. OpenNews: Apple представил инструментарий для портирования игр, основанный на Wine
Обсуждение (51 +15) | Тип: Программы |


·03.05 Обход верификации в библиотеке xml-crypto, насчитывающей миллион загрузок в неделю (15 +15)
  В JavaScript-библиотеке xml-crypto, используемой в качестве зависимости у 402 проектов и загружаемой из каталога NPM около миллиона раз каждую неделю, выявлена уязвимость (CVE-2024-32962), которой присвоен максимальный уровень опасности (10 из 10). Библиотека предоставляет функции для шифрования и верификации по цифровой подписи XML-документов. Уязвимость даёт возможность атакующему заверить фиктивный документ, который в конфигурации по умолчанию будет успешно верифицирован библиотекой, несмотря на то, что он подписан не тем ключом, что указан для проверки подписей. Проблема проявляется начиная с версии xml-crypto 4.0.0 и без лишней огласки устранена в январском выпуске 6.0.0.

Уязвимость вызвана тем, что в конфигурации по умолчанию библиотека не авторизирует создателя подписи, а проверяет только корректность самой подписи. В частности, библиотека доверяет любому сертификату, размещённому в подписанном документе в XML-элементе KeyInfo, даже если в настройках указано использование конкретного сертификата для проверки цифровых подписей. Таким образом, для успешной верификации модифицированного документа атакующему достаточно заменить оригинальную цифровую подпись на подпись, сформированную своим закрытым ключом, и разместить связанный с этим закрытым ключом сертификат (открытый ключ) в элементе KeyInfo.

  1. Главная ссылка к новости
  2. OpenNews: Уязвимость в NPM, позволяющая изменить произвольные файлы при установке пакета
  3. OpenNews: Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн загрузок в неделю
  4. OpenNews: Уязвимость, позволявшая выпустить обновление для любого пакета в репозитории NPM
  5. OpenNews: Уязвимость в репозитории NPM, позволяющая добавить сопровождающего без подтверждения
  6. OpenNews: Уязвимость в NPM-пакете JsonWebToken, насчитывающем 10 млн загрузок в неделю
Обсуждение (15 +15) | Тип: Проблемы безопасности |


·03.05 Выпуск языка программирования Mojo 24.3 (54 +8)
  Опубликован выпуск инструментария языка программирования Mojo 24.3, позволяющего компилировать проекты на локальной системе. В состав включены компоненты, необходимые для разработки приложений на языке Mojo, включая компилятор, runtime, интерактивную REPL-оболочку для сборки и запуска программ, отладчик, дополнение к редактору кода Visual Studio Code (VS Code) с поддержкой автодополнения ввода, форматирования кода и подсветки синтаксиса, модуль для интеграции с Jupyter для сборки и запуска Mojo notebook. Исходные тексты стандартной библиотеки Mojo открыты под лицензией Apache 2.0 c исключениями от проекта LLVM, допускающими смешивание с кодом под лицензией GPLv2. Исходный код компилятора планируют открыть после завершения проектирования внутренней архитектуры.

Одновременно сформирован выпуск движка MAX Engine 24.3, предлагающего платформу для разработок в области машинного обучения. MAX Engine дополняет инструментарий Mojo средствами для разработки и отладки приложений, использующих модели машинного обучения в различных форматах (TensorFlow, PyTorch, ONNX и т.п.). Сборки Mojo SDK и MAX Engine подготовлены для платформы Linux и macOS.

Среди изменений в Mojo 24.3:

  • В модули для работы с коллекциями (List, Dict, Set и Tuple) добавлены возможности, делающие их более привычные пользователям, знакомым с языком программирования Python. В тип List добавлены методы, повторяющие Python API, такие как pop(index), resize(new_size) и insert(index, value).
  • В тип Dict добавлен метод update() для обновления ключа/значения из другого Dict.
  • В типе Tuple обеспечена работа с хранящимися только в памяти типами, такими как String, что позволяет указывать "x = tup[1]" вместо "x = tup.get[1, Int]()" и присваивать значения через "tup[1] = x".
  • В типе Set реализована поддержка именованных методов, которые можно использовать вместо операторов: difference() вместо "-", difference_update() вместо "-=", intersection_update() вместо "&=" и update() вместо "|=".
  • Добавлена функция reversed(), позволяющая поменять порядок следования элементов на обратный. Функция reversed() может применяться с List, Dict и любыми типами, поддерживающими диапазоны значений.
    
       var numbers = List(1, 2, 3, 4, 5)
       for number in reversed(numbers):
           print(number)
    
  • Реализован типаж Boolable, возвращающий для переменных с типами Dict, List и Set значение True, если они содержат хотя бы один элемент.
  • Улучшена поддержка вариативных аргументов. Предоставлена возможность определения функций, содержащих одновременно как необязательные, так и вариативные аргументы.
    
       fn variadic_arg_after_default(
         a: Int, b: Int = 3, *args: Int, c: Int, d: Int = 1, **kwargs: Int
       ): ...
    
  • Добавлены функции __source_location() и __call_location() для определения местоположения (номер строки в исходных текстах) вызовов функций и кода.
  • В метод FileHandle.seek() по аналогии с языком Python добавлена поддержка аргумента "whence".
  • Тип AnyPointer переименован в UnsafePointer. Добавлена возможность инициализации UnsafePointer из напрямую из ссылки с типом Reference ("UnsafePointer(someRef)"). Для работы с указателями UnsafePointer добавлены функции initialize_pointee_copy, initialize_pointee_move, move_from_pointee() и move_pointee.

Язык Mojo развивается под руководством Криса Латнера (Chris Lattner), основателя и главного архитектора проекта LLVM и создателя языка программирования Swift. Синтаксис Mojo основан на языке Python, а система типов близка к C/C++. Проект преподносится как язык общего назначения, расширяющий возможности языка Python средствами системного программирования, подходящий для широкого круга задач и сочетающий простоту применения для исследовательских разработок и быстрого создания прототипов с пригодностью для формирования высокопроизводительных конечных продуктов.

Простота достигается благодаря использованию привычного синтаксиса языка Python, а разработке конечных продуктов способствуют возможность компиляции в машинный код, механизмы безопасной работы с памятью и задействование средств для аппаратного ускорения вычислений. Для достижения высокой производительности поддерживается распараллеливание вычислений с задействованием всех имеющихся в системе аппаратных ресурсов гетерогенных систем, таких как GPU, специализированные ускорители для машинного обучения и векторные процессорные инструкции (SIMD). При интенсивных вычислениях распараллеливание и задействование всех вычислительных ресурсов даёт возможность добиться производительности, превосходящей приложения на C/C++.

Язык поддерживает статическую типизацию и средства для безопасной низкоуровневой работы с памятью, напоминающие возможности языка Rust, такие как отслеживание времени жизни ссылок и проверка заимствования переменных (borrow checker). При этом в языке доступны и возможности для низкоуровневой работы, например, возможно прямое обращение к памяти в режиме unsafe с использованием типа Pointer, вызов отдельных SIMD-инструкций или доступ к аппаратным расширениям, таким как TensorCores и AMX.

Mojo может использоваться как в режиме интерпретации с использованием JIT, так и для компиляции в исполняемые файлы (AOT, ahead-of-time). В компилятор встроены современные технологии автоматической оптимизации, кэширования и распределённой компиляции. Исходный код на языке Mojo преобразуются в низкоуровневый промежуточный код MLIR (Multi-Level Intermediate Representation), развиваемый проектом LLVM. Компилятор позволяет применять для генерации машинного кода различные бэкенды, поддерживающие MLIR.

  1. Главная ссылка к новости
  2. OpenNews: Открытие стандартной библиотеки языка Mojo. Обновление инструментария Mojo 24.2
  3. OpenNews: Обновление инструментария для языка программирования Mojo
  4. OpenNews: Доступен для тестирования инструментарий для языка программирования Mojo
  5. OpenNews: Создатель LLVM развивает новый язык программирования Mojo
  6. OpenNews: Сотрудник Google развивает язык программирования Carbon, нацеленный на замену C++
Обсуждение (54 +8) | Тип: Программы |


·03.05 Обновление VirtualBox 7.0.18 (48 +10)
  Компания Oracle опубликовала корректирующий релиз системы виртуализации VirtualBox 7.0.18, в котором отмечено 3 исправления:
  • Устранена ошибка в сетевых компонентах, из-за которой была опубликована рекомендация не устанавливать версию VirtualBox 7.0.16. Ошибка приводила к краху системы в хост-окружении при использовании виртуальных машин с настройками сетевых мостов или задействовании в VM сетевого адаптера, работающего только на стороне хоста (host-only network adapter).
  • В дополнения для гостевых систем с Linux внесены исправления, устраняющие предупреждения UBSAN (Undefined Behavior Sanitizer).
  • В дополнениях для гостевых систем с Linux решены проблемы, приводящие к отображению некорректного времени в примонтированных совместных папках (shared folder).

  1. Главная ссылка к новости
  2. OpenNews: Обновление Java SE, MySQL, VirtualBox, Solaris и других продуктов Oracle с устранением уязвимостей
  3. OpenNews: Выпуск VirtualBox 7.0.16
  4. OpenNews: На соревновании Pwn2Own 2024 продемонстрированы взломы Ubuntu, Firefox, Chrome, Docker и VirtualBox
  5. OpenNews: VirtualBox адаптирован для работы поверх гипервизора KVM
  6. OpenNews: Релиз системы виртуализации VirtualBox 7.0
Обсуждение (48 +10) | Тип: Программы |


·03.05 Число дополнений для Android-версии Firefox превысило 1000 (61 +23)
  Компания Mozilla сообщила о преодолении рубежа в 1000 дополнений, доступных для Android-версии Firefox в каталоге AMO (addons.mozilla.org). В декабре 2023 года, после введения в строй инфраструктуры дополнений для Android-версии Firefox, в каталоге насчитывалось 489 дополнений. Менее чем за пять месяцев число дополнений, портированных для Android-версии Firefox, удвоилось.

Разработчики дополнений, уже поставляемых для настольной версии Firefox, могут адаптировать свои продукты для работы в мобильной версии, переведя дополнение с модели постоянного фонового выполнения (extension.getBackgroundPage) на режим обработки событий (browser.runtime.onMessage.addListener), а также задействовав методы адаптивной компоновки элементов интерфейса.

  1. Главная ссылка к новости
  2. OpenNews: Mozilla ввела в строй каталог дополнений для Android-версии Firefox
  3. OpenNews: В Firefox реализована возможность импорта дополнений из других браузеров
  4. OpenNews: Mozilla анонсировала полноценную экосистему дополнений для Android-версии Firefox
  5. OpenNews: Релиз Firefox 125
  6. OpenNews: Обновление Firefox 125.0.3
Обсуждение (61 +23) | Тип: К сведению |


·02.05 Выпуск Rust 1.78. Язык Borgo, сочетающий сильные стороны Go и Rust (165 +20)
  Опубликован релиз языка программирования общего назначения Rust 1.78, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).

Методы работы с памятью в Rust избавляют разработчика от ошибок при манипулировании указателями и защищают от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.

Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами, учёт времени жизни объектов (области видимости) и оценку корректности доступа к памяти во время выполнения кода. Rust также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок.

Основные новшества:

  • Предложено новое пространство имён атрибутов "#[diagnostic]", предоставляющее средства для влияния на выдаваемые компилятором сообщения об ошибках. Первым в новом пространстве реализован атрибут "#[diagnostic::on_unimplemented]", который может использоваться для настройки сообщений об ошибках, выдаваемых в ситуации, когда требуется использовать типаж, который не реализован для типа.
    
       #[diagnostic::on_unimplemented(
           message = "My Message for `ImportantTrait<{A}>` is not implemented for `{Self}`",
           label = "My Label",
           note = "Note 1",
           note = "Note 2"
       )]
       trait ImportantTrait<A> {}
    
       fn use_my_trait(_: impl ImportantTrait<i32>) {}
    
       fn main() {
           use_my_trait(String::new());
       }
    
       error[E0277]: My Message for `ImportantTrait<i32>` is not implemented for `String`
      --> src/main.rs:12:18
       |
    12 |     use_my_trait(String::new());
       |     ------------ ^^^^^^^^^^^^^ My Label
       |     |
       |     required by a bound introduced by this call
       |
       = help: the trait `ImportantTrait<i32>` is not implemented for `String`
       = note: Note 1
       = note: Note 2
    
  • Предварительные assert-проверки, применяемые к unsafe-функциями, теперь могут откладываться до стадии генерации кода, что позволяет выполнять данные проверки без необходимости сборки стандартной библиотеки в режиме "#[cfg(debug_assertions)]". Для срабатывания проверок теперь достаточно включения отладочных assert-ов для тестовых или отладочных сборок своего кода.
  • Поведение функций в стандартной библиотеке, влияющих на выравнивание указателей и срезов (slice), теперь предсказуемо во время выполнения и зависит от входных данных. Функция pointer::align_offset, вычисляющая смещение для выравнивания указателя, теперь возвращает usize::MAX только при невозможности выполнения операции. Функции slice::align_to и slice::align_to_mut both, преобразующие срезы в представление с выровненным средним срезом и исходными начальным и конечным срезами, теперь всегда возвращают самую большую среднюю часть.
  • В разряд стабильных переведены:
  • Функция Barrier::new() стабилизирована для использования с признаком "const" в любом контексте вместо констант.
  • Для целевых платформ x86_64-pc-windows-msvc, i686-pc-windows-msvc, x86_64-pc-windows-gnu, i686-pc-windows-gnu, x86_64-pc-windows-gnullvm и i686-pc-windows-gnullvm теперь требуется как минимум версия Windows 10.
  • Реализован третий уровень поддержки для платформ wasm32-wasip2, arm64ec-pc-windows-msvc, armv8r-none-eabihf и loongarch64-unknown-linux-musl. Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования, публикации официальных сборок и проверки возможности сборки кода.
  • Реализован второй уровень поддержки целевой платформы Add wasm32-wasip1. Второй уровень поддержки подразумевает гарантию сборки.
  • Платформа wasm32-wasi-preview1-threads переименована в wasm32-wasip1-threads.
  • Компилятор переведён на использование LLVM 18. При использовании LLVM 18 для архитектур x86-32 и x86-64 изменён ABI, связанный с типами u128 и i128.
  • В пакетном менеджере Cargo стабилизирована 4 версия файлов-блокировок (lockfile v4).
  • В Cargo cтабилизирован глобальный кэш с информацией о последнем использовании данных. Кэш размещается в файле $CARGO_HOME/.global-cache при помощи SQLite, обновляется автоматически и отражает последние изменения, связанные с индексом, crate-файлом, каталогом с кодом, git clone и git checkout.



Дополнительно можно отметить язык программирования Borgo, который пытается быть более выразительным, чем язык Go, но менее сложным, чем язык Rust. Borgo комбинирует лучшие черты Go и Rust, восполняя недостатки каждого из языков. Например, язык Go прост и понятен, но не предоставляет расширенных средств для обеспечения безопасности при работе с типами. Язык Rust предоставляет средства для безопасного программирования, но переусложнён. Проект развивает Marco Sampellegrini, автор книги "The Simple Haskell Handbook" и разработчик системы непрерывной интеграции Quad CI.

В Borgo используется статическая типизация, аналогичные языку Go типы и синтаксис, похожий на Rust. Указание точек с запятой в конце строк в коде на Borgo не является обязательным. Код на языке Borgo компилируется в представление на языке Go, которое полностью совместимо с существующими пакетами для языка Go. Код компилятора написан на языке Rust и распространяется под лицензией ISC.


use fmt

enum NetworkState<T> {
    Loading,
    Failed(int),
    Success(T),
}

struct Response {
    title: string,
    duration: int,
}

fn main() {
    let res = Response {
        title: "Hello world",
        duration: 0,
    }

    let state = NetworkState.Success(res)

    let msg = match state {
        NetworkState.Loading => "still loading",
        NetworkState.Failed(code) => fmt.Sprintf("Got error code: %d", code),
        NetworkState.Success(res) => res.title,
    }

    fmt.Println(msg)
}

  1. Главная ссылка к новости
  2. OpenNews: Выпуск языка программирования Rust 1.77
  3. OpenNews: Проект по интеграции с Qt web-движка Servo, развиваемого на языке Rust
  4. OpenNews: Проект по реализации zlib на языке Rust
  5. OpenNews: В Thunderbird добавят реализацию протокола Microsoft Exchange на языке Rust
  6. OpenNews: Red Hat представил Nova, драйвер для GPU NVIDIA, написанный на языке Rust
Обсуждение (165 +20) | Тип: Программы |


<< Предыдущая страница (позже)
Следующая страница (раньше) >>



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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