Brush v0.4.0

Brush v0.4.0

Brush Àr en kommandotolk skriven i Rust som kombinerar kompatibilitet med POSIX och Bash med minnessÀkerhetsgarantier och prestanda. Projektet syftar till att bli ett fullvÀrdigt alternativ till traditionella skal, vilket möjliggör körning av befintliga skript och anvÀndning av .bashrc nÀstan utan Àndringar. Denna version sammanfogar flera mÄnaders arbete och mer Àn 200 sammanfogade pull-requestar, vilket betydligt avancerar skalet mot en fullstÀndig ersÀttning av Bash och POSIX-kompatibla miljöer.

HuvudomrÄden för utveckling i denna version:

  • kompatibilitet med Bash: tillagt set -e, set -u, pipefail, failglob, ERR-hanterare, samarbeten och mycket mer;
  • pĂ„litlighet: förbĂ€ttrad hantering av undantagsfall – stĂ€ngda kanaler, trasig utdata, icke-UTF8-historia och andra;
  • plattformar: utökat stöd för macOS (arbete som inloggningsskal), förbĂ€ttrad prestanda pĂ„ Windows, FreeBSD, Android och 32-bitars system;
  • interaktivitet: tillagt valfria TOML-konfigurationer, preexec/precmd-hooks, förbĂ€ttrat stöd för readline-makron och annat.

NyckelförbÀttringar av Bash-kompatibilitet

De viktigaste förbÀttringarna i denna version var en betydande utvidgning av stöd för Bash-funktioner. Felkodshantering:

  • set -e (errexit) – omedelbar utgĂ„ng vid fel;
  • set -u (nounset) – fel vid Ă„tkomst av odeklarerad variabel;
  • pipefail – Ă„tervĂ€ndande koden för röret definieras av den senaste misslyckade kommandot;
  • failglob – avsaknad av överensstĂ€mmelse för glob-uttryck resulterar nu i ett fel.

Hanterare och samarbeten:

  • ERR-hanterare – möjliggör körning av kommandon vid uppkomst av fel;
  • samarbeten (coproc) – starta bakgrundsprocesser med tvĂ„vĂ€gskommunikation.

Inbyggda kommandon:

  • förbĂ€ttrad hantering av mĂ„nga aritmetiska konstruktioner, inklusive litteraler med hög bas, överflöden och tilldelningsoperatörer;
  • rĂ€ttningar och förbĂ€ttringar har berört inbyggda kommandon: caller, read, getopts, printf och andra.

Utvidgning av plattformsstöd:

Release v0.4.0 gör skalet tillgÀngligt pÄ ett bredare spektrum av enheter:

  • macOS: Ă„tgĂ€rdad det problem som gjorde att skalet hĂ€ngde sig vid inloggning. Nu kan brush anvĂ€ndas som inloggningsskal (login shell);
  • Windows: förbĂ€ttringar i hanteringen av sökvĂ€gar, tillĂ€gg av emulering av /dev/null, vilket avsevĂ€rt förbĂ€ttrar anvĂ€ndbarheten pĂ„ Windows;
  • FreeBSD och Android: stöd för dessa plattformar finns;

Interaktiva funktioner och API

  • Konfiguration: stöd för valfilen TOML (~/.config/brush/config.toml) för instĂ€llningar specifika för brush har lagts till;
  • Anpassning: zsh-stilar för preexec/precmd-hakar har implementerats (bakom en experimentell flagga), anvĂ€ndbara för att skapa anpassade prompts och tidsmĂ€tningsverktyg;
  • API för utvecklare: Shell-typen Ă€r nu parametriserad av ShellExtensions, vilket ger utvecklare möjlighet att lĂ€gga till egna inbyggda kommandon och Ă€ndra beteendet hos variabler utan att behöva forka projektet;
  • Olika:
    • förbĂ€ttrat stöd för readline-makron för kompatibilitet med starship, atuin och fzf (github.com);
    • möjligheter för serialisering av AST och skalets tillstĂ„nd via serde har lagts till;
    • nu finns serde-funktioner tillgĂ€ngliga i brush-parser och brush-core för möjlighet till serialisering av AST och skalets tillstĂ„nd.

KĂ€lla: linux.org.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster