Informe mensual de actividades de Haiku - 03 y 04/2019

https://www.haiku-os.org/blog/pulkomandy/2019-05-01_haiku_monthly_activity_report_april_2019/


¡Hola! Estamos de vuelta para informes mensuales (o casi)! Estuve en la JDLL a principios de abril, y mientras me preparaba para eso no tuve tiempo de escribir un informe, y nadie más lo hizo. Así que aquí vamos con un informe de 2 meses, preparándonos para algo un poco más de lo habitual. Este informe cubre hrev52945-hrev53094.

Limpieza de código

mt arregló varios lugares donde -Werror = class-memaccess estaba rompiendo la compilación. Estos son casos en los que inicializamos un objeto C ++ con memset, que normalmente no está permitido. Por lo general, esto no resulta en demasiados problemas, pero nos podría morder si hiciéramos los objetos más complejos más adelante.
También revisó varios de los resultados del análisis del estudio PVS, e hizo arreglos para los que apuntaban a errores reales.
waddlesplash solucionó varios problemas relacionados con la gestión de endianness, campos no utilizados, algunas limpiezas en el sistema de compilación y mucho más. También eliminó parte del soporte restante para la creación de partes de nuestro código para BeOS o Zeta, que ya no necesitamos más, y eliminó el soporte para los archivos hpkg "versión 1" (nunca hemos lanzado ninguna versión de Haiku que lo use, la versión actual). El formato es la versión 2).
Lee Mon corrió partes del código a través de cppcheck y corrigió varias advertencias encontradas por la herramienta.

Nuevas arquitecturas

PulkoMandy consiguió la compilación de sparc hasta el inicio de una imagen de arranque completa. El siguiente paso es lograr que el gestor de arranque se ejecute realmente en el hardware.
Kallisti5 hizo algunos progresos para que RISC-V se construya y se ejecute, el trabajo está actualmente en progreso para respaldar el soporte matemático de punto flotante RISC-V en nuestra biblioteca de C.
El trabajo en ambas arquitecturas también condujo a la limpieza de varios problemas de endianness, así como a la combinación de algunos parches antiguos que mejoran el soporte de PowerPC, y una limpieza del soporte de punto flotante en la biblioteca de C, pero aún queda mucho por hacer. Waddlesplash también participó en la revisión de los cambios y en la limpieza del uso de las funciones de intercambio de bytes para tener una implementación única para ellos.
En el camino, también se hicieron arreglos para el soporte de arranque, haciéndolo un poco más fácil de usar. Esto puede ser necesario siempre que decidamos tener una ruptura importante de ABI y la necesidad de reconstruir todos los paquetes desde cero.
mmu_man hizo que sea más fácil construir "BFS de big endian" para máquinas x86. Esto hace posible montar volúmenes BFS con formato PowerPC en una máquina x86. Por razones de rendimiento, el sistema de archivos Be utiliza la endianness nativa de la máquina en la que se ejecuta y, por lo tanto, hay dos variantes del formato en disco.

Herramientas de linea de comando

Andrew Lindesay reparó la salida de pkgman --help.
mmu_man agregó soporte para archivos webloc a urlwrapper.
La implementación en el árbol del tiempo de actividad se interrumpió, ahora estamos utilizando el de GNU coreutils.

Conductores

Greg Crain mejoró la administración del tiempo de espera en el controlador XHCI.
Waddlesplash también puso mucho trabajo en XHCI, solucionó muchos problemas y reelaboró ​​grandes partes del controlador, haciendo que se comportara mucho mejor en la mayoría de las máquinas.
Gracias a Waddlesplash, ahora también tenemos un controlador NVMe, basado en la biblioteca libnvme existente. NVMe es una nueva forma de conectar discos SSD directamente al bus PCIe, evitando gran parte de la sobrecarga y la complejidad de SATA.
Waddlesplash hizo que la configuración de "deshabilitar complementos del usuario" también ignore los archivos no empaquetados, lo que hace que sea menos riesgoso y más fácil probar los controladores al colocarlos allí.
También solucionó un problema en el cargador de arranque del BIOS, que confundiría algunas versiones del BIOS al agregar un campo adicional en las solicitudes para leer datos del disco. Esto debería solucionar el arranque con estas exigentes implementaciones de BIOS.
Waddlesplash también corrigió el controlador usb_audio para SMAP, por lo que al menos no activará de inmediato el pánico del kernel.
korli hizo correcciones menores al controlador HDA.
PulkoMandy corrigió el tiempo de espera en el cliente DHCP, lo que tendría problemas para sincronizarse en algunos casos, ya que se agotaría inmediatamente y enviaría muchos paquetes falsos al servidor DHCP. Esto fue especialmente visible en las redes públicas ocupadas.
SuperPower corrigió el controlador intel_extreme para el chipset GMA960, donde existía cierta confusión sobre el uso de los modos de video extraídos directamente de la tarjeta de video BIOS.
Calvin Hill agregó las identificaciones USB que faltan en el controlador de la tableta Wacom.
Les De Ridder y Hy Che trabajaron en el código btrfs, limpiando varias partes del código y agregando soporte inicial para inicializar los volúmenes btrfs.
mmu_man agregó un controlador de trabajo en progreso para dispositivos TUN / TAP, que eventualmente permitirá el soporte para VPN, así como compartir interfaces de red con máquinas virtuales que se ejecutan dentro de Haiku, cuando lleguemos a eso.
Jessicah modificó el código de carga del controlador en el gestor de arranque, solucionando un problema de compatibilidad con la implementación de UEFI en VirtualBox.
waddlesplash sincronizó algunos controladores de red con las implementaciones de FreeBSD.

Pruebas

A menudo, como parte de nuestro código base que se pasa por alto, las pruebas son muy útiles para garantizar que las cosas sigan funcionando como se espera. Permiten cubrir casos de uso específicos para la API, con la esperanza de que sean fáciles de depurar.
korli reelaboró ​​algunas pruebas para el soporte de dlopen en runtime_loader.

Compatibilidad POSIX

korli agregó varias extensiones de API pthread comunes: pthread_attr_getstack, pthread_attr_setstack, pthread_getattr_np. Esto facilitará la transferencia de software escrito en Linux o BSD, ya que ahora tenemos API similares.
También trabajó en la mejora de fcntl y, en particular, en el soporte para duplicar descriptores de archivos.

Aplicaciones

Andrew Lindesay hizo algunas correcciones al sistema de construcción, asegurándose de que haya una versión de python disponible antes de intentar usarla.
mmu_man volvió a agregar AutoRaise a la imagen, es un complemento de DeskBar que elevará automáticamente la ventana activa al frente después de un breve retraso. Esto puede ser útil para los usuarios de enfoque-seguimiento-mouse que no desean elevar ventanas manualmente.
CodeForEvolution agregó una comprobación en BPackageRoster para determinar si es necesario reiniciar después de actualizar los paquetes. SoftwareUpdater ahora puede hacer uso de esto y notificar al usuario en consecuencia.
Jakob L Kreuze agregó soporte para la lista de reproducción M3U en MediaPlayer.
Humdinger corrigió algunos atajos de teclado inutilizables en Magnifier (estaban en la guía del usuario, pero no funcionaron. Esto muestra la necesidad de que un equipo de control de calidad realice pruebas de regresión).
Waddlesplash corrigió las dependencias del proceso de lanzamiento para que el reloj del sistema se sincronice tan pronto como la red esté activa. ¡No más relojes offset!
mmu_man hizo posible ejecutar múltiples instancias de GLTeapot. Si estaba buscando una demostración interesante de nuestro software de capacidades de renderizado 3D, aquí está.
Algunos parches muy antiguos de Dancsò Ròbert finalmente se fusionaron, aportando algunas funcionalidades nuevas a DriveSetup. Estos se enviaron como un parche grande con muchas características y también varias violaciones de estilo de codificación. PulkoMandy lo dividió en partes más pequeñas para facilitar la revisión. Si hay un solo disco en el sistema, ahora está habilitado de forma predeterminada. Un nuevo menú permite abrir fácilmente una partición en DiskProbe para su inspección.
John Scipione agregó la emulación del clic con el botón derecho y el botón central al comportamiento predeterminado de la ventana, lo que facilita que los usuarios con 2 o 1 botones del mouse y touchpads puedan moverse por el sistema.
Preetpal Kaur hizo que las preferencias del panel táctil se deshabilitaran cuando no se encuentra un panel táctil compatible en el sistema.

Herramientas de depuración

mmu_man agregó una herramienta de "catarea", que permite mirar el contenido de un área en particular. Las áreas son asignaciones de memoria compartida, a las que cualquier programa puede acceder, dado que conoce el identificador del área específica. Esto permite compartir datos entre programas en ejecución de una manera muy eficiente, ya que no se necesita una copia de los datos.
Waddlesplash agregó y modificó varias comprobaciones de errores en las primitivas de bloqueo del kernel, buscando un punto muerto en el sistema que no sería posible ingresar a KDL.
Hora de Libertad

Post a Comment

Previous Post Next Post