Brush v0.4.0

Brush v0.4.0

Brush er ein kommandolinjegrensesnitt utviklet i Rust, som kombinerer POSIX- og Bash-kompatibilitet med minnesikkerhet og ytelse. Prosjektet har som mål å bli et fullverdig alternativ til tradisjonelle skall, og lar kjøre eksisterende skript og bruke .bashrc praktisk talt uten endringer. Denne versjonen samler flere måneders arbeid og over 200 sammenføyde pull-forespørsel, og tar skjell mot å bli en fullverdig erstatning for Bash og POSIX-kompatible miljøer.

De viktigste utviklingene i denne utgaven:

  • Bash-kompatibilitet: lagt til set -e, set -u, pipefail, failglob, ERR-håndterer, coproser og mye mer;
  • Pålitelighet: forbedret håndtering av unntak – lukkede kanaler, ødelagte utdata, ikke-UTF8-historie og andre;
  • Plattformer: utvidet støtte for macOS (kjøring som innloggingsskall), forbedret ytelse på Windows, FreeBSD, Android og 32-bits systemer;
  • Interaktivitet: lagt til valgfrie TOML-konfigurasjoner, preexec/precmd-hooks, forbedret støtte for readline-makroer og annet.

Nøkkelforbedringer i Bash-kompatibilitet

De viktigste forbedringene i denne utgaven inkluderer betydelig utvidelse av støtten til Bash-funksjoner. Feilhåndtering:

  • set -e (errexit) – umiddelbar utgang ved feil;
  • set -u (nounset) – feil ved referanse til ikke-deklarert variabel;
  • pipefail – returkode for pipelinen defineres av den siste feilede kommandoen;
  • failglob – fravær av treff for glob-uttrykk fører nå til en feil.

Håndterere (Traps) og coproser:

  • ERR-håndterer – lar kjøre kommandoer ved feil;
  • coproser (coproc) – kjøre bakgrunnsprosesser med toveis kommunikasjon.

Innebygde kommandoer:

  • forbedret håndtering av mange aritmetiske konstruksjoner, inkludert litteraler med høy basis, overløp og tilordningsoperatører;
  • rettelser og forbedringer berørte de innebygde kommandoene: caller, read, getopts, printf og andre.

Utvidelse av plattformstøtte:

Utgaven v0.4.0 gjør skallet tilgjengelig på et bredere spekter av enheter:

  • macOS: løste problemet som fikk skallet til å henge ved innlogging. Nå kan brush brukes som innloggingsskall;
  • Windows: forbedringer i håndtering av stier, lagt til emulering av /dev/null, noe som betydelig øker brukervennligheten på Windows;
  • FreeBSD og Android: det støttes bygg for disse plattformene;

Interaktive muligheter og API

  • Konfigurasjon: lagt til støtte for valgfri TOML-konfigurasjonsfil (~/.config/brush/config.toml) for innstillinger spesifik for brush;
  • Tilpasning: implementert zsh-stiler preexec/precmd-hooks (bak en eksperimentell flagg), nyttige for å lage tilpassede ledetekster og tidtakingverktøy;
  • API for utviklere: nå er Shell-typen parametrisert med utvidelser (ShellExtensions), og gir utviklere mulighet til å legge til egne innebygde kommandoer og endre oppførselen til variabler uten å måtte forke prosjektet;
  • Diverse:
    • forbedret støtte for readline-makroer for kompatibilitet med starship, atuin og fzf (github.com);
    • lagt til muligheter for serialisering av AST og shell-status via serde;
    • nå er funksjoner for serde tilgjengelige i brush-parser og brush-core for å muliggjøre serialisering av AST og shell-status.

Kilde: linux.org.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster