
Brush – tā ir komandrinda, kas rakstīta Rust valodā, apvienojot POSIX un Bash saderību ar atmiņas drošības garantijām un veiktspēju. Projekta mērķis ir kļūt par pilnvērtīgu alternatīvu tradicionālajām komandrindām, ļaujot izpildīt esošos skriptus un izmantot .bashrc praktiski bez izmaiņām. Šī versija apvieno vairākus mēnešus ilgu darbu un vairāk nekā 200 apvienotus pull pieprasījumus, ievērojami virzot čaulu uz pilnvērtīgu Bash un POSIX saderīgu vidē aizstāšanu.
Galvenās attīstības jomas šajā laidienā:
- Bash saderība: pievienoti set -e, set -u, pipefail, failglob, ERR apstrādātājs, līdzprocesi un daudz kas cits;
- Uzticamība: uzlabota izņēmumu apstrāde – slēgtie kanāli, bojāti iznākumi, ne-UTF8 vēsture un citi;
- Platformas: paplašināta macOS atbalsts (darbojas kā ieejas čaula), uzlabota darbība Windows, FreeBSD, Android un 32 bitu sistēmās;
- Interaktivitāte: pievienoti opciju TOML konfigurācijas faili, preexec/precmd hooks, uzlabota readline makro atbalsts un citi.
Galvenie uzlabojumi Bash saderībā
Nepieciešamākās izmaiņas šajā laidienā ir ievērojami paplašinājušas Bash iespējām atbalsta. Kļūdu pārvaldība:
- set -e (errexit) – momentāna iziešana kļūdas gadījumā;
- set -u (nounset) – kļūda, piekļūstot neizsludinātai mainīgajai;
- pipefail – cauruļu atgriezeniskā koda nosaka pēdējā izgāzusies komanda;
- failglob – šķietīgas atbilstības trūkums glob-izteiksmē tagad izraisa kļūdu.
Apstrādātāji (Traps) un līdzprocesi:
- ERR apstrādātājs — ļauj izpildīt komandas, kad rodas kļūda;
- līdzprocesi (coproc) — fonu procesu palaišana ar divvirzienu saziņu.
Iebūvēti komandas:
- uzlabota daudzu aritmētisko konstrukciju, tostarp augstas bāzes literālu, pārsnieguma un piešķiršanas operatoru apstrāde;
- izlabojumi un uzlabojumi ietekmēja iebūvētas komandas: caller, read, getopts, printf un citas.
Platformu atbalsta paplašināšana:
Laidiens v0.4.0 padara čaulu pieejamu plašākā ierīču klāstā:
- macOS: novērsta problēma, kas izraisīja čaulas sasalšanu, ieejot sistēmā. Tagad brush var izmantot kā ieejas čaulu;
- Windows: uzlabojumi ceļu apstrādē, pievienota /dev/null emulācija, kas ievērojami palielina lietojamību Windows;
- FreeBSD un Android: tiek atbalstīta versija šīm platformām;
Interaktīvās iespējas un API
- Konfigurācija: pievienota atbalsta opciju TOML konfigurācijas failam (~/.config/brush/config.toml) brush specifiskajām iestatījumiem;
- Pielāgošana: īstenoti zsh stili preexec/precmd hooks (pēc eksperimentālās atzīmes), noderīgi, lai izveidotu pielāgotus aicinājumus un laika mērīšanas rīkus;
- Izstrādātāju API: Shell tips tagad ir parametrizēts ar paplašinājumiem (ShellExtensions), piedāvājot izstrādātājiem iespēju pievienot savas iebūvētās komandas un mainīt mainīgo uzvedību bez projekta forkošanas;
- Dažādi:
- pievienotas AST un shell stāvokļa serializācijas iespējas caur serde;
- tagad brush-parser un brush-core ir pieejamas serde funkcijas AST un shell stāvokļa serializēšanas iespējām.
Avots: linux.org.ru
