Отчет об активности Haiku - декабрь 2021 года
3dEyes 9 января, 2022 - 11:51.С Новым Годом!
Примечание: этот отчет охватывает изменения только в главном git репозитории Haiku. Есть много других вещей, происходящих с Haiku за пределами этого репозитория. Из последних важных новостей у нас есть уровень совместимости с X11 и работающий экспериментальный порт Wine. Однако я не могу охватить всё в этих отчетах.
Тем не менее, давайте посмотрим, что происходит в самой Haiku!
Этот отчёт охватывает ревизии от hrev55688 до hrev55768.
Статистика коммитов
По мере окончания года я также обновил графики статистики коммитов для Haiku и для haikuports. Там вы можете увидеть наиболее активных участников за время существования проекта и за каждый год, общее количество людей, отправивших исправления, а также несколько других интересных графиков и статистических данных о наших репозиториях. Несмотря на все важные новости и достигнутый прогресс, этот год был на удивление малопродуктивным для Haiku, с самым низким количеством фиксаций за всю историю, а также с самым низким количеством участников с 2016 года. Будем считать, что у нас качество выше количества?
Со стороны haikuports таких проблем нет, там растет как количество внесенных изменений, так и число участников, достигшее рекордного уровня в 75 человек. В настоящее время в haikuports существует 3037 рецептов для различного программного обеспечения. Посмотрим, добавятся ли рецепты для Xlib и Wine в следующем году.
Размер кода Haiku остается стабильным с 2015 года: около 30000 файлов на общую сумму 5,5 миллиона строк. Из них только 16000 являются исходным кодом (файлы.c, .cpp и .h), остальное–документация (включая несколько переводов руководства пользователя), файлы каталога для набора языковых стандартов, сборочные скрипты и различные файлы данных для значков, ресурсов приложений и т.д.
Драйверы
Rudolfc (с некоторой помощью Korli и KapiX) продолжает свою работу над графическим драйвером Intel с поддержкой PLL на чипах Skylake, первоначальной поддержкой интерфейса DDI и реализацией обработки прерываний для устройств новых поколений. Это улучшает поддержку современных чипсетов Intel и различных типов вывода (DVI, DisplayPort и eDP требуют определенной обработки в драйвере).
Kallisti5 (также с некоторой помощью Korli) внес некоторые обновления в графический драйвер AMD Radeon с различными исправлениями для более нового оборудования и реализацией некоторых недостающих частей. Anarchos и Nephele добавили поддержку настройки яркости экрана на ноутбуках на базе Radeon.
Lt–Henry
продолжает работать над HID и модулями ввода, проделав некоторую работу по созданию драйверов клавиатуры HID для USB и I2C из одного файла. Ранее файл I2C был копией файла USB с некоторыми изменениями. Это позволит избежать разделения двух реализаций по мере внесения изменений в ту или иную сторону. Он также улучшил вывод ioctl для B_GET_DEVICE_NAME для этих драйверов и не только.David Karoly несколько продвинулся в работе над портом ARM, в этом месяце было рассмотрено и объединено несколько исправлений для реализации обработки прерываний. Набор загрузочных пакетов теперь достаточно стабилен и загружен на наши серверы сборки. Это означает, что теперь можно запустить сборку порта ARM без сборки bootstrap пакетов. Не ожидайте слишком многого: в настоящее время вы получите только загрузочный экран с несколькими загоревшимися значками и то это было протестировано только в основном в QEMU. Следующим шагом является добавление драйвера для носителя данных для тестирования следующей части процесса загрузки. Продолжается работа по запуску драйвера virtio, хотя возможно, драйвер SDHCI для карт SD/MMC появится первым.
X512 и Kallisti5 работают над портом RISC–V, внося исправления для обеспечения сборки, а также над начальной реализацией SMP (поддержка многоядерности), которая была объединена в этом месяце.
Инструменты отладки
Korli добавил поддержку дополнительных функций в strace: вызовы poll и select, а также декодирование большего количества констант ioctl. Он также добавил поддержку нескольких системных вызовов (из разных потоков), выполняемых параллельно.
strace — это инструмент, который запускает исполняемый файл и регистрирует все вызовы ядра, позволяя понять, что делает исполняемый файл.
Система сборки
David Karoly исправил несколько проблем с обработкой флагов компилятора для загрузчика. Ранее это было сделано неправильно, и некоторые команды выполнялись с неправильным флагом или даже с неправильным исполняемым файлом. В частности, это создавало проблемы для порта ARM, где загрузчику требуются совсем другие флаги компилятора.
Waddlesplash исправил различные проблемы в коде, позволяющие собирать Haiku с помощью gcc11. Теперь он используется по умолчанию взамен устаревшему gcc 8.3. Kallisti5 и David Karoly исправили некоторые новые предупреждения компилятора, обнаруженные после этого перехода.
Mt и Korli исправили некоторые проблемы с нашей конфигурацией статического анализатора LGTM. (LGTM–это инструмент, который сканирует наш исходный код и обнаруживает в нем возможные проблемы).
Ядро
Waddlesplash исправил несколько проблем в новой реализации condition_variable. Теперь в нем должно быть меньше ошибок, и он все равно будет работать немного лучше, чем в предыдущей версии.
Korli исправил небольшую ошибку в поддержке функции контрольная сумма метаданных в драйвере файловой системы ext2/3/4.
Сетевой стек и совместимость с POSIX
Waddlesplash исправил ошибку двойного освобождения памяти в реализации UDP.
Korli исправил проблему в стеке TCP и проблему в реализации семафора XSI, обнаруженную при запуске набора тестов NSPR.
PulkoMandy исправил проблемы с управлением временем ожидания в DHCP–клиенте, из а которой некорректно обрабатывалось время аренды более часа, а так же иногда приводило к забиванию сети DHCP–запросами.
Загрузчик
David Karoly внес несколько исправлений в загрузчик EFI не только для порта ARM, но и для возможности создания 32–разрядной версии x86. Это будет полезно для некоторых машин, которые не обеспечивают 64–битную реализацию EFI: некоторые ранние компьютеры Apple x86 и некоторые планшеты Android x86. Это привело к рефакторингу кода, чтобы упростить перенос загрузчика EFI на новые архитектуры процессоров в будущем.
app_server
Waddlesplash исправил ошибку в обработке растровых курсоров. В некоторых случаях при установке пользовательского курсора можно было вызвать сбой app_server, передав ему недопустимые параметры.
PulkoMandy исправил ошибку в реализации режима рисования B_OP_COPY, которая приводила к тому, что прямоугольник выделения в Wonderbrush был сплошным белым, а не прозрачным.
Maximo Castaneda исправил проблему в управлении шрифтами, которая приводила к неправильным метрикам шрифтов, используемым при наличии необычных стилей шрифтов (например, могли перепутаться жирный и полужирный шрифт).
Пользовательский интерфейс и приложения
Alex Hitech исправил нахождение символа рубля на русской клавиатурной раскладке.
Nephele исправил высоту панели загрузки в WebPositive, чтобы она соответствовала строке статуса (в зависимости от размера системного шрифта).
PulkoMandy добавил новый источник данных в ActivityMonitor, чтобы отображать текущую частоту процессора. Он также улучшил производительность ActivityMonitor, чтобы он использовал меньше процессорного времени для перерисовки своих графиков.
PulkoMandy исправил использование пользовательских значков для каталогов в Tracker.
Adrien Destugues
Оригинал статьи: https://www.haiku-os.org/blog/pulkomandy/2022–01–06-activity–report/
Ссылка на телеграм: https://t.me/haiku_ru
С новым
С новым счастьем! :)
Отправить комментарий