Fish 4.9: mejoras focalizadas y correcciones para una experiencia más estable

Fish 4.9

Fish 4.9 ya está disponible como una nueva versión del shell interactivo para sistemas Unix y Linux, con varias correcciones y pequeños ajustes destinados a mejorar su comportamiento y compatibilidad. El lanzamiento llega acompañado poco después por las versiones 4.9.1 y 4.9.2, que corrigen regresiones detectadas tras la publicación inicial.

El proyecto continúa así con la evolución iniciada en la rama 4.x, que supuso una importante renovación interna de fish al trasladar su código principal de C++ a Rust. En esta ocasión, las novedades no son tan amplias, pero sí afectan a aspectos concretos del análisis de comandos, las variables, la documentación integrada y el funcionamiento en diferentes entornos.

Fish 4.9 introduce varios cambios de comportamiento

Una de las modificaciones más destacadas afecta a los corchetes escapados. A partir de esta versión, expresiones como \133, utilizadas para representar un corchete izquierdo, dejan de interpretarse como operadores de slicing.

El cambio también soluciona un problema relacionado con variables que contienen un corchete de cierre cuando se utilizan para indexar otra variable. En determinadas circunstancias, fish podía cerrar antes de tiempo la expresión de slicing, provocando un comportamiento diferente del esperado.

Son modificaciones bastante específicas, pero importantes para mantener un comportamiento coherente del lenguaje y evitar interpretaciones ambiguas en scripts que utilicen índices y caracteres escapados.

Mejoras en las páginas de ayuda

La documentación integrada también recibe un pequeño ajuste. Las páginas de ayuda de los comandos incorporados ahora respetan correctamente una sustitución personalizada de la función man.

Esto permite que quienes hayan configurado su propio mecanismo para consultar páginas del manual puedan utilizarlo también desde las herramientas de ayuda de fish, evitando que el shell ignore esa personalización.

Aunque se trata de un cambio menor para la mayoría de usuarios, encaja con el enfoque de fish de ofrecer herramientas interactivas que puedan adaptarse a diferentes configuraciones del sistema.

Mayor control sobre las variables

Fish 4.9 también cambia el comportamiento de determinadas asignaciones realizadas directamente antes de ejecutar un comando. Una construcción como status=123 echo $status ahora genera un error en lugar de ignorar silenciosamente la sustitución de la variable.

El objetivo es evitar situaciones en las que el usuario pueda creer que una variable ha sido modificada cuando, en realidad, fish estaba descartando la operación. Mostrar explícitamente el problema proporciona un comportamiento más predecible y facilita la detección de errores en comandos y scripts.

Este tipo de cambios forma parte de la filosofía del proyecto de mantener una sintaxis clara y ofrecer mensajes de error cuando una construcción no tiene el comportamiento que el usuario probablemente esperaba.

Correcciones de regresiones anteriores

Además de las novedades propias de la rama 4.9, la versión inicial incorpora varias correcciones correspondientes a problemas que se remontaban a versiones anteriores. Entre ellas se encuentra la recuperación de las traducciones de mensajes de error en chino y japonés, que se habían visto afectadas por un cambio introducido en la rama 4.6.

También se corrige un problema que permitía borrar accidentalmente variables de solo lectura mediante set --erase. El comportamiento había sido introducido años atrás y no correspondía con la protección esperada para este tipo de variables.

En NetBSD se soluciona además un fallo relacionado con el comando fg, que podía impedir recuperar correctamente un proceso detenido mediante Ctrl-Z.

Fish 4.9.1 corrige problemas de teclado

Poco después de la publicación de fish 4.9.0 llegó fish 4.9.1 para solucionar varias regresiones. La principal estaba relacionada con los diseños de teclado que no utilizan la distribución predeterminada.

El shell podía ejecutar asociaciones correspondientes a la posición física de una tecla en lugar de utilizar la tecla definida por la distribución activa. Esto podía provocar resultados inesperados, especialmente con configuraciones como Dvorak.

También se corrigió un problema con determinados métodos de entrada que podía hacer que al pulsar espacio para aceptar un carácter se insertase un espacio en lugar del carácter seleccionado.

En macOS se solucionó además el comportamiento de algunas combinaciones con la tecla Option, que podían ejecutar asociaciones destinadas a teclas Alt en lugar de mantener el comportamiento histórico de inserción de caracteres.

Fish 4.9.2 llega para corregir otra regresión

El proyecto publicó posteriormente fish 4.9.2, una actualización todavía más pequeña centrada en corregir un problema introducido durante las modificaciones realizadas para macOS.

Esta versión, publicada el 5 de septiembre, corrige específicamente el funcionamiento de los terminales de Apple afectado por el cambio anterior. De este modo, la rama 4.9 queda rápidamente estabilizada después de los problemas detectados en su lanzamiento inicial.

Una actualización centrada en pulir el shell

Fish 4.9 no supone una revolución dentro del proyecto, pero sí continúa el trabajo de mantenimiento y refinamiento que caracteriza a las versiones actuales. Los cambios en el análisis de corchetes, variables y documentación mejoran comportamientos concretos, mientras que las sucesivas revisiones han permitido solucionar rápidamente varias regresiones.

La evolución resulta especialmente interesante después de la transformación interna que supuso fish 4.0, cuando el proyecto trasladó su código principal a Rust. Desde entonces, el desarrollo se ha concentrado en seguir mejorando la experiencia interactiva, la compatibilidad y la consistencia del shell.

Con las correcciones acumuladas en 4.9.1 y 4.9.2, la rama ofrece una actualización recomendable para quienes ya utilizan fish, especialmente en equipos afectados por alguno de los problemas solucionados en estas versiones.

from Linux Adictos https://ift.tt/GAEe4jR
via IFTTT