Brush shell 0.4.0: mejora la seguridad y compatibilidad de plataformas

by Editor de Tecnologia

Brush, la shell escrita en Rust que busca compatibilidad con bash y POSIX, ha lanzado su versión 0.4.0. Esta actualización se centra en fortalecer la seguridad de la ejecución de scripts y ampliar el soporte para diversas plataformas, integrando más de 200 pull requests que representan varios meses de desarrollo.

Mejoras en la compatibilidad con bash

La versión 0.4.0 cierra brechas importantes en la compatibilidad con bash, implementando funciones críticas para la gestión de errores y el flujo de ejecución. Entre las novedades destaca la implementación de set -e (errexit) y pipefail, siguiendo las mismas reglas de exención que bash ha desarrollado a lo largo de los años.

Asimismo, se han introducido las siguientes mejoras técnicas:

  • Gestión de variables: La opción set -u (nounset) ahora genera errores ante referencias a variables no definidas, incluyendo la interacción con ${#arr[i]}.
  • Control de globs: La opción failglob ahora trata los globs sin coincidencias como errores.
  • Trampas de sistema: Se ha implementado la trampa ERR, complementando el trabajo previo realizado con la trampa EXIT.
  • Procesos coprocesadores: El soporte para coproc ahora cubre tanto el análisis como la ejecución.
  • Opciones de línea de comandos: Se añadió el flag --noglob / -f y se ajustó el comportamiento para que las opciones desconocidas salgan con el código 2, igualando la conducta de bash.

Refinamientos en aritmética y funciones internas

El manejo aritmético ha sido revisado exhaustivamente, abordando literales de base alta, el comportamiento de desbordamiento (overflow) y subdesbordamiento (underflow), y la sintaxis heredada de $[expr]. También se han optimizado los operadores de asignación |= y ^=, los índices de matrices anidadas y la detección de recursión infinita.

leer más 

Gana Dinero con ChatGPT: Ideas y Prompts Rentables

ChatGPT: Cómo Generar Ingresos con IA

Monetiza ChatGPT: Guía de Prompts para Freelancers

Ingresos con IA: Prompts de ChatGPT que Funcionan

ChatGPT y Negocios: Oportunidades para Ganar Dinero

En cuanto a la estabilidad, los heredocs ahora son más fiables dentro de sustituciones de comandos y contextos con comillas. Además, se aplicaron correcciones y expansiones a builtins como caller, read, mapfile -O, getopts, compgen -A y printf %q.

Debido a estos cambios, el mantenedor advierte que algunos scripts que se ejecutaban sin problemas en la versión 0.3.0 podrían ahora finalizar con errores; no obstante, se aclara que este es el comportamiento deseado, ya que es el mismo que produciría bash.

Expansión del soporte de plataformas

Brush ha ampliado su alcance operativo para mejorar la experiencia del usuario en distintos entornos:

  • macOS: Se corrigió un problema de bloqueo durante el inicio que impedía utilizar Brush como shell de inicio de sesión.
  • Windows: Se ha rediseñado el manejo de rutas, se añadió la emulación de /dev/null y se ha integrado la suite de pruebas de Windows en la integración continua (CI). Cabe destacar que el soporte para Windows sigue considerándose experimental.
  • Otros sistemas: Se ha restablecido la capacidad de compilación en FreeBSD, mientras que los objetivos de Android y de 32 bits ahora compilan sin errores. Además, las pruebas de humo para wasm32-wasip2 ya se ejecutan en la CI.

You may also like

Leave a Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.