Brush v0.4.0

Brush v0.4.0

Brush je příkazový interpretr napsaný v jazyce Rust, který kombinuje kompatibilitu s POSIX a Bash s garantovanou paměťovou bezpečností a výkonem. Cílem projektu je být plnohodnotnou alternativou tradičních shellů, umožňující spouštění stávajících skriptů a používání .bashrc téměř bez změn. Tato verze slučuje několik měsíců práce a více než 200 sloučených pull requestů, což výrazně posouvá shell blíže k plnohodnotné náhradě Bash a POSIX-kompatibilních prostředí.

Hlavní směry vývoje v této verzi:

  • kompatibilita s Bsh: přidány set -e, set -u, pipefail, failglob, ošetřovač ERR, spolupracující procesy a mnoho dalšího;
  • spolehlivost: zlepšené zpracování výjimečných situací – uzavřených kanálů, poškozeného výstupu, ne-UTF8 historie a dalších;
  • platformy: rozšířena podpora pro macOS (funkčnost jako login shell), zlepšena podpora pro Windows, FreeBSD, Android a 32-bitové systémy;
  • interaktivita: přidány volitelné TOML konfigurace, preexec/precmd hooky, vylepšena podpora makra readline a další.

Klíčová zlepšení kompatibility s Bash

Nejdůležitějšími vylepšeními této verze bylo výrazné rozšíření podpory funkcí Bash. Zpracování chyb:

  • set -e (errexit) – okamžité ukončení při chybě;
  • set -u (nounset) – chyba při přístupu k neoznačené proměnné;
  • pipefail – návratový kód trubky je určen posledním selhávajícím příkazem;
  • failglob – absence shody pro glob výraz nyní vede k chybě.

Ošetřovače (Traps) a spolupracující procesy:

  • ošetřovač ERR – umožňuje vykonávat příkazy při výskytu chyby;
  • spolupracující procesy (coproc) – spuštění pozadí procesů s obousměrnou komunikací.

Vestavěné příkazy:

  • vylepšeno zpracování mnoha aritmetických konstrukcí, včetně literálů s vysokým základem, přetečení a přiřazovacích operátorů;
  • opravy a vylepšení se dotkly vestavěných příkazů: caller, read, getopts, printf a dalších.

Rozšíření podpory platforem:

Verze v0.4.0 zpřístupňuje shell na širším spektru zařízení:

  • macOS: opraven problém, který způsobil, že shell zamrzl při přihlášení. Nyní lze brush používat jako login shell;
  • Windows: zlepšení zpracování cest, přidána emulace /dev/null, což výrazně zvyšuje uživatelský komfort na Windows;
  • FreeBSD a Android: je podporována kompilace pro tyto platformy;

Interaktivní funkce a API

  • Konfigurace: byla přidána podpora volitelného TOML konfiguračního souboru (~/.config/brush/config.toml) pro nastavení specifická pro brush;
  • Přizpůsobení: byly implementovány zsh styly preexec/precmd hooků (za experimentálního příznaku), které jsou užitečné pro vytváření vlastních výzev a nástrojů pro měření času;
  • API pro vývojáře: typ Shell je nyní parametrizován pomocí rozšíření (ShellExtensions), což vývojářům umožňuje přidávat vlastní integrované příkazy a měnit chování proměnných bez nutnosti forkování projektu;
  • Různé:
    • byla zlepšena podpora makra readline pro kompatibilitu s starship, atuin a fzf (github.com);
    • byly přidány možnosti serializace AST a stavu shellu prostřednictvím serde;
    • nyní jsou v brush-parser a brush-core dostupné funkce serde pro možnost serializace AST a stavu shellu.

Zdroj: linux.org.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster