Fish Shell 3.7.0: Ostajući C++ dok uvodi poboljšanja


Fish Shell 3.7.0 poboljšava preglednik povijesti, izvedbu i skriptiranje. Buduća izdanja 4.x će prenijeti unutarnje dijelove Fisha na Rust.

U Linux ekosustavu, jedna značajka koja se ističe svojom svestranošću i moći je raznolikost shellova koje korisnici mogu odabrati.

Uz klasični Bash i druge poput Zsh i Tcsh, Fish je već dugo široko prepoznat i prihvaćen kao popularan izbor među mnogim korisnicima Linuxa zbog svog korisnički prijateljskog pristupa i naprednih značajki.

Nedavno najavljeno izdanje Fish 3.7.0, s više od 1289 izmjena, jača ovu poziciju, obećavajući poboljšanja i ispravke. Pogledajmo ih.

Fish Shell 3.7.0

Glavne značajke

Fish 3.7.0 poboljšava upravljanje poviješću naredbenog retka. Sada korisnici mogu lako pronaći složene naredbene retke pomoću podnizova podudaranja. Preglednik povijesti također uvodi pametniju funkciju pretraživanja i intuitivniji način rukovanja neuspjelim upitima za pretraživanje.

Što se tiče performansi, dovršavanje naredbi i globbing pokazuju značajna poboljšanja u brzini, posebno na sporijim datotečnim sustavima poput NFS-a, što je veliki dobitak za korisnike koji rade s velikim opterećenjima u naredbenom retku.

Još jedna istaknuta značajka u ovoj nadogradnji je mogućnost postavljanja vremenskog ograničenja za višeključne sekvence, što poboljšava upotrebljivost značajki poput prebacivanja načina rada u vi načinu. Istovremeno, LS_COLORS više se neće postavljati automatski, potičući korisnike da prihvate više personalizirane konfiguracije.

Poboljšanja skripti i naredbenog retka

  • Stabilnost i fleksibilnost: Fish 3.7.0 rješava nekoliko bugova i poboljšava iskustvo skriptiranja. Od ispravljanja scenarija padova do unaprjeđenja ugrađene naredbe ‘jobs‘, ažuriranje čini skriptiranje pouzdanijim i svestranijim.
  • Interaktivno iskustvo: Ažuriranje donosi značajne promjene u interaktivnom iskustvu, kao što su poboljšano pretraživanje povijesti u vi načinu rada, bolje izvještavanje o radnom direktoriju u iTerm2 i poboljšane konfiguracije boja za odabir.
  • Dovršavanje naredbi i poboljšanja upita: Fish 3.7.0 također uvodi novu funkciju bind za upravljanje poviješću, poboljšane poruke o pogreškama i proširenu podršku za vanjske naredbe.

Estetske i funkcionalne prilagodbe

Zadana tema sada koristi imenovane boje, usklađene s paletama terminala, a Dracula tema se sinkronizira s promjenama iz izvora. Također, upiti sada preciznije prikazuju radne direktorije.

Konačno, Fish 3.7.0 dodaje mnoštvo dovršetaka za razne naredbe, olakšavajući život korisnicima. Ova verzija također donosi poboljšanja generatora dovršetaka za priručnike, a napravljene su i druge prilagodbe dovršetaka.

Rust: Put u budućnost

Fish ljuska je prvenstveno napisana u C++. Međutim, to će se uskoro promijeniti.

David Adam, jedan od glavnih razvojnih programera Fisha, potvrdio je da je gotovo sav C++ kod uspješno prebačen u Rust. Ova tranzicija dodala je 87.029 linija Rust koda, dok su uklonjene sve 76.776 linija C++ koda, što označava potpuno prepisivanje prema njihovoj posljednjoj nadogradnji.

Međutim, on pojašnjava da ovaj važan događaj ne znači da je nova verzija Fish ljuske spremna za krajnje korisnike. Trenutno stanje projekta je obećavajuće, s nekim poboljšanjima u izvedbi, ali također se suočava s izazovima u određenim područjima.

Izdvojeno, prepisivanje još uvijek nije postiglo svoje tehničke ciljeve, posebno u vezi s sigurnošću niti, što je bio glavni motiv za prelazak na Rust.

Osim toga, podrška za platforme i dalje predstavlja značajnu prepreku. Kratkoročna podrška za platforme poput Cygwina i MSys2 čini se malo vjerojatnom, a pakiranje za starije Linux distribucije predstavlja izazove.

S obzirom na to, postojeća treća serija Fish nastavit će koristiti C++ za svoje kodiranje. No, kada pokrene svoju četvrtu seriju, očekuje se značajna promjena prelaskom na primarni programski jezik Rust.