Brush v0.4.0

Brush v0.4.0

Brush je príkazový interpreter napísaný v jazyku Rust, ktorý spája kompatibilitu s POSIX a Bash s garanciami bezpečnosti pamäte a výkonom. Projekt sa zameriava na to, aby sa stal plnohodnotnou alternatívou tradičných interpreterov, umožňujúcou spúšťať existujúce skripty a používať .bashrc takmer bez zmien. Táto verzia spája niekoľko mesiacov práce a viac ako 200 zlúčených pull-requestov, pričom výrazne posúva interpreter na ceste k plnohodnotnej náhrade Bash a POSIX-kompatibilných prostredí.

Hlavné smery rozvoja v tomto vydaní:

  • kompatibilita s Bash: pridané set -e, set -u, pipefail, failglob, spracovanie ERR, súprocese a mnohé ďalšie;
  • spoľahlivosť: vylepšené spracovanie výnimočných situácií – zatvorených kanálov, poškodeného výstupu, ne-UTF8 histórie a ďalších;
  • platformy: rozšírená podpora pre macOS (práca ako login shell), zlepšená funkčnosť na Windows, FreeBSD, Android a 32-bitových systémoch;
  • interaktivita: pridané voliteľné TOML konfigurácie, preexec/precmd háky, vylepšená podpora pre makrá readline a ďalšie.

Kľúčové vylepšenia kompatibility s Bashom

Najdôležitejšími vylepšeniami tohto vydania bolo významné rozšírenie podpory funkcií Bash. Správa chýb:

  • set -e (errexit) – okamžité ukončenie pri chybe;
  • set -u (nounset) – chyba pri pokuse o prístup k nevyhlásenej premene;
  • pipefail – návratový kód potrubia je určený posledným zlyhávajúcim príkazom;
  • failglob – absencia zhody pre glob-vyjadrenie teraz vedie k chybe.

Spracovatelia (Traps) a súprocese:

  • spracovateľ ERR — umožňuje vykonávať príkazy pri výskyte chyby;
  • súprocese (coproc) — spustenie pozadovaných procesov s obojsmerným spojením.

Zabudované príkazy:

  • vylepšené spracovanie mnohých aritmetických konštrukcií, vrátane literálov s vysokým základom, preplnenia a priradenia;
  • opravy a vylepšenia sa týkajú zabudovaných príkazov: caller, read, getopts, printf a ďalších.

Rozšírenie podpory platforiem:

Vydanie v0.4.0 robí Interpreter dostupný na širšom spektre zariadení:

  • macOS: opravený problém, ktorý spôsobil zamrznutie interaktora pri prihlásení do systému. Teraz môže byť brush použitý ako login shell;
  • Windows: vylepšenia v spracovaní ciest, pridaná emulácia /dev/null, čo významne zlepšuje použiteľnosť na Windows;
  • FreeBSD a Android: podpora pre tieto platformy bola pridana;

Interaktívne možnosti a API

  • Konfigurácia: bola pridaná podpora voliteľného konfiguračného súboru TOML (~/.config/brush/config.toml) pre nastavenia špecifické pre brush;
  • Personalizácia: implementované zsh štýly preexec/precmd háčikov (pod experimentálnou vlajkou), užitočné na vytváranie prispôsobených výziev a nástrojov na meranie času;
  • API pre vývojárov: typ Shell je teraz parametizovaný rozšíreniami (ShellExtensions), čo vývojárom umožňuje pridávať vlastné zabudované príkazy a meniť správanie premenných bez nutnosti forku projektu;
  • Rôzne:
    • vylepšená podpora makier readline pre kompatibilitu s starship, atuin a fzf (github.com);
    • pridané možnosti serializácie AST a stavu shellu cez serde;
    • teraz sú v brush-parser a brush-core dostupné funkcie serde na serializáciu AST a stavu shellu.

Zdroj: linux.org.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster