Brush v0.4.0

Brush v0.4.0

Brush is een command line shell geschreven in Rust, die compatibiliteit met POSIX en Bash combineert met geheugenveiligheid en prestaties. Het project is gericht op het worden van een volwaardige alternatieve voor traditionele shells, waarmee bestaande scripts kunnen worden uitgevoerd en .bashrc vrijwel onveranderd kan worden gebruikt. Deze versie combineert enkele maanden werk en meer dan 200 samengevoegde pull-requests, en bevordert de shell aanzienlijk op weg naar een volwaardige vervanging van Bash en POSIX-compatibele omgevingen.

Hoofdrichtingen van ontwikkeling in deze release:

  • Bash-compatibiliteit: set -e, set -u, pipefail, failglob, ERR-handler, coprocessen en veel meer zijn toegevoegd;
  • Betrouwbaarheid: verbetert de afhandeling van uitzonderlijke gevallen - gesloten kanalen, corrupte uitvoer, niet-UTF8 geschiedenis en anderen;
  • Platforms: uitgebreidere ondersteuning voor macOS (functioneren als login shell), verbeterde werking op Windows, FreeBSD, Android en 32-bits systemen;
  • Interactiviteit: optionele TOML-configuraties toegevoegd, preexec/precmd-haken, verbeterde ondersteuning voor readline macro's en meer.

Belangrijkste verbeteringen in Bash-compatibiliteit

De belangrijkste verbeteringen in deze release zijn een aanzienlijke uitbreiding van de ondersteuning voor Bash-functionaliteit. Foutbeheer:

  • set -e (errexit) - onmiddellijke beĆ«indiging bij een fout;
  • set -u (nounset) - fout bij toegang tot een niet-gedeclareerde variabele;
  • pipefail - de retourcode van de pipeline wordt bepaald door het laatste mislukte commando;
  • failglob - geen overeenkomsten voor een glob-expressie leidt nu tot een fout.

Handlers (Traps) en coprocesen:

  • ERR-handler - stelt je in staat om commando's uit te voeren bij een fout;
  • Coprocessen (coproc) - starten van achtergrondprocessen met tweezijdige communicatie.

Ingebouwde commando's:

  • Verbeterde afhandeling van vele wiskundige constructies, waaronder literals met hoge basis, overflow en toewijzingsoperators;
  • Corrections en verbeteringen hebben de ingebouwde commando's aangetast: caller, read, getopts, printf en anderen.

Uitbreiding van platformondersteuning:

Release v0.4.0 maakt de shell beschikbaar voor een breder scala aan apparaten:

  • macOS: probleem opgelost waardoor de shell vastliep bij inloggen. Brush kan nu worden gebruikt als login shell;
  • Windows: verbeteringen in padverwerking, /dev/null-emulatie toegevoegd, wat het gebruik op Windows aanzienlijk vergemakkelijkt;
  • FreeBSD en Android: ondersteuning voor builds op deze platforms;

Interactieve mogelijkheden en API

  • Configuratie: ondersteuning toegevoegd voor een optioneel TOML-configuratiebestand (~/.config/brush/config.toml) voor instellingen die specifiek zijn voor brush;
  • Aanpassing: zsh-stijlen voor preexec/precmd hooks geĆÆmplementeerd (onder een experimentele vlag), nuttig voor het creĆ«ren van aangepaste prompts en timingtools;
  • API voor ontwikkelaars: het Shell-type is nu geparametriseerd met extensies (ShellExtensions), waardoor ontwikkelaars hun eigen ingebouwde commando's kunnen toevoegen en het gedrag van variabelen kunnen wijzigen zonder het project te hoeven forken;
  • Diversen:
    • verbeterde ondersteuning voor readline-macro's voor compatibiliteit met starship, atuin en fzf (github.com);
    • mogelijkheden voor het serialiseren van AST en shellstatus toegevoegd via serde;
    • nu zijn er seriemogelijkheden voor AST en shellstatus beschikbaar in brush-parser en brush-core via serde.

Bron: linux.org.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster