Brush v0.4.0

Brush v0.4.0

Brush er en kommandolinjetolker skrevet i Rust, der kombinerer kompatibilitet med POSIX og Bash med hukommelsessikkerhedsgarantier og ydeevne. Projektet har til formål at blive et fuldt udbygget alternativ til traditionelle skaller, der tillader kørsel af eksisterende scripts og brug af .bashrc næsten uden ændringer. Denne version repræsenterer flere måneders arbejde og over 200 sammenlagte pull-anmodninger, hvilket væsentligt fremmer skalens fremdrift hen imod en komplet erstatning af Bash og POSIX-kompatible miljøer.

De vigtigste udviklingsretninger i denne udgave:

  • Bash-kompatibilitet: tilføjet set -e, set -u, pipefail, failglob, ERR-handler, co-processer og meget mere;
  • Pålidelighed: forbedret fejlhåndtering – lukkede kanaler, ødelagte output, ikke-UTF8 historie og andre;
  • Platforme: udvidet support for macOS (arbejde som login-shell), forbedret funktionalitet på Windows, FreeBSD, Android og 32-bit systemer;
  • Interaktivitet: tilføjet valgfrie TOML-konfigurationer, preexec/precmd-hooks, forbedret understøttelse af readline-makroer og andet.

Nøgleforbedringer i Bash-kompatibilitet

De vigtigste tilføjelser i denne udgave omfatter en betydelig udvidelse af understøttelsen af Bash-funktioner. Fejlhåndtering:

  • set -e (errexit) – straks udgang ved fejl;
  • set -u (nounset) – fejl ved adgang til uerklærede variable;
  • pipefail – returkode for pipeline bestemmes af den seneste fejlede kommando;
  • failglob – manglende match for glob-udtryk fører nu til en fejl.

Handler (Traps) og co-processer:

  • ERR-handler – giver mulighed for at udføre kommandoer ved opståede fejl;
  • co-processer (coproc) – start af baggrundsprocesser med tovejs kommunikation.

Indbyggede kommandoer:

  • forbedret behandling af mange aritmetiske konstruktioner, herunder litteraler med høj base, overflow og tildelingsoperatører;
  • rettelser og forbedringer har berørt indbyggede kommandoer: caller, read, getopts, printf og andre.

Udvidelse af platformstøtte:

Udgivelse v0.4.0 gør skallen tilgængelig på et bredere udvalg af enheder:

  • macOS: rettet et problem, der fik skallen til at fryse ved login. Nu kan brush bruges som login-shell;
  • Windows: forbedringer i håndteringen af stier, tilføjet emulering af /dev/null, hvilket væsentligt forbedrer brugervenligheden på Windows;
  • FreeBSD og Android: bygningen for disse platforme understøttes;

Interaktive muligheder og API

  • Konfiguration: tilføjet støtte til valgfiler i TOML-format (~/.config/brush/config.toml) til indstillinger, der er specifikke for brush;
  • Tilpasning: implementeret zsh-stilede preexec/precmd hooks (bag en eksperimentel flag), nyttige til at skabe tilpassede prompts og tidstagningsværktøjer;
  • API til udviklere: Shell-typen er nu parameteriseret med udvidelser (ShellExtensions), hvilket giver udviklere mulighed for at tilføje deres egne indbyggede kommandoer og ændre variablers adfærd uden at forgrene projektet;
  • Diverse:
    • forbedret støtte til readline-makroer for kompatibilitet med starship, atuin og fzf (github.com);
    • tilføjet muligheder for serialisering af AST og skalkens tilstand via serde;
    • nu er der serde-funktioner tilgængelige i brush-parser og brush-core for mulighed for serialisering af AST og skalkens tilstand.

Kilde: linux.org.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster